When tagging a new release please follow this checklist so that the
documentation will be updated correctly, and version strings will
remain accurate.
Release Checklist
- Make sure you are working from the master branch:
git checkout master
- Update the
CHANGELOG.md
- Ensure that the changes listed under
Unreleased are up
to date and accurate.
- Look at the latest changes committed to GitHub since the
last release,
9.0.1. This will only be accurate if you have
not yet updated the project version in cmake. If you have updated
the product version in cmake and run cmake (and therefore
.VERSION
) then edit the URL manually to view the
changes.
- Run the
github_changelog_generator
as follows, and compare the output to the
unreleased
section of the CHANGELOG.md
:
github_changelog_generator --user jacobwilliams --project json-fortran -o Unreleased.md
--unreleased-only --bugs-label "**Fixed issues:**"
--enhancement-label "**Enhancements:**" --issues-label
"**Fixed issues:**"
and make sure that you have a
16-digit GitHub token stored in the environment variable
CHANGELOG_GITHUB_TOKEN
. Compare generated
Unreleased.md
to the “Unreleased” section of
CHANGELOG.md
and make updates as needed.
- Rename the “Unreleased” section to the new version number
- Copy the “Unreleased” section header and “Complete
Changeset” link line and insert it just below the TOC
- In the newly inserted “Complete Changeset” URL replace the
old version number with the new version number
- Rename the lower “Unreleased” section (with all the
changes) to the current version
- Replace
HEAD
in the header URL with the new version
number
- Replace
HEAD
in the “Complete Changeset” link with the
new version number.
- Insert the new version section in the TOC just below the
“Unreleased” entry
- Add
CHANGELOG.md
to the git index: git add CHANGELOG.md
- Add an entry in
pages/releases/index.md
under the “Past
Releases” heading
- Copy/paste the most recent one listed and replace all
occurrences of the old version string with the new version
string
- Add
pages/releases/index.md
to the git index: git add pages/releases/index.md
- Update the version string in remaining files requiring manual edits:
- Edit the product version in CMake
- Run cmake to generate the
.VERSION
file (or manually update this file if not running CMake)
- Edit the CMake example on line 145 of
README.md
- Edit the
json_fortran_version
string in json_module.F90
- Add these files to the git index:
git add .VERSION README.md ./src/json_module.F90
- Commit the changes to the master branch:
git commit
- Create the tag:
git tag <new version>
- Note: for some reason, using GitHub to tag a project means that the tag doesn’t show up when you
git describe
the project. Tagging from the command line makes git describe
work as expected.
- GitHub Actions will publish the documentation for the
latest tag to
https://jacobwilliams.github.io/json-fortran/prev/new_ver/ if all
goes according to plan
- Push tags and master to GitHub:
git push --tags origin master
- Draft and publish
a new GitHub Release corresponding to the new version
- Update the Homebrew formula
- Fork
the
Homebrew repository
- Change to your local Homebrew repository:
cd $(brew
--repository)/Library/Formula
- Add your fork as a pushable remote:
git remote add
YOUR_USERNAME https://github.com/YOUR_USERNAME/homebrew.git
- Make sure you’re on the master branch:
git checkout master
- Make sure everything is up to date:
brew update
(this calls
git pull
)
- Create a new branch from the latest master branch with
git
checkout -b YOUR_BRANCH_NAME origin/master
- Edit the
json-fortran.rb
formula with brew edit
json-fortran
- Do NOT change anything other than the URL and the SHA256
checksum at the top of the formula. These should be changed to
correspond to the new version of the compressed tarball
available on newly minted
latest release page
- Test the changes to make sure that they will be accepted:
brew audit --strict --online json-fortran
brew rm json-fortran
brew install -v json-fortran
brew test -v json-fortran
- Add
json-fortran.rb
to the index (git add json-fortran.rb
)
- Commit your changes with the correct commit message:
git
commit -m "json-fortran <new-version-string-here>"
- Push changes to your fork:
git push --set-upstream
YOUR_USERNAME YOUR_BRANCH_NAME
- Go to https://github.com/Homebrew/homebrew and submit a pull
request