Skip to content

Release checklist

skshetry edited this page Nov 8, 2022 · 41 revisions

Release checklist:

  1. Check for blockers:
    • Make sure tests are passing.
    • Check if there are any issues with release-blocker labels.
  2. Determine the next version number/tag:
    • Determine if the next release is going to be a major, minor, or a patch version.
    • Do not add any prefix or suffix to the version number/tag (eg: v0.0.1 ❌, 0.0.1 ✅).
    • Make sure to always have 3 components: major/minor/patch in the version number/tag (eg: 2.33 ❌, 2.33.0 ✅).
  3. Make a release:
    • Using GitHub WebUI

      Tip: First add a tag and then, click the Auto-generate release notes, which should fill other stuff automatically.

    • Using gh CLI: gh release create 1.0.0 --generate-notes -R iterative/<repo>

    If there's something interesting in the release, you can add that to the title so that users don't have to read all of the release notes.

  4. Monitor GitHub Actions and PyPI to confirm that they are built and uploaded correctly.

Post-release steps when releasing dvc

Major version transitions in snap

  1. request a new channel version-prefix (aka track) at https://forum.snapcraft.io/t/track-request-for-dvc/17735 (e.g. v2)
    • otherwise attempting to snapcraft release --channel=v2 will fail
  2. create a new legacy-dev git branch (e.g. 1.x-dev)
  3. (optional) give a warning message: cherry-pick dvc@6f0a05ad. Wait ~30 days before continuing to the next step
    • the idea is to warn & give 2 options: opt-in now, or opt-out permanently. Both options will suppress the warning. Ignoring the warning will result in an auto-upgrade in 30 days
  4. uncomment the echo "unset SNAP_CHANNEL" >>env.sh line in scripts/ci/before_install.sh
Clone this wiki locally