Releases

The project uses Calendar Versioning (CalVer).

Version format:

YY.MM.PATCH

Examples:

  • 26.5.0

  • 26.5.1

Development Releases

Development releases use the same format with a .devN suffix:

  • 26.5.0.dev1

  • 26.5.0.dev2

Version Source

The project uses dynamic versioning through Git tags.

The package version is derived directly from the release tag during the build process.

Examples:

  • Git tag v26.5.0 produces package version 26.5.0

  • Git tag v26.5.0.dev1 produces package version 26.5.0.dev1

Version values are not manually updated in pyproject.toml.

Creating a Release

All releases are created through the Create Release GitHub Actions workflow.

Development prerelease example:

v26.5.0.dev1

Production release example:

v26.5.0

To create a release:

  1. Open the GitHub Actions tab.

  2. Run the Create Release workflow.

  3. Enter the desired release tag.

  4. Wait for validation, tests, build, and smoke tests to complete.

  5. Review the generated draft GitHub release.

  6. Publish the GitHub release.

Publishing the GitHub release automatically triggers the PyPI publish workflow.

Once the publish workflow completes successfully, the release becomes available on PyPI:

The published package version is derived directly from the Git tag used during the release workflow.