mirror of
https://github.com/google/benchmark.git
synced 2024-12-26 20:40:21 +08:00
3623765dd3
* Add `setuptools_scm` for dynamic zero-config Python versioning This removes the need for manually bumping versions in the Python bindings. For the wheel uploads, the correct semver version is inferred in the case of tagged commits, which is exactly the case in GitHub CI. The docs were updated to reflect the changes in the release workflow. * Add separate version variable and module, use PEP484-compliant exports This is the best practice mentioned in the `setuptools_scm` docs, see https://setuptools-scm.readthedocs.io/en/latest/usage/#version-at-runtime.
1.3 KiB
1.3 KiB
How to release
- Make sure you're on main and synced to HEAD
- Ensure the project builds and tests run
parallel -j0 exec ::: test/*_test
can help ensure everything at least passes
- Prepare release notes
git log $(git describe --abbrev=0 --tags)..HEAD
gives you the list of commits between the last annotated tag and HEAD- Pick the most interesting.
- Create one last commit that updates the version saved in
CMakeLists.txt
andMODULE.bazel
to the release version you're creating. (This version will be used if benchmark is installed from the archive you'll be creating in the next step.)
project (benchmark VERSION 1.8.0 LANGUAGES CXX)
module(name = "com_github_google_benchmark", version="1.8.0")
- Create a release through github's interface
- Note this will create a lightweight tag.
- Update this to an annotated tag:
git pull --tags
git tag -a -f <tag> <tag>
git push --force --tags origin
- Confirm that the "Build and upload Python wheels" action runs to completion
- Run it manually if it hasn't run.
- IMPORTANT: When re-running manually, make sure to select the newly created
<tag>
as the workflow version in the "Run workflow" tab on the GitHub Actions page.