-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Cutting a release
This document details the instructions for cutting a new release of Halide.
Let Halide_VERSION be the version to be released. Similarly let Halide_VERSION_{MAJOR,MINOR,PATCH} refer to the major, minor, and patch versions. Since this a major version release, Halide_VERSION_MINOR and Halide_VERSION_PATCH should be 0.
First, you will want to check-out the commit that will constitute the release. Ideally, this will be the HEAD of master (soon to be main), but might come earlier in the history if the release is delayed.
Then create a branch off of this commit named release/${Halide_VERSION_MAJOR}.x. Push it.
In CMakeLists.txt, there is a version number listed at the top, in the call to project. Increase this to (${Halide_VERSION_MAJOR}+1).0.0. Open a PR (e.g. #6040). No need for buildbot testing here.
The buildbot master currently has a hard-coded list of Halide and LLVM versions. These need to be updated for the new release. See halide/build_bot#191 for an example. Get that merged and restart the build-master (currently only @steven-johnson can do this).
It might be necessary to force-schedule the packaging builds.
Look through the git history for a list of changes and write a change-log while you wait for the buildbots to run.
A useful command is:
$ git log --no-merges --oneline ${PREVIOUS_RELEASE}..${COMMIT}
Some time after updating the buildbot master, there should be new binaries ready for Halide. You should expect to see:
Halide-${Halide_VERSION}-arm-32-linux-${COMMIT}
Halide-${Halide_VERSION}-arm-64-linux-${COMMIT}
Halide-${Halide_VERSION}-arm-64-osx-${COMMIT}
Halide-${Halide_VERSION}-x86-32-linux-${COMMIT}
Halide-${Halide_VERSION}-x86-32-windows-${COMMIT}
Halide-${Halide_VERSION}-x86-64-linux-${COMMIT}
Halide-${Halide_VERSION}-x86-64-osx-${COMMIT}
Halide-${Halide_VERSION}-x86-64-windows-${COMMIT}
Download these via
$ wget -nd --directory-prefix="${COMMIT}" -r --no-parent --no-clobber -A "*${COMMIT}*" https://buildbot.halide-lang.org/
This will save all eight archives to a directory named $COMMIT.
Begin drafting a new release here: https://github.com/halide/Halide/releases/new
The tag should be v${Halide_VERSION}. Paste in the change-log you wrote in Step 4 and upload the binaries you got in Step 5. Now you're set!
Send an email to halide-dev@lists.csail.mit.edu. Also let our package maintainer partners know about the changes. We keep an open issue tracking this here: #4660
To-do