CircuitPython library build tools
Project description
Adafruit CircuitPython Build Tools
This repo contains build scripts used to build the Adafruit CircuitPython bundle, CircuitPython Community bundle and individual library release zips. Its focused on Github Actions support but will also work locally when a gcc compiler is present.
The scripts will either fetch a pre-built mpy-cross from s3 or automatically clone the CircuitPython repo and attempt to build mpy-cross. You'll need some version of gcc for this to work.
Setting up libraries
These build tools automatically build .mpy files and zip them up for
CircuitPython when a new tagged release is created. To add support to a repo
you need to use the CircuitPython
cookiecutter
to generate .github/workflows/*.yml.
The bundle build will produce one zip file for every major CircuitPython
release supported containing compatible mpy files and a zip with human readable py files.
It'll also "release" a z-build_tools_version-x.x.x.ignore file that will be
used to determine when a library needs new release files because the build tools
themselves changed, such as when a new major CircuitPython release happens.
Building libraries locally
To build libraries built with the build tools you'll need to install the circuitpython-build-tools package.
python3 -m venv .env
source .env/bin/activate
pip install circuitpython-build-tools
circuitpython-build-bundles --filename_prefix <output file prefix> --library_location .
When making changes to circuitpython-build-tools itself, you can test your changes
locally like so:
cd circuitpython-build-tools # this will be specific to your storage location
python3 -m venv .env
source .env/bin/activate
pip install -e . # '-e' is pip's "development" install feature
circuitpython-build-bundles --filename_prefix <output file prefix> --library_location <library location> --library_depth 2
Contributing
Contributions are welcome! Please read our [Code of Conduct] (https://github.com/adafruit/Adafruit\_CircuitPython\_adabot/blob/master/CODE\_OF\_CONDUCT.md) before contributing to help this project stay welcoming.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file circuitpython_build_tools-1.20.0.tar.gz.
File metadata
- Download URL: circuitpython_build_tools-1.20.0.tar.gz
- Upload date:
- Size: 18.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0bb3646d24de183db0e8baa0b24b1902217ed14d21add1d2b4920dff3669120
|
|
| MD5 |
8c6de8ada17d9952ae183785ec0265c7
|
|
| BLAKE2b-256 |
f5566f8fad615a3787990825f222aa6b5622b56cd8be5ce4e0a400be80f2b01d
|
Provenance
The following attestation bundles were made for circuitpython_build_tools-1.20.0.tar.gz:
Publisher:
release.yml on adafruit/circuitpython-build-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
circuitpython_build_tools-1.20.0.tar.gz -
Subject digest:
f0bb3646d24de183db0e8baa0b24b1902217ed14d21add1d2b4920dff3669120 - Sigstore transparency entry: 1009328284
- Sigstore integration time:
-
Permalink:
adafruit/circuitpython-build-tools@84efe1da994b8210beee1c23efb98a6b3320a3ae -
Branch / Tag:
refs/tags/1.20.0 - Owner: https://github.com/adafruit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@84efe1da994b8210beee1c23efb98a6b3320a3ae -
Trigger Event:
release
-
Statement type:
File details
Details for the file circuitpython_build_tools-1.20.0-py3-none-any.whl.
File metadata
- Download URL: circuitpython_build_tools-1.20.0-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94b1d3df96b2f1f83c4782f79b01cae98c69640025565452de9744a2127a4ca0
|
|
| MD5 |
233bd191ef545a123a3a3cd97aa8207b
|
|
| BLAKE2b-256 |
85fbaa95a5ac5cb6f22f75fe1b0d6dffd87f52559e2aeb769f74fd2854ad6ca8
|
Provenance
The following attestation bundles were made for circuitpython_build_tools-1.20.0-py3-none-any.whl:
Publisher:
release.yml on adafruit/circuitpython-build-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
circuitpython_build_tools-1.20.0-py3-none-any.whl -
Subject digest:
94b1d3df96b2f1f83c4782f79b01cae98c69640025565452de9744a2127a4ca0 - Sigstore transparency entry: 1009328289
- Sigstore integration time:
-
Permalink:
adafruit/circuitpython-build-tools@84efe1da994b8210beee1c23efb98a6b3320a3ae -
Branch / Tag:
refs/tags/1.20.0 - Owner: https://github.com/adafruit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@84efe1da994b8210beee1c23efb98a6b3320a3ae -
Trigger Event:
release
-
Statement type: