During our early stages of development we’re taking our time, so that each decision we make will stand the test of time and ensure sustainability.
Arguably the simplest stage of all. Create a set of scripts to reliable produce a cross-compilation environment for stage2.
This will include the basic toolchain and some utilities to help rebuild stage1, and is partially host-dependent.
Use the complete environment from stage1 to produce a complete, functional, toolchain.
This intermediate toolchain will be used in stage3 to completely build the system.
Natively build root filesystem using stage2 as a support runtime.
At this point, the image is said to be fully self-hosting and is a fully native toolchain, not a cross-compilation toolchain.
Produce native packages matching the stage3 bootstrap, and rebootstrap the native image using the package management tools. At this point, the entire distribution will become self hosting with an initial binary repository and public image.
Stage 4 is arguably the most complex, as it requires build tooling, repository and package management to be functional.