|
Download docs/github_pages/releases/versioning.md from camenduru/thrust: direct link, hf CLI and curl.
- Browser
- Download file 3.08 kB
-
https://huggingface.co/camenduru/thrust/resolve/main/docs/github_pages/releases/versioning.md
- Command line
-
hf download hf://camenduru/thrust/docs/github_pages/releases/versioning.md
-
curl -L -o versioning.md https://huggingface.co/camenduru/thrust/resolve/main/docs/github_pages/releases/versioning.md
3.08 kB
| parent: Releases | |
| nav_order: 1 | |
| # Versioning | |
| Thrust has its own versioning system for releases, independent of the | |
| versioning scheme of the NVIDIA HPC SDK or the CUDA Toolkit. | |
| Today, Thrust version numbers have a specific [semantic meaning](https://semver.org/). | |
| Releases prior to 1.10.0 largely, but not strictly, followed these semantic | |
| meanings. | |
| The version number for a Thrust release uses the following format: | |
| `MMM.mmm.ss-ppp`, where: | |
| * `THRUST_VERSION_MAJOR`/`MMM`: Major version, up to 3 decimal digits. | |
| It is incremented when changes that are API-backwards-incompatible are made. | |
| * `THRUST_VERSION_MINOR`/`mmm`: Minor version, up to 3 decimal digits. | |
| It is incremented when breaking API, ABI, or semantic changes are made. | |
| * `THRUST_VERSION_SUBMINOR`/`ss`: Subminor version, up to 2 decimal digits. | |
| It is incremented when notable new features or bug fixes or features that are | |
| API-backwards-compatible are made. | |
| * `THRUST_PATCH_NUMBER`/`ppp`: Patch number, up to 3 decimal digits. | |
| This is no longer used and will be zero for all future releases. | |
| The `<thrust/version.h>` header defines `THRUST_*` macros for all of the | |
| version components mentioned above. | |
| Additionally, a `THRUST_VERSION` macro is defined, which is an integer literal | |
| containing all of the version components except for `THRUST_PATCH_NUMBER`. | |
| ## Trunk Based Development | |
| Thrust uses [trunk based development](https://trunkbaseddevelopment.com). | |
| There is a single long-lived branch called `main`, which is public and the | |
| "source of truth". | |
| All other branches are downstream from `main`. | |
| Engineers may create branches for feature development. | |
| Such branches always merge into `main`. | |
| There are no release branches. | |
| Releases are produced by taking a snapshot of `main` ("snapping"). | |
| After a release has been snapped from `main`, it will never be changed. | |
| ## Branches and Tags | |
| The following tag names are used in the Thrust project: | |
| * `nvhpc-X.Y`: the tag that directly corresponds to what has been | |
| shipped in the NVIDIA HPC SDK release X.Y. | |
| * `cuda-X.Y`: the tag that directly corresponds to what has been shipped | |
| in the CUDA Toolkit release X.Y. | |
| * `A.B.C`: the tag that directly corresponds to Thrust version A.B.C. | |
| * `A.B.C-rcN`: the tag that directly corresponds to Thrust version A.B.C | |
| release candidate N. | |
| The following branch names are used in the Thrust project: | |
| * `main`: the "source of truth" development branch of Thrust. | |
| * `old-master`: the old "source of truth" branch, before unification of | |
| public and internal repositories. | |
| * `feature/<name>`: feature branch for a feature under development. | |
| * `bug/<bug-system>/<bug-description>-<bug-id>`: bug fix branch, where | |
| `bug-system` is `github` or `nvidia`. | |
| On the rare occasion that we cannot do work in the open, for example when | |
| developing a change specific to an unreleased product, these branches may | |
| exist on an internal NVIDIA GitLab instance instead of the public GitHub. | |
| By default, everything should be in the open on GitHub unless there is a strong | |
| motivation for it to not be open. | |