Skip to content

Release Process

This document outlines the process for creating and publishing new releases of AIMQ.

Version Numbering

We follow Semantic Versioning:

  • MAJOR version for incompatible API changes
  • MINOR version for new functionality in a backward compatible manner
  • PATCH version for backward compatible bug fixes

Release Checklist

  1. Update Version
  2. Update version in pyproject.toml
  3. Update CHANGELOG.md
  4. Commit changes: git commit -m "Bump version to X.Y.Z"

  5. Run Tests

    poetry run pytest
    poetry run pytest --cov=src
    

  6. Build Documentation

    poetry run mkdocs build
    

  7. Create Release Branch

    git checkout -b release/vX.Y.Z
    git push origin release/vX.Y.Z
    

  8. Create Pull Request

  9. Title: "Release vX.Y.Z"
  10. Include changelog in description
  11. Get required approvals

  12. Merge and Tag

    git checkout main
    git pull origin main
    git tag -a vX.Y.Z -m "Release vX.Y.Z"
    git push origin vX.Y.Z
    

  13. Build and Publish

    poetry build
    poetry publish
    

  14. Deploy Documentation

    poetry run mkdocs gh-deploy
    

Post-Release

  1. Update version to next development version in pyproject.toml
  2. Create new section in CHANGELOG.md for unreleased changes
  3. Announce release in appropriate channels

Hotfix Process

For critical bugs in production:

  1. Create hotfix branch from the release tag
  2. Fix the bug and update patch version
  3. Create PR back to both main and the release branch
  4. Follow steps 6-8 from the release checklist