PSA: Chromium's build system is switching from Ninja to Siso for external developers

324 views
Skip to first unread message

Junji Watanabe

unread,
Jun 16, 2025, 5:00:38 AMJun 16
to chromi...@chromium.org, bu...@chromium.org

Hi everyone,


This PSA is for all external Chromium developers regarding an upcoming change to the Chromium build system.


What's changing?


Chromium's build system is switching from Ninja 🥷 to Siso 🌿. This migration has already been completed for developers and CI/CQ within Google, and we are now extending it to our external contributors.


Siso is developed by the Chrome Build Infra Team at Google as a drop-in replacement for Ninja to support remote execution natively.


What do you need to do?


Just keep building Chromium with autoninja. autoninja will automatically use Siso after you run gn clean the next time.


How to opt out? 


If you encounter problems with Siso, you can switch back by setting use_siso=false in your args.gn.


About Ninja/Reclient/GN


  • GN will stay the same as before.

  • Reclient will be removed from Chromium at the end of September.

  • Ninja will be unsupported after the end of September.


Please prepare to switch to Siso before the deadline.


Questions or Issues?


If you have any questions or run into any problems with this change, please don't hesitate to reach out to us:


Thanks,

Junji - on behalf of the Chrome Build Infra Team



Dirk Pranke

unread,
Jun 16, 2025, 11:37:00 AMJun 16
to Junji Watanabe, chromi...@chromium.org, bu...@chromium.org
Hi Junji,

Presumably GN is still generating .ninja files that work with Ninja, so what are the implications of this for people that aren't using remote execution to build? Are we going to be making changes that aren't compatible with Ninja? 

Or is this more of a support thing, in that you only want to support one build tool?

Also, does Siso support building with other RBE backends?

-- Dirk

--
You received this message because you are subscribed to the Google Groups "build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to build+un...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/build/CAPi%2BNeWH9%3D%3DF4zncWXUpN%2B_X9QPrXd1_3RZ8exk9p%3D%3D1mADWKg%40mail.gmail.com.

Junji Watanabe

unread,
Jun 17, 2025, 5:17:51 AMJun 17
to Dirk Pranke, chromi...@chromium.org, bu...@chromium.org
Hi Dirk,

Thank you for your questions. Let me clarify.

Regarding your first question, there are a few reasons for moving away from Ninja:

Maintenance Cost: Currently, we have limited testing for Ninja and Reclient builds on our CI builders. While we are still addressing and fixing any issues that arise, our goal is to discontinue support for Ninja after the upcoming deadline.

Build Improvements: We're planning to improve our build processes by integrating GN and Siso more closely. This includes features like mtime-less builds and more efficient build graph serialization. It's difficult to predict how challenging it will be to maintain compatibility with Ninja as we implement these improvements, and it's possible that Ninja builds may eventually stop working. So, we encourage switching to Ninja soon. If you encounter any workflow issues with Siso, please provide feedback

Regarding your question about Siso's support for other RBE backends, Siso is designed to send Remote Execution API (REAPI) requests to a custom API address. I am currently in contact with various remote build service providers to confirm full compatibility with Siso's REAPI support.

Thank you,
Junji

Raphael Kubo da Costa

unread,
Jun 17, 2025, 5:53:12 AMJun 17
to jw...@google.com, chromi...@chromium.org, bu...@chromium.org, chromium-...@chromium.org
+chromium-packagers

Hey Junji,

Given the "Ninja builds may eventually stop working" bit, can you clarify how this impacts downstreams like Linux distros that build Chromium from the published tarballs, or embedders like Electron, CEF, perhaps even Node due to V8?

Specifically, I'm wondering:
* Will there be releases like Ninja does?
* If not, I'm guessing everyone will be expected to fetch and build their own Siso copy?
* Are Siso versions supposed to be pinned to specific Chromium releases like GN?
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPi%2BNeUgSkAhywyWeCm6CpviNQeCK-8y7nJAW5HwVOjKNTxHLA%40mail.gmail.com.


Raphael Kubo da Costa

