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.
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
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
.