Oh, actually dependencies are not a big issue. One good thing about the Android build system is that it bundles most of the stuff it requires, and what's not bundled is quite easy to install.
The complexity comes more from a sizable amount of build scripts that have a good amount of complexity and that must fit together. Another parts come from us not knowing well enough the Android build system, and doing extra work to perform some building outside that.
Kubernetes could help slightly with running the development environment- because the running environment has a few moving pieces and k8s is good for orchestrating that kind of thing, but I feel it's not really worth it.
...
It's also a product of a full build taking 45 minutes to run, so experimentation is a bit slow (we don't need to do full builds often, but when you're messing with the build system, you want to test full builds).
...
Surprisingly, this team has an obsession with doing as much as possible on Rust. And I thought that was a terrible idea for the build scripts, but... the ability to catch most errors at compile time when working on the build scripts has really been worthwhile. I was already a convert of replacing shell scripts with Python scripts, but I'm slowly becoming convinced that using a statically-typed language is likely worthwhile. Also in build scripts you really don't hit the difficult bits of Rust, so actually you get the pleasant bits, but not much of the painful bits.
The complexity comes more from a sizable amount of build scripts that have a good amount of complexity and that must fit together. Another parts come from us not knowing well enough the Android build system, and doing extra work to perform some building outside that.
Kubernetes could help slightly with running the development environment- because the running environment has a few moving pieces and k8s is good for orchestrating that kind of thing, but I feel it's not really worth it.
...
It's also a product of a full build taking 45 minutes to run, so experimentation is a bit slow (we don't need to do full builds often, but when you're messing with the build system, you want to test full builds).
...
Surprisingly, this team has an obsession with doing as much as possible on Rust. And I thought that was a terrible idea for the build scripts, but... the ability to catch most errors at compile time when working on the build scripts has really been worthwhile. I was already a convert of replacing shell scripts with Python scripts, but I'm slowly becoming convinced that using a statically-typed language is likely worthwhile. Also in build scripts you really don't hit the difficult bits of Rust, so actually you get the pleasant bits, but not much of the painful bits.