Tagging and versioning in `main`
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 486
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 295
Description
The versioning in `main` is confusing due to the way tagging is currently being done. Most tags are only reachable from the release branches, so as of this moment if I run `git desribe` on `main` I see `v2.7.0-rc0-1687-g4afbf18dd`. To make the wheels work I added `ci/generate_version.sh` and use the JSON file `cccl-version.json` to get the version in main, and then append the number of commits since the last tag.
I suggest that after branching for a release we add a tag in `main` that would offer a known tag for the main development branch, such as `v3.0.0.dev` and then `git describe would output `v3.0.0.dev-5-g` if 5 commits had been made since tagging. That would simplify the wheels versioning. The `v` and `dev` might be replaced depending on the packaging system etc.
A large number of tools use some combination of the `git describe output`, i.e. the last reachable tag, the number of commits since that tag and the SHA of the commit.
Contributor guide
Assessment
This issue has not been assessed yet.