JSON for Modern C++ Release Scripts
Preparations
- Install required tools:
make install_requirements
. - Add required keys to
config.json
(apparently not checked in to GitHub).
Release Checklist
-
Set the version number.
- Edit file
config.json
.
- Edit file
-
Check if the milestone is correctly set.
- Check https://github.com/nlohmann/json/milestones: Are all assigned issues closed? Is the due date set to today?
-
Clean the working directory.
- Execute
rm -fr workdir/json
.
- Execute
-
Update feature slideshow.
- Adjust version and content in slideshow
scripts/slideshow/JSON.key
.
- Adjust version and content in slideshow
-
Checkout working copy and bump versions.
- Execute
make pass_1
.
- Execute
-
Make last adjustments to the working copy
workdir/json
.- Edit
README.md
and add new contributors.
- Edit
-
Commit all changes to the working copy.
- Execute
make pass_2
.
- Execute
-
Create an empty release draft and push it to GitHub.
- Execute
make pass_3
.
- Execute
-
Edit the created release draft.
- Go to https://github.com/nlohmann/json/releases and add the release notes based on WIP discussion post.
-
Wait for the CI to complete on the pushed release branch.
- Wait until https://github.com/nlohmann/json/actions is green.
- Merge the release branch and push all changes.
- Execute
make pass_4
.
- Publish the release.
- Go to https://github.com/nlohmann/json/releases and publish the release. Remember to tick the "Create a discussion for this release" checkbox.
- Create PR for Homebrew formula.
- Execute
make update_homebrew
.
- Clean up discussions.
- Unpin posts.
- Close WIP post.
- Create WIP post for next release.
- Pin post for current release.
- Close current and create a new milestone.