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

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.1.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.1-cp311-cp311-manylinux_2_28_x86_64.whl (19.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

BuildStream-2.0.1-cp310-cp310-manylinux_2_28_x86_64.whl (19.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

BuildStream-2.0.1-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.1-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.1-cp37-cp37m-manylinux_2_28_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.28+ x86-64

File details

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

File metadata

  • Download URL: BuildStream-2.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 fbbf34b3fa2511548557e0d08ed1a02bcae1de5b67e22ddee0eefe7872f1b8f1
MD5 88e35a88dc59eed33f4f443402fd6c39
BLAKE2b-256 1d7af4b055c219ad61dfa032e7862aa48f161d7438c785a9da03f8f88e74adf7

See more details on using hashes here.

File details

Details for the file BuildStream-2.0.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for BuildStream-2.0.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4c578a40f9360546e38fa020ef8137ae174cf404f68264023c0c8c4ab1d8e04c
MD5 f7b176cb9d2227335e7ba74e2154fdca
BLAKE2b-256 a2775abdd0a86116a4e2f02f4282206ba38a3ec48ae1d405dcd0191eec6df6b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for BuildStream-2.0.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 60c1c48ec9f2767262260e5ec9dd1c76564e582126b0904631aa7e0e03e26cce
MD5 ed2efe950e1bb610de023f363cbe89cd
BLAKE2b-256 ac5a028303e1d0497640d562f5e2c3d971a77a017825577d2e51f2dbfab80dab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for BuildStream-2.0.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 299c40d62ca6b970c9d22d10b9edc7de0989fc7aa3d345fdcb79c845d3d7828c
MD5 cd626762a5750272a7baf92c8ed91454
BLAKE2b-256 4e92f0baa3b444520b70a7524adb705830af0d0136d6895c0fd8f08a436e5eec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for BuildStream-2.0.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c88473c7a506c9ec8e6d19cbefe3ff29a2d2b2e3bc16832ab87b817914bd0afb
MD5 4344655c9be46ac2ca9abecf3f555ccf
BLAKE2b-256 09f4513917817dc32db02d3caa9f29c1239ab48d7d3d4a3b3c8408711fae3954

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for BuildStream-2.0.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c87f940de4e2a34fb97d6fdf7f809f045436bf2f6869df536254f3f32543a90b
MD5 d5c3abaadff51602aeb881a4927a7b2b
BLAKE2b-256 682d249f7cb78849f702e1a98370ceb379e5661de3fe66e2be73a35e7bbbaf88

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