Building
A python release consists of publishing the release to PyPi https://pypi.org/project/meshtastic/ as well as producing single-executable files that are downloadable from Github https://github.com/meshtastic/Meshtastic-python/releases.
Pre-requisites
No pre-requisites are needed locally to make a release. All builds are done via Github Actions currently.
To test/validate, you will need to run:
pip3 install poetry
poetry install
Note: we now use the poetry package manager for building meshtastic. If you were familar with our older 'venv' base instructions you can still access that mechanism by running "poetry shell" to open a shell with the (automatically maintained) virtual environment activated.
This can be handy if you want to run the "meshtastic" command without installing the package globally.
Instructions
-
Update protobufs by running the "Update protobufs" workflow in Actions: https://github.com/meshtastic/Meshtastic-python/actions/workflows/update_protobufs.yml
-
run the "smoke1" test (optional):
connect one device to the serial port and run:
poetry run pytest -m smoke1
-
run unit tests:
poetry run pytest
(optional) -
run bin/test-release.sh (optional)
-
Run the "Make Release" workflow in Actions: https://github.com/meshtastic/Meshtastic-python/actions/workflows/release.yml
-
After the "Make Release" is done, go into Releases: https://github.com/meshtastic/Meshtastic-python/releases There should be a draft. Add the title, update the "What's Changed" (Tip: Click on the "Auto-generate release notes" button.). Uncheck the "This is a pre-release" (if applicable).
You need permissions in the GitHub project to make a build
Instructions - automated
- Go to Actions / Make Release / Run Workflow https://github.com/meshtastic/Meshtastic-gui-installer/actions/workflows/release.yml
- Draft & Publish release https://github.com/meshtastic/Meshtastic-gui-installer/releases