Skip to content

How to Create a Release

Cam Mannett edited this page Aug 12, 2023 · 4 revisions

More and more of the release process is becoming automated but as yet, there are still parts that need to be manually done.

Generate new release from GitHub

  1. Update the top-level CMakeLists.txt's project(... VERSION ...) field to the desired version
  2. Doing the above in a modern IDE should trigger a reconfiguration, but if not you will need to do it manually. This will update docs/Doxyfile and include/arg_router/version.hpp
  3. Commit to develop with a commit message following the release format:
arg_router v${VERSION}

Bug fixes
* ${ISSUE_NUM}, ${ISSUE BRIEF}
* ...

Improvements
* ${ISSUE_NUM}, ${ISSUE BRIEF}
* ...
  1. Once merged in, create a PR to merge develop into main. Fix any breakages. Commit messages for any breakage fixes should be done as normal - the release blurb can be manually changed in GH if required (the release blurb is generated from the commit message)
  2. Once merged in, create a tag on main merge commit, name v{VERSION}, and push. This will trigger the release action which will publish a new arg_router release package in GH
  3. If any breakage fixes needed doing post initial merge to main, then make sure to clean up the release blurb by manually editing it in GH

Update vcpkg

  1. Run ci/vcpkg_package_updater.sh or the Powershell version if on Windows
  2. Commit and squash any changes. Leave the body empty
  3. Push to cmannett85/vcpkg
  4. Go to microsoft/vcpkg on GH and create a PR from the branch you made to the upstream master branch. Create a draft first until the pre-commit checks have completed. Don't forget to update the PR template tasks too
  5. Once merged into upstream, checkout the merged in commit and then push your new submodule commit for merging into develop. It's advisable to run the unit tests locally first as the other dependencies' versions are likely to have changed (not essential though as this is done as a PR action)

Update Conan

WIP as this hasn't been done yet!

  1. Fetch cmannett85/conan-center-index and create a new branch at the HEAD
  2. Push the new version onto config.yml versions
  3. Push the new source onto conandata.yml sources, and calculate the SHA256 from it
  4. Make the sure test_package still builds
  5. Push to cmannett85/conan-center-index
  6. Create a PR in upstream
Clone this wiki locally