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.

Running BuildStream on macOS or Windows may work under Docker Desktop, WSL, or Podman Desktop, but it is not officially supported, and CI runs tests only on Linux.

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.7.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.7.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.7.0-cp314-cp314t-manylinux_2_28_x86_64.whl (32.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

buildstream-2.7.0-cp314-cp314-manylinux_2_28_x86_64.whl (31.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

buildstream-2.7.0-cp313-cp313-manylinux_2_28_x86_64.whl (31.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

buildstream-2.7.0-cp312-cp312-manylinux_2_28_x86_64.whl (31.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

buildstream-2.7.0-cp311-cp311-manylinux_2_28_x86_64.whl (32.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

buildstream-2.7.0-cp310-cp310-manylinux_2_28_x86_64.whl (31.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

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

File metadata

  • Download URL: buildstream-2.7.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.7.0.tar.gz
Algorithm Hash digest
SHA256 c59a5c781622647b9118ffcea1cd6b0da2f7798be501edfe37d209f8f6aad502
MD5 906408985aaad8bb0cc6758d0c4446a3
BLAKE2b-256 f612382c7f193fd1e219f0f6b621d6c30f5cc6b90aae00cbc93d16446698644d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildstream-2.7.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3bfd2072a9e4388c910c0ccdb5a390fb42f9661b7cf84e14fa95da4b445a4ff8
MD5 278983de998ea5d9b8ce06a74452a972
BLAKE2b-256 16161dbd52c92653b0ad99e6c9a60b9e7d6d7a3ecec7ebebd265dc426890d281

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildstream-2.7.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d4a06507ba4bb635f9f78bbc10f231f78dd664ed816eb6aa45f3e9e1d4a784b8
MD5 7571a8d755e6f1b054b57f97c8f9c882
BLAKE2b-256 29817c0b6867b1d70a156656c66bb56f14eed31692fc4683971b88b43bc71687

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildstream-2.7.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b166d9ffb535e0e933030fd3528e007c2b67321814cfdb15066a28af8dabb6e
MD5 997b7feb53f36800a8d148883267ecf8
BLAKE2b-256 9146e042968725a83631bee075c30fe21baf29106b992850f2e4728130f42e4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildstream-2.7.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7fe6c9ef6585a691f7c9fbbd971c0508608cdbf2db5a2e8cfba86f7d451938d8
MD5 2146406b04199e1430b2b4d84d7e2ff2
BLAKE2b-256 101a891b1a7eb328e94e1d6604d40e523db37b20d2883603097d9b1698968bc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildstream-2.7.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec4c4f954e2016f549b8481209596e3522c96094227699216273885839139fdc
MD5 41bdfded3a30b779e7130398d03574f6
BLAKE2b-256 0d63583d847ef0bb919b21cdc34ccc775e858af16d86e2da955fe20791067d47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildstream-2.7.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6874e99c427ff37bcbd956bf901ea4dcd1f28d50285086799605f56e6ef51c5e
MD5 d88a6dc2895c41e8d63ef0ca3b60275a
BLAKE2b-256 b1a6d230d850c39979e4e67994fddf7ca3692f6d0b78a05d7ddbd9a45f18b244

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