Release process#

Automatic Release#

As of icclim 6.6.0, a github action (.github/workflows/publish-to-pypi.yml) publishes icclim to pypi whenever a (github release)[cerfacs-globc/icclim] is published. This github action requires a manual approuval. A dedicated release github environment has been created to manage the permission for this github action.

Then an automatic process on conda-forge pick the new release from pypi, create a pull request on icclim-feedstock and wait for our review and approval to publish the release to conda-forge.

Hence, the process is as follow:

  1. Merge everything on icclim master branch

  2. Create a (github release)[cerfacs-globc/icclim]

  3. Wait for the github action to build the package

  4. Approve the github action to release to pypi

  5. Wait for conda-forge to create a PR on icclim-feedstock

  6. Edit and approve PR on icclim-feedstock

Manual release (outdated)#

The Automatic approach

  1. Make sure all tests pass.

  2. Create and checkout a release branch.

  3. Update version number of icclim in src/icclim/

  4. Update release notes in doc/source/references/release_notes.rst.

  5. Merge release branch to master with a PR.

  6. Clean dist directory content.

  7. Create wheel file on master and source archive.

    python3 -m build
  8. Upload to pypi.

    flit publish
  9. Update conda-forge feedstock at conda-forge/icclim-feedstock

    The recipe recipe/meta.yml must be updated:
    • Fork the repository in with your own account.

    • Update icclim version number at the top.

    • Update source.sha256 value with the tar.gz sha256.

      You can get the tar.gz hash from pypi using view hashes link.

    • Add any new dependency in requirements.

    • Create a pull request with these changes, targeting the main fork on main branch

    • Wait for the CI feedback and correct things if needed.

    • Merge the pull request

  10. Update icclim github release
    • You should add a tag similar to the new version number.

    • You should enter a short description of the changes, with a highlight on breaking changes.

    • There is no need to fill the assets with anything as the release assets are already on conda-forge and pypi.