As a first step towards tying everything together, we will want to build the Flatpak freedesktop and GNOME Flatpak Runtimes and SDKs with BuildStream.
With this milestone, we should be able to produce a sensible, single BuildStream project which can be used by GNOME release team both for releases (which can be deployed as bootable system images) and for the generation of the GNOME SDK & Runtime.
This will not yet include the required support for a more desirable developer experience using BuildStream (that is a separate task which is quite orthogonal to this one, and could be done in parallel).
Continuous conversions of GNOME modulesets
In order to avoid having to struggle with a cut off day, it will be nice if people can try a BuildStream build of upstream GNOME jhbuild modulesets at any time.
Status: Done announced here
Bridging the gap to a running system
We will require an additional project which adds to the freedesktop Sdk bases but includes the minimal requirements to obtain a bootable system, with a kernel, systemd and some services.
There are two possible approaches to this:
Modify and adapt the Yocto build of freedesktop-sdk-base so that it may optionally create a minimal bootable image.
Just create an additional BuildStream project which builds the desirable added components such as systemd and kernel.
There are advantages to either approach. The freedesktop-sdk-base project is originally a fork of the GNOME Continuous Yocto project which does include the required services, but the base Flatpak runtime contains much less, and it's questionable whether an output containing more at this low level is appropriate. The stated benefit of using the Yocto build is only that the Yocto community maintains their own distro so we dont have to, however this is more important for the Flatpak project than it is for developers who just want to test a booted GNOME system.
Note: Instead of doing this, in the short term at least, we are using the debootstrap-ostree script which runs nightly and imports a debian base system with the GNOME jhbuild system dependencies for the architectures we care about (i386, amd64, armhf, aarch64).
Building the GNOME modulesets and Flatpak SDK/Runtimes
This should be done in a side branch of the GNOME release team's moduleset repository
This project will have to depend on the freedesktop SDK project as a recursive pipeline (outlined in previous milestones)
We will be using a variant (described in BuildStream format documentation) in one of the toplevel stack elements in order to determine what is included and what the project depends on, i.e. whether we are building the full modulesets with an eye towards deploying a full system (in which case we depend on an additional project providing additional builds), or whether we are only building the Flatpak assets.
Update: Currently using completely automated conversions generating read-only repository on gnome7.codethink.co.uk, the upstream gnome-modulesets git repository is still not actively being used, and moving to an upstream repo should be done manually later, based on an existing automated conversion, after which point we can stop the conversion service and deprecate JHBuild.
Status: In Progress
Convert and build freedesktop SDK & Runtime
Later, once we have recursive pipelines, it will be interesting, as an optimization, to have the whole Flatpak GNOME stack built with a couple of recursive BuildStream project definitions.