In this talk, I will be introducing our new distribution agnostic
build tool which we presently use in GNOME for the purpose of
unifying our software build story, allowing us to achive multiple
goals using the same flexible build metadata. I will talk about the
motivations behind creating BuildStream, how it has been helping us
so far, and how the rich feature set we've created can help software
developers and integrators.
The target audience for this talk includes software developers who
have the need or experience of creating packages and bundles for
various downstreams as well as software integrators and distributors
in general.
Many build systems available today are tightly coupled with a given
distribution mechanism, be it packaging technology for specific
distributions, or bundling technology for specific platforms. As a
result, the build metadata created for building for one platform
cannot normally be reused for another target, and upstream maintainers
typically need to maintain various sets of build metadata to get
their software out to users on different platforms.
One of our goals in BuildStream is to reduce the redundancy of
build metadata overall, by providing a declarative format and
build system which allows one to model build pipelines flexibly,
allowing the same build metadata to be leveraged to perform different
tasks.
Another goal for us is to bring the software developer and the
integrator closer together. By providing a workflow where the
developer of a single module is easily capable of testing their
changes against an integrated system, or an integrator can easily
change a line of code at any level of the stack and quickly test
the integrated result, we hope to bridge the gap between development
and integration.