From bbfe809d02a09b924b0c3059dd7d378ae5280419 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Fri, 12 Jan 2024 13:50:20 +1300 Subject: [PATCH] docs: add reclient docs, remove goma docs (#40948) * docs: add reclient docs, remove goma docs * Apply suggestions from code review Co-authored-by: Charles Kerr --------- Co-authored-by: Charles Kerr --- docs/development/goma.md | 52 +----------------------------------- docs/development/reclient.md | 46 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 51 deletions(-) create mode 100644 docs/development/reclient.md diff --git a/docs/development/goma.md b/docs/development/goma.md index 5c3f871ef8c..21d6ed93ce8 100644 --- a/docs/development/goma.md +++ b/docs/development/goma.md @@ -3,54 +3,4 @@ > Goma is a distributed compiler service for open-source projects such as > Chromium and Android. -Electron has a deployment of a custom Goma Backend that we make available to -all Electron Maintainers. See the [Access](#access) section below for details -on authentication. There is also a `cache-only` Goma endpoint that will be -used by default if you do not have credentials. Requests to the cache-only -Goma will not hit our cluster, but will read from our cache and should result -in significantly faster build times. - -## Enabling Goma - -Currently the only supported way to use Goma is to use our [Build Tools](https://github.com/electron/build-tools). -Goma configuration is automatically included when you set up `build-tools`. - -If you are a maintainer and have access to our cluster, please ensure that you run -`e init` with `--goma=cluster` in order to configure `build-tools` to use -the Goma cluster. If you have an existing config, you can just set `"goma": "cluster"` -in your config file. - -## Building with Goma - -When you are using Goma you can run `ninja` with a substantially higher `j` -value than would normally be supported by your machine. - -Please do not set a value higher than **200**. We monitor Goma system usage, and users -found to be abusing it with unreasonable concurrency will be de-activated. - -```bash -ninja -C out/Testing electron -j 200 -``` - -If you're using `build-tools`, appropriate `-j` values will automatically be used for you. - -## Monitoring Goma - -If you access [http://localhost:8088](http://localhost:8088) on your local -machine you can monitor compile jobs as they flow through the goma system. - -## Access - -For security and cost reasons, access to Electron's Goma cluster is currently restricted -to Electron Maintainers. If you want access please head to `#access-requests` in -Slack and ping `@goma-squad` to ask for access. Please be aware that being a -maintainer does not _automatically_ grant access and access is determined on a -case by case basis. - -## Uptime / Support - -We have automated monitoring of our Goma cluster and cache at https://status.notgoma.com - -We do not provide support for usage of Goma and any issues raised asking for help / having -issues will _probably_ be closed without much reason, we do not have the capacity to handle -that kind of support. +Electron's deployment of Goma is deprecated and we are gradually shifting all usage to the [reclient](reclient.md) system. At some point in 2024 the Goma backend will be shutdown. diff --git a/docs/development/reclient.md b/docs/development/reclient.md new file mode 100644 index 00000000000..f84b0515e01 --- /dev/null +++ b/docs/development/reclient.md @@ -0,0 +1,46 @@ +# Reclient + +> Reclient integrates with an existing build system to enable remote execution and caching of build actions. + +Electron has a deployment of a [reclient](https://github.com/bazelbuild/reclient) +compatible RBE Backend that is available to all Electron Maintainers. +See the [Access](#access) section below for details on authentication. Non-maintainers +will not have access to the cluster, but can sign in to receive a `Cache Only` token +that gives access to the cache-only CAS backend. Using this should result in +significantly faster build times . + +## Enabling Reclient + +Currently the only supported way to use Reclient is to use our [Build Tools](https://github.com/electron/build-tools). +Reclient configuration is automatically included when you set up `build-tools`. + +If you have an existing config, you can just set `"reclient": "remote_exec"` +in your config file. + +## Building with Reclient + +When you are using Reclient, you can run `autoninja` with a substantially higher `j` +value than would normally be supported by your machine. + +Please do not set a value higher than **200**. The RBE system is monitored. +Users found to be abusing it with unreasonable concurrency will be deactivated. + +```bash +autoninja -C out/Testing electron -j 200 +``` + +If you're using `build-tools`, appropriate `-j` values will automatically be used for you. + +## Access + +For security and cost reasons, access to Electron's RBE backend is currently restricted +to Electron Maintainers. If you want access, please head to `#access-requests` in +Slack and ping `@infra-wg` to ask for it. Please be aware that being a +maintainer does not _automatically_ grant access. Access is determined on a +case-by-case basis. + +## Support + +We do not provide support for usage of Reclient. Issues raised asking for help / having +issues will _probably_ be closed without much reason. We do not have the capacity to handle +that kind of support.