Skip to content

Release Procedures

Michael Joyce edited this page Jul 26, 2023 · 9 revisions

Propose Release

A release candidate should be created after the community has determined that a release should occur. These steps should be followed when generating a release candidate and when completing the release.

Update Version Numbers

The version number of the release should be known at the point of release since it will have been discussed on the lists prior to the release process. However, AIT adheres to Semantic Versioning whenever possible. Review changes carefully and determine what version number increments are needed for the current release.

Append -rc#, where # indicates the current release candidate number starting at 1, when creating a release candidate.

Version Number Change Locations

AIT Core

  • pyproject.toml - Core package version number
  • doc/source/conf.py - Documentation package version numbers

AIT GUI

  • pyproject.toml - GUI package version number. It's very likely that a GUI release will coincide with a Core release so be sure to increment both if necessary.
  • doc/source/conf.py - Documentation package version numbers
  • ait/gui/static/package.json - GUI package version number

Update Changelog

CHANGELOG.md should be updated with changes since the previous release. Use of auto-changelog is recommended and example calls that should be used are below. Otherwise, manually generating the updates is acceptable.

AIT Core

> auto-changelog --output CHANGELOG.md --template keepachangelog --commit-limit false --starting-version 1.0.0 --latest-version 2.0.0 --append-git-log "--after 28-04-2018" 

AIT GUI

> auto-changelog --output CHANGELOG.md --template keepachangelog --commit-limit false --starting-version 1.0.0 --latest-version 2.0.0 --append-git-log "--after 28-04-2018" 

Note, the --append-git-log passes the text to git log during generation of the change log. This filters out any commits before 04/28/2018 when the last pre-1.0.0 release was tagged. This generally helps us avoid referencing ticket numbers prior to the code existing on Github. It might not avoid all problems but hopefully most users aren't interested in changelogs that old anyway.

Build Artifacts

AIT GUI

GUI static files require NPM dependencies to be installed. From the root directory of AIT GUI:

> cd ait/gui/static
> npm run build

Commit Changes

Commit all changes made related to the release. At the minimum the commit message should include Preparation for <version> release

Tag Release

Tag the appropriate version and push to Github

> git tag <version>
> git push --tags

Push to master

Use the git diff command to ensure that the changes to be pushed are just the changes outlined above for the release.

> git checkout master
> git diff --stat --cached origin/master

Then push to master.

> git push origin master

Email Lists

Email the lists regarding the release availability. If this is a release candidate notify the list of availability and propose a vote for release.

Release Candidate Example

TODO

Nominal Release Example

TODO