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 version number:
    • Compare the change to the last release and 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 (eg: v0.0.1 ❌, 0.0.1 ✅). Leave it as a plain number.
    • Make sure to always have 3 components: major/minor/patch in the version number (eg: 2.33 ❌, 2.33.0 ✅).
  3. Make a release:
    • Using GitHub WebUI: See Creating a release.

      Tip: First add a tag with the version number and 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 in short so that users don't have to read through all the release notes. Eg:

      0.0.1: status optimizations

      In gh cli, this can be set with --title flag.

  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