Development getting started ¶
- Open in VS Code
- Rebuild and Reopen in Container
- Run
hashfields -hin the devcontainer, review the usage notes
Run the tests ¶
Use the Testing window in VS Code.
Package an executable ¶
The app is packaged as a standalone, self-contained executable with pyinstaller.
Docker ¶
Package a version of hashfields for a Linux-based Docker container:
docker compose build dist
Now run dist just like you would hashfields:
$ docker compose run dist -v
hashfields <version>
Local ¶
Or package the app for your current system:
pip install -e .[dist]
pyinstaller --onefile pyinstaller_entrypoint.py --name hashfields
The resulting executable is located at ./dist/hashfields:
$ ./dist/hashfields -v
hashfields <version>
Make a release ¶
Releases run automatically with GitHub Actions.
Push a tag ¶
The release process starts by pushing a calver version
tag of the form YYYY.0M.N where:
YYYYis the 4 digit year0Mis the 0-prefixed month, e.g. 01 for January, 10 for OctoberNis the 1-based release number for the given month, incremented with each release that year and month
Pushing a new tag runs the release.yml
workflow.
A new GitHub Release is created automatically, with pre-build binaries for each platform attached as Release Assets. Edit the release notes as-needed.
Publish to PyPI ¶
When a new release is published from the workflow above, the
pypi.yaml runs to publish the new package to
PyPI.