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 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
  • Confirm that the “Build and upload Python wheels” action runs to completion
    • run it manually if it hasn't run