PSA:Goma deprecation

793 views
Skip to first unread message

Takuto Ikuta (生田 拓人)

unread,
Sep 8, 2023, 1:59:25 AMSep 8
to infra-a...@chromium.org, Chromium-dev, chrome-build-team

Hi Chromium developers,


tldr;

Goma will be deprecated by the end of January of next year. Please reach out to us if you have any questions.


Chromium has been using our custom remote execution system goma (client / server) for many years to speed up builds. Since then, a new standard Remote Execution API has emerged, which is supported by various clients and servers. We think it is best to spend our effort on supporting this effort, rather than keep maintaining our custom tools. Thus, we decided to deprecate goma and migrate Chromium's build to this new API.


For this purpose, we developed reclient, a new build client which supports Remote Execution API natively. This tool can easily be used in place of gomacc as part of our Ninja build.

CQ / CI builders have already migrated to Reclient / RBE, and we will soon migrate developers to reclient as well.

We are writing to inform you that we plan to delete support for goma in Chromium builds around the beginning of 2024. We will also stop maintaining the goma client and server.

For those who use Chromium’s Goma backend:

We will send instructions about how to migrate from goma to reclient.

For those who run their own Goma backend:

Reclient repository has documentation on how to use reclient so that you can also use reclient before we completely remove goma build support.

If you have any questions, please reply to this mail. Or file new issues in our component.

We apologize for any inconvenience this may cause and appreciate your understanding.


Takuto on behalf of Chrome Build team



--
Takuto Ikuta
Software Engineer in Tokyo
Chrome Ops (chrome browser build team)

Mihai Plesa

unread,
Sep 12, 2023, 3:44:39 PMSep 12
to Chromium-dev, Takuto Ikuta (生田 拓人), chrome-build-team, infra-a...@chromium.org
At Brave we've been using Goma with the EngFlow backend for build acceleration. They also support RE as per https://blog.engflow.com/category/reclient/ if anyone is looking for a way forward.

Samuel Attard

unread,
Sep 26, 2023, 5:24:36 PMSep 26
to Chromium-dev, Takuto Ikuta (生田 拓人), chrome-build-team, infra-a...@chromium.org
Raised this on the reclient repo --> https://github.com/bazelbuild/reclient/issues/3 but will ask here too.

Several RBE solutions use the `--remote_header` bazel flag to provide authentication to the backend, does reclient support an equivalent of this? I'm looking at migrating from our custom goma backend to reclient but the auth is proving a bit of a challenge.

Yannic Bonenberger

unread,
Sep 28, 2023, 8:48:31 PMSep 28
to Chromium-dev, Samuel Attard, Takuto Ikuta (生田 拓人), chrome-build-team, infra-a...@chromium.org
Hey Samuel,

replied on GitHub, but also replying here for visibility:

IUC, you can use --credential_file to specify a path to a JSON file with credentials to provide arbitrary headers.

We are also working on improving authentication for reclient similar to what Bazel supports :)

Thanks,
Yannic

Reply all
Reply to author
Forward
0 new messages