unread,
Jun 17, 2025, 5:59:12 AMJun 17
to jw...@google.com, chromi...@chromium.org, bu...@chromium.org, chromium-...@chromium.org
+chromium-packagers

Hey Junji,

Given the "Ninja builds may eventually stop working" bit, can you clarify how this impacts downstreams like Linux distros that build Chromium from the published tarballs, or embedders like Electron, CEF, perhaps even Node due to V8?

Specifically, I'm wondering:
* Will there be releases like Ninja does?
* If not, I'm guessing everyone will be expected to fetch and build their own Siso copy?
* Are Siso versions supposed to be pinned to specific Chromium releases like GN?

On 6/17/25 11:17, 'Junji Watanabe' via Chromium-dev wrote:
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPi%2BNeUgSkAhywyWeCm6CpviNQeCK-8y7nJAW5HwVOjKNTxHLA%40mail.gmail.com.


Liviu Laslau

unread,
Jun 18, 2025, 8:25:36 AMJun 18
to Chromium-dev, Raphael Kubo da Costa, chromi...@chromium.org, bu...@chromium.org, chromium-...@chromium.org, jw...@google.com
In simple terms, please, will Siso work exactly the same for local builds under win/mac ?
And also ccache support will stay ?

Junji Watanabe

unread,
Jun 18, 2025, 8:56:30 PMJun 18
to Liviu Laslau, Chromium-dev, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
Yes, Siso can do local builds without remote execution on Windows and Mac, too.
Regarding ccache, there should be no difference. Please let us know if you encounter any issue.

Junji Watanabe

unread,
Jun 18, 2025, 9:32:07 PMJun 18
to Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
(bcc chromium-dev@)

Let me fork the thread since I got responses from different people.

Chromium for Linux distros:
How do they build Chromium now? They are supposed to use the GN/Ninja binaries fetched via DEPS.
Siso also should be fetched via DEPS, as well.

Electron:
I got a message from Electron, and am discussing it with them.

CEF:
Looking at the repo, there are GN config files, Bazel files, CMake files. So, it's not clear how they build the Chromium part. 
Does anyone know who I should notify the PSA?

Node:
I'm also not familiar with how the official Node releases are built. Although there are GN configs, they don't seem to be used for Node official builds. 
I guess they still use GYP presumably with Make? Note that V8 has migrated to Siso already.

Thank you,
Junji

Junji Watanabe

unread,
Jun 18, 2025, 9:35:10 PMJun 18
to Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
(bcc chromium-dev@)

Let me fork the thread since I got responses from different people.

Chromium for Linux distros:
How do they build Chromium now? They are supposed to use the GN/Ninja binaries fetched via DEPS.
Siso also should be fetched via DEPS, as well.

Electron:
I got a message from Electron, and am discussing it with them.

CEF:
Looking at the repo, there are GN config files, Bazel files, CMake files. So, it's not clear how they build the Chromium part. 
Does anyone know who I should notify the PSA?

Node:
I'm also not familiar with how the official Node releases are built. Although there are GN configs, they don't seem to be used for Node official builds. 
I guess they still use GYP presumably with Make? Note that V8 has migrated to Siso already.

Thank you,
Junji

Nico Weber

unread,
Jun 18, 2025, 9:39:26 PMJun 18
to Junji Watanabe, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
In any case, do you think it's fair to say that we'd accept patches to keep ninja going, similar to gcc?

Dirk Pranke

unread,
Jun 18, 2025, 9:48:58 PMJun 18
to Junji Watanabe, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
On Wed, Jun 18, 2025 at 6:32 PM 'Junji Watanabe' via build <bu...@chromium.org> wrote:
(bcc chromium-dev@)

Let me fork the thread since I got responses from different people.

Chromium for Linux distros:
How do they build Chromium now? They are supposed to use the GN/Ninja binaries fetched via DEPS.
Siso also should be fetched via DEPS, as well.

Electron:
I got a message from Electron, and am discussing it with them.

CEF:
Looking at the repo, there are GN config files, Bazel files, CMake files. So, it's not clear how they build the Chromium part. 
Does anyone know who I should notify the PSA?

