This checklist helps ensure a smooth release process for new versions of the Compliant LLM package.
- Update version number in
pyproject.toml - Update
CHANGELOG.mdwith all notable changes - Ensure all tests pass locally:
pytest - Check code quality with linters:
flake8,black,mypy - Verify all documentation is up to date
- Make sure all CI checks pass on the main branch
-
Build the package locally:
uv pip install build python -m build
-
Test installation from local build:
uv pip install dist/compliant-llm-X.Y.Z-py3-none-any.whl
-
Verify the installed package works as expected
- Commit all changes:
git commit -m "Prepare release vX.Y.Z" - Tag the release:
git tag -a vX.Y.Z -m "Release vX.Y.Z" - Push changes and tag:
git push origin main && git push origin vX.Y.Z
- Go to GitHub Releases page
- Create a new release using the tag
- Copy relevant section from CHANGELOG.md to the release notes
- Mark as pre-release if applicable
- Publish release (this will trigger the GitHub Actions workflow)
-
Check GitHub Actions workflow completed successfully
-
Verify package is available on TestPyPI (for pre-releases)
-
Verify package is available on PyPI (for full releases)
-
Test installation from PyPI:
uv pip install compliant-llm==X.Y.Z
- Update version in
pyproject.tomlto next development version (X.Y.Z-dev) - Announce the release to relevant channels (if applicable)
- Close related issues and milestones in GitHub
- Review and address any feedback from early adopters
To enable automated publishing to PyPI, add these secrets to your GitHub repository:
- Go to your GitHub repository → Settings → Secrets and variables → Actions
- Add the following secrets:
PYPI_USERNAME: Your PyPI usernamePYPI_PASSWORD: Your PyPI password or token (preferred)TEST_PYPI_USERNAME: Your TestPyPI usernameTEST_PYPI_PASSWORD: Your TestPyPI password or token (preferred)