benchmark/docs/releasing.md
Nicholas Junge a17480dd34
Fix dependency typo and unpin cibuildwheel version in wheel building … (#1263)
* Fix dependency typo and unpin cibuildwheel version in wheel building action

* Move to monolithic build jobs, restrict to x64 architectures

As of this commit, all wheel building jobs complete on GitHub Actions. Since some platform-specific options had to be set to fix different types of build problems underway, the build job matrix was unrolled.

Still left TODO:
* Wheel testing after build (running the Python bindings test)
* Emulating bazel on other architectures to build aarch64/i686/ppc64le
* Enabling Win32 (this fails due to linker errors).

* Add binding test commands for all wheels, set macOSX deployment target to 10.9

* Add instructions for updating Python __version__ variable before release creation
2021-11-11 14:51:22 +00:00

1.2 KiB

How to release

  • Make sure you're on main and synced to HEAD
  • Ensure the project builds and tests run (sanity check only, obviously)
    • 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 and the __version__ variable in bindings/python/google_benchmark/__init__.pyto 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.6.0 LANGUAGES CXX)
# bindings/python/google_benchmark/__init__.py

# ...

__version__ = "1.6.0"  # <-- change this to the release version you are creating

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