Right now mozboot is a glorified script. You invoke |mach bootstrap| and a sequence of setup steps get run. There is a lot of branching that can happen based on environment and platform, but at the end of the day the steps are all hardcoded one after the other.
I've long thought it would be useful if mozboot could be made more generic. I.e, implement the ability to install things various ways (apt-get, dnf, pip, wget tar, etc) and then allowing the consumers of mozboot to define their own bootstrap recipes.
In other words, it would be awesome if mozboot didn't have any build context baked into it. Instead, we would move the current implementation of |mach bootstrap| under python/mozbuild.
We could also create new bootstrap recipes for other parts of the dev workflow. For example to install lint and formatting dependencies when running |mach lint| or |mach clang-format|.
In an ideal world, we could prompt developers to bootstrap only the packages necessary to complete their current task at hand without forcing them to run a separate |mach bootstrap| command. This means we wouldn't need to prompt them to re-run |mach bootstrap| from time to time, and they wouldn't waste time and disk space installing packages they'll never end up using.
I'm filing this bug just to get the idea down in writing somewhere.