Development getting started ¶
- Open in VS Code
- Rebuild and Reopen in Container
- Run
hashfields -h
in 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:
YYYY
is the 4 digit year0M
is the 0-prefixed month, e.g. 01 for January, 10 for OctoberN
is 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.