Release Guidelines#

Versioning#

CHORAS uses the Semantic Versioning scheme. This means that version numbers are of the form MAJOR.MINOR.PATCH.

In short, this means the following:

  • MAJOR version when you make incompatible API changes

  • MINOR version when you add functionality in a backward compatible manner

  • PATCH version when you make backward compatible bug fixes

If unsure, please refer to the Semantic Versioning documentation for details.

PRs falling into the PATCH category are made against the main branch (and consequently need a branch off main), while MINOR and MAJOR changes are made against the develop branch (and consequently need a branch off develop). Note that PRs that only change documentation or examples are considered PATCH changes. Updates to the CI configuration or similar infrastructure which do not affect the API are not considered for version increments.

Updating the combined CHORAS version#

Whenever one or more components (frontend-v2, backend, simulation-backend) have a new tagged release that should become part of the next validated CHORAS combination, update their submodule pointer(s) in the CHORAS umbrella repo and bump the combined CHORAS version:

  1. Check out each updated submodule at its new tag (repeat for every submodule that changed — for simulation-backend, use its own whole-repo tag, not an individual simulation method’s scoped tag):

    $ git -C <submodule> checkout vX.Y.Z
    $ git add <submodule>
    
  2. Commit and tag the umbrella repo:

    $ git commit -m "Bump CHORAS version: update <submodule>(s) to vX.Y.Z"
    $ git tag vA.B.C
    
  3. Push:

    $ git push --follow-tags