Node:
I'm also not familiar with how the official Node releases are built. Although there are GN configs, they don't seem to be used for Node official builds. 
I guess they still use GYP presumably with Make? Note that V8 has migrated to Siso already.

I believe Node has some sort of mutant system that reads V8's GN files and converts them back into a GYP-like format, and then they use their own implementation of the GYP-like format. Way back when Chromium and V8 were using regular GYP, Node was as well, but IIRC it wasn't practical for them to move off of GYP onto GN and so they implemented their own thing.

-- Dirk

Junji Watanabe

unread,
Jun 18, 2025, 9:55:06 PMJun 18
to Dirk Pranke, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
Hi Dirk,

Thank you for sharing the context! It sounds more complex than what I thought...
But, Siso is just an execution layer for V8, and the GN files for V8 won't be affected. So, it shouldn't break the GN->custom GYP conversion for Node.

Marshall Greenblatt

unread,
Jun 18, 2025, 9:58:53 PMJun 18
to Junji Watanabe, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org

On Jun 18, 2025, at 21:36, 'Junji Watanabe' via chromium-packagers <chromium-...@chromium.org> wrote:


(bcc chromium-dev@)

Let me fork the thread since I got responses from different people.

Chromium for Linux distros:
How do they build Chromium now? They are supposed to use the GN/Ninja binaries fetched via DEPS.
Siso also should be fetched via DEPS, as well.

Electron:
I got a message from Electron, and am discussing it with them.

CEF:
Looking at the repo, there are GN config files, Bazel files, CMake files. So, it's not clear how they build the Chromium part. 
Does anyone know who I should notify the PSA?

We (CEF builders) can download Chromium in the “usual way” (e.g. bootstrap with depot_tools, run “gclient sync” to download src) or by downloading source tarballs. In both cases platform/architecture-specific binaries are downloaded with “gclient sync” (based on DEPS) and builds are performed using autoninja. We support build acceleration with [s]ccache currently and were looking at adding reclient support recently (paused now, waiting on the siso migration).

You received this message because you are subscribed to the Google Groups "chromium-packagers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-packag...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/chromium-packagers/CAPi%2BNeV9YbSYv2-7u3D_jkU-P%2ByyuO8VEkZJb3X8BKqQJVbhOA%40mail.gmail.com.

Junji Watanabe

unread,
Jun 18, 2025, 10:03:26 PMJun 18
to Nico Weber, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
That's a good point, and yes. This is similar to gcc. We would accept patches for Ninja compatibility.
One thing though, we want to clean up the Reclient integration from GN configs.

FWIW, Reclient is still released via CIPD. CMake projects with Ninja can keep using it.

Avi Drissman

unread,
Jun 18, 2025, 10:22:22 PMJun 18
to jw...@google.com, Chromium Embedders, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
+Chromium Embedders in case there are any folks on that list who didn't get this notification.

Junji Watanabe

unread,
Jun 18, 2025, 10:27:35 PMJun 18
to Marshall Greenblatt, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
Hi Marshall, 

Thank you for your reply. 

On Thu, Jun 19, 2025 at 10:58 AM Marshall Greenblatt <magree...@gmail.com> wrote:

On Jun 18, 2025, at 21:36, 'Junji Watanabe' via chromium-packagers <chromium-...@chromium.org> wrote:


(bcc chromium-dev@)

Let me fork the thread since I got responses from different people.

Chromium for Linux distros:
How do they build Chromium now? They are supposed to use the GN/Ninja binaries fetched via DEPS.
Siso also should be fetched via DEPS, as well.

Electron:
I got a message from Electron, and am discussing it with them.

CEF:
Looking at the repo, there are GN config files, Bazel files, CMake files. So, it's not clear how they build the Chromium part. 
Does anyone know who I should notify the PSA?

We (CEF builders) can download Chromium in the “usual way” (e.g. bootstrap with depot_tools, run “gclient sync” to download src) or by downloading source tarballs. In both cases platform/architecture-specific binaries are downloaded with “gclient sync” (based on DEPS) and builds are performed using autoninja. We support build acceleration with [s]ccache currently and were looking at adding reclient support recently (paused now, waiting on the siso migration).

 
Siso should be downloaded via gclient sync. So, it should just work with autoninja without changing anything. 
For remote execution support, I think I need to write more documents as we resolve migration issues, and will share it with you.
I subscribed to the Github issue for now. 

