Chromium Switching from Ninja to Siso
27 comments
·June 18, 2025RainyDayTmrw
operator-name
If Android was anything to go by, migrating build systems is a risky endeavour. Miso claims compatibility with ninja, so I’m guessing this route was deemed easier to make incremental improvements.
jinwoo68
To be fair, Bazel didn't exist when Chrome started.
dijit
Even so, a build system migration of any kind being anything other than Bazel given the design goals of Bazel and the heritage of Chrome is an implicit indictment of Bazel itself.
I say this as a fan of Bazel.
arccy
moving to bazel might be a lot more work vs a drop in replacement which is what siso looks like atm.
jefftk
Bazel didn't even exist when they moved from gyp to ninja.
intexpress
Note that Siso uses Starlark (https://chromium.googlesource.com/infra/infra/+/refs/heads/m...) which is the build language of Bazel
I wonder if the end goal is to use Bazel for Chromium and Siso is an incremental step to get there
jefftk
I think this makes Chrome build system number four: scons, gyp, ninja, siso.
txdv
Is there an explanation what siso provides that ninja does not?
out-of-ideas
> Siso is developed by the Chrome Build Infra Team at Google as a drop-in replacement for Ninja to support remote execution natively.
nikanj
It’s new
kookamamie
If Siso is a drop-in alternative to Ninja, are there builds of Siso usable for building Ninja-projects, in general?
operator-name
https://pkg.go.dev/go.chromium.org/infra/build/siso#section-...
Ninja compatible, for the flags that chromium uses. There’s some behaviour they’ve tuned for their use case.
mrlonglong
They've added a dependency on Go with the addition of siso.
tedunangst
Is this consequential for a project the size of chromium?
lordofgibbons
How so? you don't need the go build toolchain installed to use Go binaries.
throwaway81523
If I'm going to compile Chromium from source, I probably want to compile the build system from source.
ahahahahah
Why? Would you compile the compiler from source as well? From what? You need to compile the compiler's compiler from source as well, right? Where does it stop? And why is that location more valid of a decision than the one that doesn't require building the build system from source?
kazinator
Compile, using what?
phinnaeus
If you wish to bake an apple pie from scratch…
charcircuit
I wonder if AOSP will also move over to Siso. Since it is advertised as a drop in replacement it would take less resources than the Bazel migration which got canceled. The readme explicitly calls out a feature used by AOSP, so it is plausible that thought was put into it.
kosolam
Looks like the Google developer in the discussion is clueless.
Kinda impressive and terrifying that Chromium needs its own build system. Kinda strange that Bazel was right there, also from Google, and they not only choose not to use it, but also reference it in the name of the new tool.