Welcome to the BuildStream project


What is BuildStream?

BuildStream is a powerful and flexible software integration toolset. It supports multiple build-systems and can produce multiple outputs from the same project (e.g. debian packages, flatpak runtimes, and system images).

BuildStream takes inspiration, lessons and use-cases from various projects including OBS, Reproducible Builds, Yocto, Baserock, Buildroot, Aboriginal, GNOME Continuous, JHBuild, Flatpak Builder and Android repo.

Who is using BuildStream?

Our core users are application developers and system integrators who create production-ready software systems that need to be maintained efficiently and reliably in the long term.

Buildstream is currently used by multiple software projects, including:






What can BuildStream do, and why should I use it?

  • BuildStream is fast and predictable, powerful and robust.
  • BuildStream can build complex systems at scale, in a continuous delivery envrionment.
  • BuildStream is extensible. You can adapt it to complex workflows, or to support your favourite build-system.
  • At the same time, BuildStream is simple enough to be installed locally to build a simple change in an application that's under heavy development.
  • BuildStream can create full systems and complete toolchains from scratch, for a range of ISAs including x86_32, x86_64, ARMv7, ARMv8, MIPS.

Features:

  • Declarative format: Comprehensive YAML project format
  • Sandboxed build environment: no host tools or network access in builds, geared towards reproducibility
  • Efficient: tested for efficiency with projects consisting of 10s of thousands of modules
  • Build artifact caching: Avoid building the same element twice when the inputs are identical, share cached results with your peers.

How do I get BuildStream?

See our install page for details.

How do I get involved?

BuildStream is a welcoming Free Software project, which means your participation is one of the project goals. The BuildStream project welcomes and promotes the participation and contributions of any person.

The most obvious way to participate is to use BuildStream. If you do, then please tell us about your experiences so we can learn from your feedback, and tell other people about your exeriences too, so we can reach a larger user base.

You can also install the latest development snapshots, and help us test new features developed by the community.

How can I get involved with Buildstream Development?

The main repository is buildstream and development happens on the master branch. Following modern delivery practices, master should always work.

We suggest starting with basic bug fixes, and working up to new feature development. New features should always be discussed on the mailing lists, before being submitted as pull requests, see the project's contributing page for details.

How can I get involved with the Community?

We have a mailing list, and an IRC channel on the GNOME IRC server. Please also feel free to reach out to community members at conferences and at events.