This document describes how to cut a new release of aio-lib-sandbox (Python).
Ensure your working tree is clean and you are on the main branch with the latest changes pulled:
git checkout main && git pullActivate the virtual environment (needed to run tests and hatch):
source .venv/bin/activateIf you haven't set up the virtual environment yet:
python3.12 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pip install hatch-
Run the tests to confirm everything is green before starting:
pytest
-
Bump the version using
hatch:Or set a specific version directly:
hatch version 0.1.0a1
This edits
src/aio_lib_sandbox/__init__.pyin place becausepyproject.tomluses Hatch's dynamic version path. Verify the new version withhatch version. -
Do a dry-run build to catch any packaging issues before committing:
hatch build
Inspect the output in
dist/to make sure the wheel and sdist look correct. -
Commit and tag the version bump:
git add src/aio_lib_sandbox/__init__.py git commit -m "$(hatch version)" git tag "$(hatch version)"
-
Push the commit and tag to
main:git push origin main git push origin "$(hatch version)" -
CI publishes to PyPI automatically. The
on-push-publish-to-pypiworkflow triggers becausesrc/aio_lib_sandbox/__init__.pychanged onmain. Monitor progress in the Actions tab. -
Verify the release appeared on PyPI:
https://pypi.org/project/aio-lib-sandbox/And confirm the new version is installable:
pip install --pre aio-lib-sandbox==<new-version>
-
Create a GitHub Release from the new tag on the Releases page. Summarise what changed in the release notes.
- This package is in alpha. All versions use a PEP 440 pre-release suffix (e.g.
0.1.0a0). This meanspip install aio-lib-sandboxwill not pick up the package by default — users must pass--pre. Keep thea0/a1suffix until the API is stable.