Release Process
Create a Changelog Entry
Every release must have a changelog entry. The changelog entry should include:
- A summary of the major accomplishments of the release.
- A list of all the changes in the release.
- A list of all the bugs fixed by the release.
Contributions from new collaborators should be acknowledged in the changelog.
Create Git Annotated Tags and GitHub Releases
Each release needs to have a Git annotated tag and a GitHub release for that tag. The changelog for the release should be used for the text of the GitHub release.
Update Compiler Explorer
Thrust and CUB are bundled together on Compiler Explorer (CE) as libraries for the CUDA language. When releasing a new version of these projects, CE will need to be updated.
There are two files in two repos that need to be updated:
libraries.yaml
- Repo: https://github.com/compiler-explorer/infra
- Path: bin/yaml/libraries.yaml
This file tells CE how to pull in library files and defines which versions to fetch. Look for the thrustcub:
section:
thrustcub:
type: github
method: clone_branch
repo: NVIDIA/thrust
check_file: dependencies/cub/cub/cub.cuh
targets:
- 1.9.9
- 1.9.10
- 1.9.10-1
- 1.10.0
Simply add the new version tag to list of targets:
. This will check out the specified tag to /opt/compiler-explorer/libs/thrustcub/<tag>/
.
cuda.amazon.properties
- Repo: https://github.com/compiler-explorer/compiler-explorer
- File: etc/config/cuda.amazon.properties
This file defines the library versions displayed in the CE UI and maps them to a set of include directories. Look for the libs.thrustcub
section:
libs.thrustcub.name=Thrust+CUB
libs.thrustcub.description=CUDA collective and parallel algorithms
libs.thrustcub.versions=trunk:109090:109100:109101:110000
libs.thrustcub.url=http://www.github.com/NVIDIA/thrust
libs.thrustcub.versions.109090.version=1.9.9
libs.thrustcub.versions.109090.path=/opt/compiler-explorer/libs/thrustcub/1.9.9:/opt/compiler-explorer/libs/thrustcub/1.9.9/dependencies/cub
libs.thrustcub.versions.109100.version=1.9.10
libs.thrustcub.versions.109100.path=/opt/compiler-explorer/libs/thrustcub/1.9.10:/opt/compiler-explorer/libs/thrustcub/1.9.10/dependencies/cub
libs.thrustcub.versions.109101.version=1.9.10-1
libs.thrustcub.versions.109101.path=/opt/compiler-explorer/libs/thrustcub/1.9.10-1:/opt/compiler-explorer/libs/thrustcub/1.9.10-1/dependencies/cub
libs.thrustcub.versions.110000.version=1.10.0
libs.thrustcub.versions.110000.path=/opt/compiler-explorer/libs/thrustcub/1.10.0:/opt/compiler-explorer/libs/thrustcub/1.10.0/dependencies/cub
libs.thrustcub.versions.trunk.version=trunk
libs.thrustcub.versions.trunk.path=/opt/compiler-explorer/libs/thrustcub/trunk:/opt/compiler-explorer/libs/thrustcub/trunk/dependencies/cub
Add a new version identifier to the libs.thrustcub.versions
key, using the convention X.Y.Z-W -> XXYYZZWW
. Then add a corresponding UI label (the version
key) and set of colon-separated include paths for Thrust and CUB (path
). The version used in the path
entries must exactly match the tag specified in libraries.yaml
.