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

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.3.0.tar.gz (2.3 MB view details)

Uploaded Source

Built Distributions

BuildStream-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (22.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.28+ x86-64

BuildStream-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (22.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.28+ x86-64

BuildStream-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (22.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.28+ x86-64

BuildStream-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (22.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.28+ x86-64

BuildStream-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (22.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.28+ x86-64

File details

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

File metadata

  • Download URL: buildstream-2.3.0.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.10

File hashes

Hashes for buildstream-2.3.0.tar.gz
Algorithm Hash digest
SHA256 9427482a1c09582aa75d38584666b8f12d3a6e1a7a370072306497fe72c13932
MD5 bc9dcae4444920158a36568f70fcf2fd
BLAKE2b-256 78696fc58a5c54b216ffef2a60f4eeac10b2e7f3fff3679a10592f1bc8d0f6cd

See more details on using hashes here.

File details

Details for the file BuildStream-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b54365064e69e206c15f40ab9da8a8ea90153d1018738aec320f9853a3ef8b1a
MD5 661875ebc07f68e5dafe01a9c26170ee
BLAKE2b-256 9eeca4d18269d05c332c138488ebc4af49c6700f178495ad626b32942b1e2f9c

See more details on using hashes here.

File details

Details for the file BuildStream-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 268b501afc496769a12722788b16a8539f46f3701f2fdf57559905f6d57497e9
MD5 f20d3db5f1645a0308074a6f1229dcc0
BLAKE2b-256 63861577051d09f0daf47fc65f9ce66950e89b5610e37f38d05a334bcc0228f8

See more details on using hashes here.

File details

Details for the file BuildStream-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2acd46751ad982ceabbad0bcc0a2a96ffd757261e1ca77513d0b26c638e458d7
MD5 e46385a0a104d123301a3ac35ef90c37
BLAKE2b-256 dbea362f93260b9c56ceadb782378dec6812084bc21734734178b1a0bfcdec9f

See more details on using hashes here.

File details

Details for the file BuildStream-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ddce626eb7f44c2abb3557de389493b622009a1ca887710e547676b89e563d4
MD5 de0e87fd90e12cfd795b2bf5d704f1a9
BLAKE2b-256 19ad13f9c32f552a8f4fa53c38e53ee732cae4be426581427248045f20163d07

See more details on using hashes here.

File details

Details for the file BuildStream-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 57865d8f6c9604d0f088e1579b69c44804346b321fc8131fff3377e449ed5d4c
MD5 84b74a1397cf34d69fe19fb694766ddb
BLAKE2b-256 bed342bcb618aa0dacaebdd5d9c3a37aa9f43110b150693f87a1a2733d278e24

See more details on using hashes here.

Supported by

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