Skip to content

Release process

Rico Haeuselmann edited this page Dec 1, 2022 · 8 revisions

GridTools doesn't have a fixed release cycle, but will release important patches and new features as they become available. GridTools uses semantic versioning. All functionality which is described in the documentation can be considered public API. The gridtools/common folder is not API.

Release

The following describes the steps for making a GridTools major or minor release, patch releases are described afterwards.

  1. Ensure that documentation is up-to-date and fix if needed.
  2. Write release notes (if the gate-keeper did a good job, they items can be taken from the commit messages).
  3. Check if the CMake version number matches the planned release version and update if necessary.
  4. Compile the documentation and update the github-pages with the new documentation.
  5. Create the release on Github targeting the current master.
  6. Branch from the current master and push a branch release_vX.Y from which patch versions can be released.
  7. (until implemented in CI) Release the python package on PyPI from the release branch.
    cd .python_package
    pip install nox twine
    nox -s clean build
    twine upload dist/*  # use the gridtools user credentials for PyPI
  8. Update the CMake version number in the master branch to the next minor release.

Patch release

The following describes the steps for making a patch release.

  1. Cherry-pick a bugfix to the branch branch_vX.Y from which a patch release should be made.
  2. Update CMake version number in the branch.
  3. Write short release notes.
  4. Create the release on Github targeting the current branch.
  5. (until implemented in CI) Release the python package on PyPI from the release branch. Same steps as above.
Clone this wiki locally