PSA:Goma deprecation

1,617 views
Skip to first unread message

Takuto Ikuta (生田 拓人)

unread,
Sep 8, 2023, 1:59:25 AM9/8/23
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 PM9/12/23
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 PM9/26/23
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 PM9/28/23
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

Paulo Coutinho

unread,
Dec 14, 2023, 6:39:40 PM12/14/23
to Chromium-dev, Yannic Bonenberger, Samuel Attard, Takuto Ikuta (生田 拓人), chrome-build-team, infra-a...@chromium.org
When i try build latest version im getting this error:

gclient config --unmanaged https://pdfium.googlesource.com/pdfium.git                                                                                                                                                          34.6s
 => ERROR [13/32] RUN gclient sync                                                                                                                                                                                                            153.8s
------                                                                                                                                                                                                                                              
 > [13/32] RUN gclient sync:                                                                                                                                                                                                                        
0.095 Updating depot_tools...                                                                                                                                                                                                                        
1.452 '/opt/depot-tools/.cipd_bin/goma_ctl.py' was not found and may not be supported on this platform!  


I need do something to ignore goma?

Paulo Coutinho

unread,
Dec 14, 2023, 6:39:49 PM12/14/23
to Chromium-dev, Yannic Bonenberger, Samuel Attard, Takuto Ikuta (生田 拓人), chrome-build-team, infra-a...@chromium.org
Hi,

Im with error when try clone repository related to goma now:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git /opt/depot-tools 
mkdir /build                                                                                                                                                        
cd /build                                                                                                                                                              
gclient config --custom-var checkout_configuration=minimal --unmanaged https://pdfium.googlesource.com/pdfium.git               
echo "target_os = [ 'wasm' ]" >> .gclient                                                                                                                                                               
gclient sync -r origin/chromium/6183 --no-history --shallow                                                                                                                           

ERROR: gclient sync -r origin/chromium/6183 --no-history --shallow:                                                                                                                                                                          

'/opt/depot-tools/.cipd_bin/goma_ctl.py' was not found and may not be supported on this platform!    

Can anyone help me? 

Thanks.

Em quinta-feira, 28 de setembro de 2023 às 21:48:31 UTC-3, Yannic Bonenberger escreveu:
Reply all
Reply to author
Forward
0 new messages