Release Process#

  1. Decide to do a release, and check with regular contributors on Discord that they don’t have anything pending.

  2. Ensure version pins in pyproject.toml and conda-environment.yml are in sync and up to date, and refresh uv.lock.

uv lock
  1. Create a new Tag and Draft Release using the GitHub Releases Web UI

  2. Based on the generated release notes from GitHub, update the release notes in about/whats_new.rst and the fallback version number in pyproject.toml in the develop branch via a PR.

  3. Change the Draft Release to Published using the GitHub Releases Web UI

  4. Wait for the GitHub Action to run and publish the new release to PyPI

  5. Wait for the conda-forge bot to notice the new PyPI version and create a PR against the conda-forge datacube feedstock

  6. Fix any errors and merge the PR created by the conda-forge bot to create a new conda-forge release.

  7. Manually update the stable branch:

    • git checkout <release tag>

    • git push –force origin stable

  8. Post release announcements on Slack, Discord, and social media platforms.

  9. Kick back, relax, and enjoy a tasty beverage.