Raphael Kubo da Costa

unread,
Jun 19, 2025, 3:49:24 AMJun 19
to jw...@google.com, bu...@chromium.org, chromium-...@chromium.org
On 6/19/25 03:31, 'Junji Watanabe' via Chromium-dev wrote:
(bcc chromium-dev@)

Let me fork the thread since I got responses from different people.

Chromium for Linux distros:
How do they build Chromium now? They are supposed to use the GN/Ninja binaries fetched via DEPS.
Siso also should be fetched via DEPS, as well.

Distros usually download the tarballs we publish via https://ci.chromium.org/ui/p/infra/builders/cron/publish_tarball, but generally speaking pulling pre-built binaries to use as part of the build is either frowned upon or simply not allowed (and I believe this applies to other parties besides distros).

We bundle GN's sources into the tarball for this reason, and distros (and possibly others) use Ninja as provided by the distribution rather than pulling a binary via DEPS (hence my question about releases, pinned versions and whether one would be expected to build Siso, which would then require a Go toolchain before even beginning to build Chromium).

Junji Watanabe

unread,
Jun 19, 2025, 4:30:32 AMJun 19
to Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
Hi Raphael, 

Thank you for sharing that. It sounds like we need to bundle Siso's sources into the tarball and build it with Go. We have a task to separate the Siso project into its own Git repository with minimum dependencies. It's probably better to finish that first. (I filed http://crbug.com/426104744 to include Siso sources to the tarballs for now.) 
Would this task be sufficient on the Chromium side?

Nico Weber

unread,
Jun 19, 2025, 10:10:55 AMJun 19
to Junji Watanabe, Marshall Greenblatt, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org
Just to repeat from the other thread: We'd accept patches to keep building with ninja working, similar to how we accept patches for gcc. As far as I understand, we won't intentionally break building with ninja; it's just that we no longer have bot coverage for it.

ChangSeok Oh

unread,
Jun 19, 2025, 8:17:08 PMJun 19
to jw...@google.com, bu...@chromium.org, chromium-...@chromium.org
Hi Junji,

I noticed that Siso does not support the classic `-j` option, based on a quick test. In offline mode, how can we control the number of local jobs?

The default value of `-1` for `-remote_jobs` appears to utilize all available CPU cores. Is there a way to throttle or limit the number of jobs for a local build?

Best,

--
ChangSeok


On 6/18/25 6:31 PM, 'Junji Watanabe' via Chromium-dev wrote:
> (bcc chromium-dev@)
>
> Let me fork the thread since I got responses from different people.
>
> Chromium for Linux distros:
> How do they build Chromium now? They are supposed to use the GN <https://source.chromium.org/chromium/chromium/src/+/main:DEPS;l=1029-1058;drc=a68f8f542db332f01e199ca9fea006826f6d230b>/Ninja <https://source.chromium.org/chromium/chromium/src/+/main:DEPS;l=2559-2568;drc=a68f8f542db332f01e199ca9fea006826f6d230b> binaries fetched via DEPS.
> Siso also should be fetched via DEPS <https://source.chromium.org/chromium/chromium/src/+/main:DEPS;l=2569-2578;drc=a68f8f542db332f01e199ca9fea006826f6d230b>, as well.
>
> Electron:
> I got a message from Electron, and am discussing it with them.
>
> CEF:
> Looking at the repo <https://github.com/chromiumembedded/cef>, there are GN config files, Bazel files, CMake files. So, it's not clear how they build the Chromium part.
> Does anyone know who I should notify the PSA?
>
> Node:
> I'm also not familiar with how the official Node releases are built. Although there are GN configs <https://github.com/nodejs/node/blob/main/BUILD.gn#L7>, they don't seem to be used for Node official builds.
> I guess they still use GYP presumably with Make <https://github.com/nodejs/node/blob/main/BUILDING.md#unix-and-macos>? Note that V8 has migrated to Siso already.
>
> Thank you,
> Junji
>
> On Tue, Jun 17, 2025 at 6:53 PM Raphael Kubo da Costa <ku...@igalia.com <mailto:ku...@igalia.com>> wrote:
>
> __
> +chromium-packagers
>
> Hey Junji,
>
> Given the "Ninja builds may eventually stop working" bit, can you clarify how this impacts downstreams like Linux distros that build Chromium from the published tarballs, or embedders like Electron, CEF, perhaps even Node due to V8?
>
> Specifically, I'm wondering:
> * Will there be releases like Ninja does?
> * If not, I'm guessing everyone will be expected to fetch and build their own Siso copy?
> * Are Siso versions supposed to be pinned to specific Chromium releases like GN?
>
> On 6/17/25 11:17, 'Junji Watanabe' via Chromium-dev wrote:
>> Hi Dirk,
>>
>> Thank you for your questions. Let me clarify.
>>
>> Regarding your first question, there are a few reasons for moving away from Ninja:
>>
>> Maintenance Cost: Currently, we have limited testing for Ninja and Reclient builds on our CI builders. While we are still addressing and fixing any issues that arise, our goal is to discontinue support for Ninja after the upcoming deadline.
>>
>> Build Improvements: We're planning to improve our build processes by integrating GN and Siso more closely. This includes features like mtime-less builds and more efficient build graph serialization. It's difficult to predict how challenging it will be to maintain compatibility with Ninja as we implement these improvements, and it's possible that Ninja builds may eventually stop working. So, we encourage switching to Ninja soon. If you encounter any workflow issues with Siso, please provide feedback <https://chromium.googlesource.com/infra/infra/+/refs/heads/main/go/src/infra/build/siso/#contacts>.
>>
>> Regarding your question about Siso's support for other RBE backends, Siso is designed to send Remote Execution API <https://github.com/bazelbuild/remote-apis/blob/main/build/bazel/remote/execution/v2/remote_execution.proto> (REAPI) requests to a custom API address. I am currently in contact with various remote build service providers to confirm full compatibility with Siso's REAPI support.
>>
>> Thank you,
>> Junji
>>
>> On Tue, Jun 17, 2025 at 12:36 AM Dirk Pranke <dpr...@chromium.org <mailto:dpr...@chromium.org>> wrote:
>>
>> Hi Junji,
>>
>> Presumably GN is still generating .ninja files that work with Ninja, so what are the implications of this for people that aren't using remote execution to build? Are we going to be making changes that aren't compatible with Ninja?
>>
>> Or is this more of a support thing, in that you only want to support one build tool?
>>
>> Also, does Siso support building with other RBE backends?
>>
>> -- Dirk
>>
>> On Mon, Jun 16, 2025 at 2:00 AM 'Junji Watanabe' via build <bu...@chromium.org <mailto:bu...@chromium.org>> wrote:
>>
>> Hi everyone,
>>
>>
>> This PSA is for all external Chromium developers regarding an upcoming change to the Chromium build system.
>>
>>
>> What's changing?
>>
>>
>> Chromium's build system is switching from Ninja 🥷 to Siso 🌿. This migration has already been completed for developers and CI/CQ within Google, and we are now extending it to our external contributors.
>>
>>
>> Siso <https://chromium.googlesource.com/infra/infra/+/refs/heads/main/go/src/infra/build/siso/>is developed by the Chrome Build Infra Team at Google as a drop-in replacement for Ninja to support remote execution natively.
>>
>>
>> What do you need to do?
>>
>>
>> Just keep building Chromium with autoninja. autoninjawill automatically use Siso after you run gn cleanthe next time.
>>
>>
>> How to opt out?
>>
>>
>> If you encounter problems with Siso, you can switch back by setting use_siso=falsein your args.gn <http://args.gn>.
>>
>>
>> About Ninja/Reclient/GN
>>
>>
>> *
>>
>> GN will stay the same as before.
>>
>> *
>>
>> Reclient will be removed from Chromiumat the end of September.
>>
>> *
>>
>> Ninja will be unsupported after the end of September.
>>
>>
>> Please prepare to switch to Siso before the deadline.
>>
>>
>> Questions or Issues?
>>
>>
>> If you have any questions or run into any problems with this change, please don't hesitate to reach out to us:
>>
>> *
>>
>> Slack: #build <https://chromium.slack.com/archives/C08SJ9DH4BZ>
>>
>> *
>>
>> Chromium Issue Tracker: File a Siso bug <https://issues.chromium.org/issues/new?component=1724382&template=2146965>.
>>
>> *
>>
>> Email: bu...@chromium.org <mailto:bu...@chromium.org>
>>
>>
>> Thanks,
>>
>> Junji - on behalf of the Chrome Build Infra Team
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups "build" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to build+un...@chromium.org <mailto:build+un...@chromium.org>.
>> To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/build/CAPi%2BNeWH9%3D%3DF4zncWXUpN%2B_X9QPrXd1_3RZ8exk9p%3D%3D1mADWKg%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/build/CAPi%2BNeWH9%3D%3DF4zncWXUpN%2B_X9QPrXd1_3RZ8exk9p%3D%3D1mADWKg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>
>> --
>> --
>> Chromium Developers mailing list: chromi...@chromium.org <mailto:chromi...@chromium.org>
>> View archives, change email options, or unsubscribe:
>> http://groups.google.com/a/chromium.org/group/chromium-dev <http://groups.google.com/a/chromium.org/group/chromium-dev>
>> ---
>> You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org <mailto:chromium-dev...@chromium.org>.
>> To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPi%2BNeUgSkAhywyWeCm6CpviNQeCK-8y7nJAW5HwVOjKNTxHLA%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPi%2BNeUgSkAhywyWeCm6CpviNQeCK-8y7nJAW5HwVOjKNTxHLA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>
>
> --
> --
> Chromium Developers mailing list: chromi...@chromium.org
> View archives, change email options, or unsubscribe:
> http://groups.google.com/a/chromium.org/group/chromium-dev <http://groups.google.com/a/chromium.org/group/chromium-dev>
> ---
> You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org <mailto:chromium-dev...@chromium.org>.
> To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPi%2BNeUsxsF0u75uCHy9x%3D0Oe-1_ZzRA4BbRYpVzy6iRvUVLow%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPi%2BNeUsxsF0u75uCHy9x%3D0Oe-1_ZzRA4BbRYpVzy6iRvUVLow%40mail.gmail.com?utm_medium=email&utm_source=footer>.

Junji Watanabe

unread,
Jun 19, 2025, 9:02:16 PMJun 19
to ChangSeok Oh, bu...@chromium.org, chromium-...@chromium.org
Hi ChangSeok, 

I just added the `-local_jobs` flag to siso. https://crrev.com/c/6656798
It will be rolled out early next week. Please use that instead of -j. 

Thank you,

Matt Jolly

unread,
Jun 19, 2025, 9:54:09 PMJun 19
to chromium-...@chromium.org, bu...@chromium.org
Hi,

On 20/6/25 11:01, 'Junji Watanabe' via chromium-packagers wrote:

> I just added the `-local_jobs` flag to siso. https://crrev.com/c/6656798
> <https://crrev.com/c/6656798>
> It will be rolled out early next week. Please use that instead of -j.
>
Since that change amounts to explicitly _not_ supporting the standard
`-j` option that everybody else supports for local jobs:

```
-c.Flags.IntVar(&c.ninjaJobs, "j", -1, "not supported. use -remote_jobs
instead")
+c.Flags.IntVar(&c.ninjaJobs, "j", -1, "not supported. use -remote_jobs
and -local_jobs instead")
```

Would you consider just making -j a synonym for `-local_jobs`? Seems
like the principle of least surprise should apply here, and this is the
sort of papercut that end users just don't need to deal with if they're
trying to invoke the tool manually.

Cheers,

Matt

Junji Watanabe

unread,
Jun 20, 2025, 2:22:17 AMJun 20
to Matt Jolly, chromium-...@chromium.org, bu...@chromium.org
Hi Matt,
We are discussing handling -j for Siso in https://crbug.com/426343804


--
You received this message because you are subscribed to the Google Groups "chromium-packagers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-packag...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/chromium-packagers/402829e8-e152-4eec-b22d-712bf2753dd1%40gentoo.org.

Marcus Eagan

unread,
Jun 21, 2025, 1:19:29 AMJun 21
to build, Junji Watanabe, chromium-...@chromium.org, bu...@chromium.org, Matt Jolly
There have been a lot of changes to building Chromium over the past two years and we are committed to staying up-to-date. Thank you to the team for the continued transparency. 

We are open to provisioning infrastructure for the Google team to test against Nativelink's cloud infrastructure. Any work from your side or in the community to test and document using our open source Nativelink distribution (remote cache and remote execution) is greatly appreciated. Both the cloud and our open source are already used heavily by many of the larger Chromium-based products. 

Marcus


Tor Arne Vestbø

unread,
Jun 21, 2025, 8:00:06 AMJun 21
to Chromium-dev, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org, jw...@google.com
Cool stuff! A few questions:

1. Are there prebuilt binaries somewhere (CIPD) or should we build from source?
2. It seems a `build/config/siso/main.star` is needed to `siso ninja`. What is the minimal main.star that makes `siso ninja` a drop in replacement for `ninja` in an existing (CMake-based) project (that's not Chromium)?
3. reclient has `RBE_remote_headers=x-buildbuddy-api-key=mykey`, does siso respect that or is there another way to do header-based auth?

Cheers,
Tor Arne

Fumitoshi Ukai (鵜飼文敏)

unread,
Jun 23, 2025, 3:56:18 AMJun 23
to Tor Arne Vestbø, Chromium-dev, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org, jw...@google.com
On Sat, Jun 21, 2025 at 9:00 PM Tor Arne Vestbø <tor...@gmail.com> wrote:
Cool stuff! A few questions:

1. Are there prebuilt binaries somewhere (CIPD) or should we build from source?

DEPS fetches infra/build/siso/${platform} cipd package. 
 
2. It seems a `build/config/siso/main.star` is needed to `siso ninja`. What is the minimal main.star that makes `siso ninja` a drop in replacement for `ninja` in an existing (CMake-based) project (that's not Chromium)?

```
load("@builtin//encoding.star", "json")
load("@builtin//struct.star", "module")

def init(ctx):
    step_config = {}
    return module(
        "config",
        step_config = json.encode(step_config),
        filegroups = {},
        handlers = {},
    )
```
 
3. reclient has `RBE_remote_headers=x-buildbuddy-api-key=mykey`, does siso respect that or is there another way to do header-based auth?

use credhelper?
https://issues.chromium.org/416625026 Siso should support simple authentication methods
 

Cheers,
Tor Arne

On Thursday, June 19, 2025 at 9:53:03 AM UTC+2 Raphael Kubo da Costa wrote:
On 6/19/25 03:31, 'Junji Watanabe' via Chromium-dev wrote:
(bcc chromium-dev@)

Let me fork the thread since I got responses from different people.

Chromium for Linux distros:
How do they build Chromium now? They are supposed to use the GN/Ninja binaries fetched via DEPS.
Siso also should be fetched via DEPS, as well.

Distros usually download the tarballs we publish via https://ci.chromium.org/ui/p/infra/builders/cron/publish_tarball, but generally speaking pulling pre-built binaries to use as part of the build is either frowned upon or simply not allowed (and I believe this applies to other parties besides distros).

We bundle GN's sources into the tarball for this reason, and distros (and possibly others) use Ninja as provided by the distribution rather than pulling a binary via DEPS (hence my question about releases, pinned versions and whether one would be expected to build Siso, which would then require a Go toolchain before even beginning to build Chromium).

--
You received this message because you are subscribed to the Google Groups "build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to build+un...@chromium.org.

Junji Watanabe

unread,
Jun 23, 2025, 9:54:33 PMJun 23
to Matt Jolly, chromium-...@chromium.org, bu...@chromium.org
On Fri, Jun 20, 2025 at 3:21 PM Junji Watanabe <jw...@google.com> wrote:
Hi Matt,
We are discussing handling -j for Siso in https://crbug.com/426343804

FYI: `-j` is now handled by the latest `autoninja` in depot_tools and Siso v1.3.1 or later.

Levi Zim

unread,
Jul 3, 2025, 8:34:29 AMJul 3
to Chromium-dev, Tor Arne Vestbø, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org, jw...@google.com
Hi, I am encountering an error that requires me to login when using siso. Is this expected?
0.00s Error: need to run `siso login`: failed to get token : exec: "gcloud": executable file not found in $PATH

Walter Rader

unread,
Jul 3, 2025, 2:17:35 PMJul 3
to Chromium-dev, Levi Zim, Tor Arne Vestbø, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org, jw...@google.com
> Hi, I am encountering an error that requires me to login when using siso. Is this expected?

It's not documented in the build instructions - at least for Mac (https://chromium.googlesource.com/chromium/src/+/main/docs/mac_build_instructions.md ).

Further, following the instructions to run `siso login` and following its instructions results in failure.

/!\

This app is blocked

This app tried to access sensitive info in your Google Account. To keep your account safe, Google blocked this access.

Walter

Hans Wennborg

unread,
Jul 4, 2025, 8:51:18 AMJul 4
to Walter Rader, Chromium-dev, Levi Zim, Tor Arne Vestbø, Raphael Kubo da Costa, bu...@chromium.org, chromium-...@chromium.org, jw...@google.com
--
You received this message because you are subscribed to the Google Groups "build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to build+un...@chromium.org.
Message has been deleted

Shezan Baig

unread,
Jul 9, 2025, 8:01:02 AMJul 9
to Chromium-dev, Junji Watanabe, bu...@chromium.org
Hi, is there an equivalent of NINJA_STATUS for siso?  (i.e. https://ninja-build.org/manual.html#_environment_variables)
Thanks, -shez-


On Monday, June 16, 2025 at 5:04:45 AM UTC-4 Junji Watanabe wrote:

Hi everyone,


This PSA is for all external Chromium developers regarding an upcoming change to the Chromium build system.


What's changing?


Chromium's build system is switching from Ninja 🥷 to Siso 🌿. This migration has already been completed for developers and CI/CQ within Google, and we are now extending it to our external contributors.


Siso is developed by the Chrome Build Infra Team at Google as a drop-in replacement for Ninja to support remote execution natively.


What do you need to do?


Just keep building Chromium with autoninja. autoninja will automatically use Siso after you run gn clean the next time.


How to opt out? 


If you encounter problems with Siso, you can switch back by setting use_siso=false in your args.gn.


About Ninja/Reclient/GN


  • GN will stay the same as before.

  • Reclient will be removed from Chromium at the end of September.

  • Ninja will be unsupported after the end of September.


Please prepare to switch to Siso before the deadline.


Questions or Issues?


If you have any questions or run into any problems with this change, please don't hesitate to reach out to us:

Junji Watanabe

unread,
Jul 9, 2025, 8:42:37 AMJul 9
to Shezan Baig, Chromium-dev, bu...@chromium.org
Hi Shezan, 

Siso doesn't support NINJA_STATUS. But it displays more status than Ninja by default. e.g. number of completed steps per second.  Also, we got a feature request for ETA (%W) specifically.

Shezan Baig

unread,
Jul 9, 2025, 9:56:51 AMJul 9
to Junji Watanabe, Chromium-dev, bu...@chromium.org
Thanks Junji!
Would it be possible to add an option to put the number of steps completed per second on the same line as the number of steps completed/total steps?  Currently, the number of steps per second only shows when it is connected to a tty, so we cannot see it when the build is running on a buildbot, for example.
Thanks!
-shez-

Junji Watanabe

unread,
Jul 16, 2025, 2:30:49 AMJul 16
to Shezan Baig, Chromium-dev, bu...@chromium.org
Hi Shezan, 

Sorry for the late reply. I filed https://crbug.com/432148544 to track it. We got other UI related feature requests. So, we will try to handle them together.

Thank you,
Junji
Reply all
Reply to author
Forward
0 new messages