parent: Contributing
nav_order: 1
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.