Skip to main content

A framework for modelling build pipelines in YAML

Project description

https://docs.buildstream.build/master/_static/release.svg https://docs.buildstream.build/master/_static/snapshot.svg GitHub Workflow Status https://img.shields.io/pypi/v/BuildStream.svg

What is BuildStream?

BuildStream is an Open Source tool for building/integrating software stacks. It 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.

BuildStream supports multiple build-systems (e.g. autotools, cmake, cpan, distutils, make, meson, qmake), and can create outputs in a range of formats (e.g. debian packages, flatpak runtimes, sysroots, system images) for multiple platforms and chipsets.

Why should I use BuildStream?

BuildStream offers the following advantages:

  • Declarative build instructions/definitions

    BuildStream provides a flexible and extensible framework for the modelling of software build pipelines in a declarative YAML format, which allows you to manipulate filesystem data in a controlled, reproducible sandboxed environment.

  • Support for developer and integrator workflows

    BuildStream provides traceability and reproducibility for integrators handling stacks of hundreds/thousands of components, as well as workspace features and shortcuts to minimise cycle-time for developers.

  • Fast and predictable

    BuildStream can cache previous builds and track changes to source file content and build/config commands. BuildStream only rebuilds the things that have changed.

  • Extensible

    You can extend BuildStream to support your favourite build-system.

  • Bootstrap toolchains and bootable systems

    BuildStream can create full systems and complete toolchains from scratch, for a range of ISAs including x86_32, x86_64, ARMv7, ARMv8, MIPS.

How do I use BuildStream?

Please refer to the documentation for information about installing BuildStream, and about the BuildStream YAML format and plugin options.

How does BuildStream work?

BuildStream operates on a set of YAML files (.bst files), as follows:

  • Loads the YAML files which describe the target(s) and all dependencies.

  • Evaluates the version information and build instructions to calculate a build graph for the target(s) and all dependencies and unique cache-keys for each element.

  • Retrieves previously built elements (artifacts) from a local/remote cache, or builds the elements in a sandboxed environment using the instructions declared in the .bst files.

  • Transforms/configures and/or deploys the resulting target(s) based on the instructions declared in the .bst files.

How can I get started?

To get started, first install BuildStream by following the installation guide and then follow our tutorial in the user guide.

We also recommend exploring some existing BuildStream projects:

If you have any questions please ask on our #buildstream channel in irc.gnome.org

Availability in distros

  • BuildStream:

https://repology.org/badge/vertical-allrepos/buildstream.svg
  • BuildStream external plugins (bst-external)

https://repology.org/badge/vertical-allrepos/bst-external.svg

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

BuildStream-2.0.0.tar.gz (2.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

BuildStream-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (19.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

BuildStream-2.0.0-cp39-cp39-manylinux_2_28_x86_64.whl (19.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

BuildStream-2.0.0-cp38-cp38-manylinux_2_28_x86_64.whl (19.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

BuildStream-2.0.0-cp37-cp37m-manylinux_2_28_x86_64.whl (19.6 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.28+ x86-64

File details

Details for the file BuildStream-2.0.0.tar.gz.

File metadata

  • Download URL: BuildStream-2.0.0.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for BuildStream-2.0.0.tar.gz
Algorithm Hash digest
SHA256 112e531ee645e193a38701b47650ae401a181a4094f7fca6da54991993c3c61b
MD5 433e819993d0d7fb51526418b376a4bd
BLAKE2b-256 b0fd68a75282525152ad333bd69e8e9f6224d56dd7db3ea36b7e2b6f5ab1728e

See more details on using hashes here.

File details

Details for the file BuildStream-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d764070aacb6ee4a6d3020c4b88d10fecd20e7f9b616095ce3a35f666dc12b50
MD5 cdb647ede6f02b444b94eb53df920c90
BLAKE2b-256 1d5a1550a24e571e734325d158f1832eecf54c0f093b493edabe0944d6376625

See more details on using hashes here.

File details

Details for the file BuildStream-2.0.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.0.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1c0f35256da883414d3735ab51cb51d8dd48ff577ebf448751b13ec7c99f0ef
MD5 6058dd98204ca0f231f8d6c8521c3b4f
BLAKE2b-256 0cb6c349731aba6f7cd5ac1a09d787bfcc096739302dc5ce0a5b3e6eea5df4d0

See more details on using hashes here.

File details

Details for the file BuildStream-2.0.0-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.0.0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c7a0210fb48a5f39651dd1a914055d200f0d855dbaca61b0a0899d56a627cc4
MD5 15d28d4f7f8f92cbe52a12d6884e5194
BLAKE2b-256 ab119091a85bdb3e761878f9609cb1a7d7e589abdc5e296167e0dab203279eee

See more details on using hashes here.

File details

Details for the file BuildStream-2.0.0-cp37-cp37m-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.0.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0515d4c586e288636221a717698637d64ceeba3af2de71dcda7b257961df0ecb
MD5 9d53341e325d3b09ed5e5659c0615000
BLAKE2b-256 8b6f6e729f4954550446d1758d63b6cebf657372581b80c23c2369bd1b0a4a12

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page