Skip to main content

A framework for modelling build pipelines in YAML

Project description

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

What is BuildStream?

BuildStream is a powerful software integration tool that allows developers to automate the integration of software components including operating systems, and to streamline the software development and production process.

Some key capabilities of BuildStream include:

  • Defining software stacks in a declarative format: BuildStream allows users to define the steps required to build and integrate software components, including fetching source code and building dependencies.

  • Integrating with version control systems: BuildStream can be configured to fetch source code from popular source code management solutions such as GitLab, GitHub, BitBucket as well as a range of non-git technologies.

  • Supporting a wide range of build technologies: BuildStream supports a wide range of technologies, including key programming languages like C, C++, Python, Rust and Java, as well as many build tools including Make, CMake, Meson, distutils, pip and others.

  • Ability to create outputs in a range of formats: e.g. debian packages, flatpak runtimes, sysroots, system images, for multiple platforms and chipsets.

  • Flexible architecture: BuildStream is designed to be flexible and extensible, allowing users to customize their build and integration processes to meet their specific needs and tooling.

  • Enabling fast and reliable software delivery: By extensibly use of sandboxing techniques and by its capability to distribute the build, BuildStream helps teams deliver high-quality software faster.

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

This version

2.6.0

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.6.0.tar.gz (2.4 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.6.0-cp314-cp314t-manylinux_2_28_x86_64.whl (29.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

buildstream-2.6.0-cp314-cp314-manylinux_2_28_x86_64.whl (29.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

buildstream-2.6.0-cp313-cp313-manylinux_2_28_x86_64.whl (29.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

buildstream-2.6.0-cp312-cp312-manylinux_2_28_x86_64.whl (29.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

buildstream-2.6.0-cp311-cp311-manylinux_2_28_x86_64.whl (29.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

buildstream-2.6.0-cp310-cp310-manylinux_2_28_x86_64.whl (29.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

buildstream-2.6.0-cp39-cp39-manylinux_2_28_x86_64.whl (29.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

File details

Details for the file buildstream-2.6.0.tar.gz.

File metadata

  • Download URL: buildstream-2.6.0.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for buildstream-2.6.0.tar.gz
Algorithm Hash digest
SHA256 d6f835bab11dda88a3f213441768b1566e21a6c658913f0f0488fcf01a5c23bf
MD5 7aa02d35e784247dd47e65657d8fbcbf
BLAKE2b-256 7b888b445d272ecb7367e5da4f0d8f41bae87517361098d4f712fb427e04af87

See more details on using hashes here.

File details

Details for the file buildstream-2.6.0-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildstream-2.6.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87eefa3a7b781f5e4420470095528ebc92a7428881dae9eb5308eb003992026e
MD5 6d6f3ce326c5e7ee91c96cfb137616ac
BLAKE2b-256 8bbe3ce345be79c8c7d8713cd208e20909a7188c6cbc81e6bf30c99899b3ccd2

See more details on using hashes here.

File details

Details for the file buildstream-2.6.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildstream-2.6.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d95bb3f2d36a6b2860c987bd5cb328779c5331c142404800f42468c838f5f042
MD5 57874b3f01e50e92a317539b6ddbfe1f
BLAKE2b-256 7d6ae891fcb754f0db250204c1902602541a9927c00c91d2b203daf22af4c1b7

See more details on using hashes here.

File details

Details for the file buildstream-2.6.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildstream-2.6.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2f440f7c0d1280d65941348ea465cd35da9c22b1b0ea2c18e7aa26c0f0f85ea1
MD5 9e6859f0c829ba8c079915641d10db38
BLAKE2b-256 0062d693a4d984b365516d2b33a44089bb2313c64b98b20b84ef71bd04f0381d

See more details on using hashes here.

File details

Details for the file buildstream-2.6.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildstream-2.6.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a512c092af96d3a116b18eb682bac23c24cd7813b8150fce32df24555d34966
MD5 86abaa961995106f020f0c439ce657f6
BLAKE2b-256 3695f995f3c437cc960167c0751b9542d442986da0f002f48df6154f57e7170f

See more details on using hashes here.

File details

Details for the file buildstream-2.6.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildstream-2.6.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dda01e49b49ddffc998b6955a9be0f221671d6a284aa991f33a407132de9670c
MD5 e5c32457cde0fc6f7a46a60129054da5
BLAKE2b-256 14677e9c41a4b78a5b262e9e238d5512f2bcd13949ea10ee061309019d4124f9

See more details on using hashes here.

File details

Details for the file buildstream-2.6.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildstream-2.6.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b8ba81d6ac9a7cb8f849be13736178c805b22d0a9ca169a509f644e424dd160e
MD5 6ccf4339b5a08b69b01d166dfe9a0af6
BLAKE2b-256 6a26162bb039a7f23a51b03e2c9408033c92e1e2ec986fcea36a2a3c1fd4595d

See more details on using hashes here.

File details

Details for the file buildstream-2.6.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildstream-2.6.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1386af40d1c01ee4ce7561a88c2d351050eaa16abc6e334ebab08fb4bc1690b7
MD5 f3e522cc1774e3e39eace3c040e4486d
BLAKE2b-256 db304f106e7af0fb4c2c0312dea428336602da8059012aec06822c03d1bd8599

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