A framework for modelling build pipelines in YAML
Project description
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
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
Built Distributions
Hashes for BuildStream-2.0.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c578a40f9360546e38fa020ef8137ae174cf404f68264023c0c8c4ab1d8e04c |
|
MD5 | f7b176cb9d2227335e7ba74e2154fdca |
|
BLAKE2b-256 | a2775abdd0a86116a4e2f02f4282206ba38a3ec48ae1d405dcd0191eec6df6b9 |
Hashes for BuildStream-2.0.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60c1c48ec9f2767262260e5ec9dd1c76564e582126b0904631aa7e0e03e26cce |
|
MD5 | ed2efe950e1bb610de023f363cbe89cd |
|
BLAKE2b-256 | ac5a028303e1d0497640d562f5e2c3d971a77a017825577d2e51f2dbfab80dab |
Hashes for BuildStream-2.0.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 299c40d62ca6b970c9d22d10b9edc7de0989fc7aa3d345fdcb79c845d3d7828c |
|
MD5 | cd626762a5750272a7baf92c8ed91454 |
|
BLAKE2b-256 | 4e92f0baa3b444520b70a7524adb705830af0d0136d6895c0fd8f08a436e5eec |
Hashes for BuildStream-2.0.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c88473c7a506c9ec8e6d19cbefe3ff29a2d2b2e3bc16832ab87b817914bd0afb |
|
MD5 | 4344655c9be46ac2ca9abecf3f555ccf |
|
BLAKE2b-256 | 09f4513917817dc32db02d3caa9f29c1239ab48d7d3d4a3b3c8408711fae3954 |
Hashes for BuildStream-2.0.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c87f940de4e2a34fb97d6fdf7f809f045436bf2f6869df536254f3f32543a90b |
|
MD5 | d5c3abaadff51602aeb881a4927a7b2b |
|
BLAKE2b-256 | 682d249f7cb78849f702e1a98370ceb379e5661de3fe66e2be73a35e7bbbaf88 |