Skip to main content

Release Process

Version Management

The single source of truth for the application version is version.json at the repository root. This version is consumed by:

  • .NET projects via Directory.Build.props
  • GitHub Release workflow for tag validation

Release Checklist

1. Prepare the Release

  1. Ensure all features for the release are merged to master
  2. Verify CI/CD pipeline is green on master
  3. Update CHANGELOG.md:
    • Move items from [Unreleased] to a new version section
    • Add the release date
    • Categorize changes: Added, Changed, Deprecated, Removed, Fixed, Security

2. Bump the Version

  1. Update version.json with the new version number:
    {
    "version": "1.1.0"
    }
  2. Commit: git commit -m "chore: bump version to 1.1.0"
  3. Push to master

3. Create the Release

  1. Tag the commit:
    git tag v1.1.0
    git push origin v1.1.0
  2. The release.yml workflow will automatically:
    • Validate the tag matches version.json
    • Extract release notes from CHANGELOG.md
    • Create a GitHub Release

4. Post-Release

  1. Verify the GitHub Release was created correctly
  2. Verify production deployment completed via CI/CD
  3. Run smoke tests against production
  4. Announce the release to stakeholders

Versioning Scheme

We follow Semantic Versioning:

Change TypeVersion BumpExample
Breaking API changesMajor (X.0.0)Removing an endpoint
New features (backward-compatible)Minor (0.X.0)Adding a new endpoint
Bug fixesPatch (0.0.X)Fixing a calculation

Pre-releases

For release candidates, use pre-release tags:

git tag v1.1.0-rc.1

These will be marked as pre-releases on GitHub automatically.