-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Distribute buildstream Wheel packages that contain BuildBox #1712
Comments
ssssam
added a commit
to ssssam/buildstream
that referenced
this issue
Aug 3, 2022
This allows using [cibuildwheel](https://cibuildwheel.readthedocs.io) locally to produce various Wheel packages of BuildStream. These Wheel packages contain prebuilt binaries of Cython modules, so `pip3 install buildstream` on compatible systems does not require a C compiler and Python headers on the target machine. apache#1712
Steps for "first cut"
Additional tasks
Verification
|
ssssam
added a commit
to ssssam/buildstream
that referenced
this issue
Aug 3, 2022
This updates the CI config to: * build wheel packages on each update of 'master', which can be downloaded as Action artifacts * build sdist and wheel packages on each release tag, and upload them to Test PyPI at https://test.pypi.org/project/BuildStream/ The new workflows are based on examples at https://cibuildwheel.readthedocs.io/en/stable/setup/ and use some GitHub Actions to call the relevant commandline toling. apache#1712
3 tasks
Some progress on this in https://github.com/ssssam/buildstream/tree/sam/fat-wheels:
|
ssssam
added a commit
to ssssam/buildstream
that referenced
this issue
Aug 10, 2022
This allows using [cibuildwheel](https://cibuildwheel.readthedocs.io) locally to produce various Wheel packages of BuildStream. These Wheel packages contain prebuilt binaries of Cython modules, so `pip3 install buildstream` on compatible systems does not require a C compiler and Python headers on the target machine. apache#1712
ssssam
added a commit
to ssssam/buildstream
that referenced
this issue
Aug 12, 2022
This allows using [cibuildwheel](https://cibuildwheel.readthedocs.io) locally to produce various Wheel packages of BuildStream. These Wheel packages contain prebuilt binaries of Cython modules, so `pip3 install buildstream` on compatible systems does not require a C compiler and Python headers on the target machine. apache#1712
Note that this appears to be related to long standing epic #332 |
gtristan
pushed a commit
that referenced
this issue
Aug 17, 2022
BuildBox is not widely distributed in binary form yet. For convience, add a mechanism to bundle prebuilt binaries in the Python wheel packages. Setting BST_BUNDLE_BUILDBOX=1 when setup.py runs, causes the bundled binaries to be included in the binary package. Its up to the packager to make appropriate binaries available in `src/buildstream/subprojects/buildbox/`. BuildStream will search the package subprojects/ dir when looking for BuildBox binaries on the host in all cases, prioritizing any bundled binaries above other ones on the host. Related to #1712
gtristan
pushed a commit
that referenced
this issue
Aug 17, 2022
BuildBox is not widely distributed in binary form yet. For convience, add a mechanism to bundle prebuilt binaries in the Python wheel packages. Setting BST_BUNDLE_BUILDBOX=1 when setup.py runs, causes the bundled binaries to be included in the binary package. Its up to the packager to make appropriate binaries available in `src/buildstream/subprojects/buildbox/`. BuildStream will search the package subprojects/ dir when looking for BuildBox binaries on the host in all cases, prioritizing any bundled binaries above other ones on the host. Related to #1712
gtristan
pushed a commit
that referenced
this issue
Aug 23, 2022
BuildBox is not widely distributed in binary form yet. For convience, add a mechanism to bundle prebuilt binaries in the Python wheel packages. Setting BST_BUNDLE_BUILDBOX=1 when setup.py runs, causes the bundled binaries to be included in the binary package. Its up to the packager to make appropriate binaries available in `src/buildstream/subprojects/buildbox/`. BuildStream will search the package subprojects/ dir when looking for BuildBox binaries on the host in all cases, prioritizing any bundled binaries above other ones on the host. Related to #1712
gtristan
pushed a commit
that referenced
this issue
Aug 23, 2022
BuildBox is not widely distributed in binary form yet. For convience, add a mechanism to bundle prebuilt binaries in the Python wheel packages. Setting BST_BUNDLE_BUILDBOX=1 when setup.py runs, causes the bundled binaries to be included in the binary package. Its up to the packager to make appropriate binaries available in `src/buildstream/subprojects/buildbox/`. BuildStream will search the package subprojects/ dir when looking for BuildBox binaries on the host in all cases, prioritizing any bundled binaries above other ones on the host. Related to #1712
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Intro
Bst2 is available in PyPI, but only as a source distribution. Many packages on PyPI can be installed simply with
pip3 install $package
. Installing BuildStream is not so simple:cc
orgcc
must be available, along with CPython headers and libraries, so Cython modules can be compiled to binariesThe Python Wheel format can be used to bundle and distribute binaries for our target platforms. When you run
pip3 install buildstream
and a suitablebuildstream-*.whl
is available on PyPI, the install should work even in a 'stock' container image:Goals
The goal is a way to install BuildStream 2 in a single command on a wide range of machines, assuming:
Non goals:
What about Docker?
The Bst 1.6 install instructions recommend running in Docker via bst-here. The Bst 1.9.95 install instructions also link to the buildstream-docker-images instructions. (At time of writing the buildstream.build website doesn't mention Docker directly).
Provisioning Bst via a container image is sensible for many situations and we will always ensure it is possible. Recommending it as the best way to use BuildStream is more nuanced.
Advantages of recommending users obtain Bst via Docker:
Disadvantages of recommending users obtain Bst via Docker:
bst
look like a 'heavyweight' toolThe text was updated successfully, but these errors were encountered: