Release process#

  1. Make sure all tests pass.

  2. Create and checkout a release branch.

  3. Update version number of ICCLIM_VERSION in icclim/models/constants.py and in setup.py.

  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.

    python3 -m setup bdist_wheel
    
  8. Create source archive.

    python3 -m setup sdist
    
  9. Try to upload on testpypi first. twine must be installed in your env beforehand.

    python3 -m twine upload --repository testpypi dist/*
    
  10. Try to install testpypi version on a clean virtual environment.

    python3 -m pip install --index-url https://test.pypi.org/simple/ icclim
    

    Note

    It may fail due to missing dependencies in test.pypi. In that case, create the environment from icclim environment.yml file to pull all needed dependencies from conda.

  11. Test basic index such as icclim.su(“simple-tasmax-data.nc”)

  12. Upload to pypi for real.

    python3 -m twine upload dist/*
    
  13. 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

  14. 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.