|
| 1 | +title: Release Checklist |
| 2 | + |
| 3 | +When tagging a new release please follow this checklist so that the |
| 4 | +documentation will be updated correctly, and version strings will |
| 5 | +remain accuracte. |
| 6 | + |
| 7 | +# Release Checklist |
| 8 | + |
| 9 | + 1. Make sure you are working from the master branch: `git checkout master` |
| 10 | + 1. Update the `CHANGELOG.md` |
| 11 | + 1. Ensure that the changes listed under |
| 12 | + [Unreleased](|url|/page/releases/index.html#Unreleased) are up |
| 13 | + to date and accurate. |
| 14 | + 1. Look at the latest [changes commited to GitHub since the |
| 15 | + last release](https://github.com/jacobwilliams/json-fortran/compare/{!__VERSION__!}...HEAD), |
| 16 | + {!__VERSION__!}. This will only be accurate if you have |
| 17 | + not yet updated `__VERSION__`. If you *have* updated |
| 18 | + `__VERSION__` then edit the URL manually to view the |
| 19 | + changes. |
| 20 | + 1. Run the |
| 21 | + [`github_changelog_generator`](https://github.com/skywinder/github-changelog-generator) |
| 22 | + as follows, and compare the output to the |
| 23 | + [Unreleased](|url|/page/releases/index.html#Unreleased) |
| 24 | + section of the `CHANGELOG.md`: |
| 25 | + `github_changelog_generator -o Unreleased.md |
| 26 | + --unreleased-only --bugs-label "**Fixed issues:**" |
| 27 | + --enhancement-lable "**Enhancements:**" --issues-lable |
| 28 | + "**Fixed issues:**"` and make sure that you have a |
| 29 | + 16-digit GitHub token stored in the environment variable |
| 30 | + `CHANGELOG_GITHUB_TOKEN`. Compare generated |
| 31 | + `Unreleased.md` to the "Unreleased" section of |
| 32 | + `CHANGELOG.md` and make updates as needed. |
| 33 | + 1. Rename the "Unreleased" section to the new version number |
| 34 | + 1. Copy the "Unreleased" section header and "Complete |
| 35 | + Changeset" link line and insert it just below the TOC |
| 36 | + 1. In the newly inserted "Complete Changeset" URL replace the |
| 37 | + old version number with the new version number |
| 38 | + 1. Rename the lower "Unreleased" section (with all the |
| 39 | + changes) to the current version |
| 40 | + 1. Replace `HEAD` in the header URL with the new version |
| 41 | + number |
| 42 | + 1. Replace `HEAD` in the "Complete Changeset" link with the |
| 43 | + new version number. |
| 44 | + 1. Insert the new version section in the TOC just below the |
| 45 | + "Unreleased" entry |
| 46 | + 1. Add `CHANGELOG.md` to the git index: `git add CHANGELOG.md` |
| 47 | + 1. Add an entry in `pages/releases/index.md` under the "Past |
| 48 | + Releases" heading |
| 49 | + 1. Copy/paste the most recent one listed and replace all |
| 50 | + occurences of the old version string with the new version |
| 51 | + string |
| 52 | + 1. Add `pages/releases/index.md` to the git index: `git add pages/releases/index.md` |
| 53 | + 1. Update the version string in remaining files requiring manual edits: |
| 54 | + 1. Edit the `__VERSION__` file |
| 55 | + 1. Edit the CMake example on line 123 of `README.md` |
| 56 | + 1. Add both files to the git index: `git add __VERSION__ |
| 57 | + README.md` |
| 58 | + 1. Commit the changes to the master branch: `git commit` |
| 59 | + 1. Create the tag: `git tag <new version>` |
| 60 | + 1. [deploy.sh](|url|/page/development-resources/deploy.sh.html) will |
| 61 | + publish the documentation for the latest tag from |
| 62 | + [Travis-CI](https://travis-ci.org/jacobwilliams/json-fortran) to |
| 63 | + https://jacobwilliams.github.io/json-fortran/<version>/ if all |
| 64 | + goes according to plan |
| 65 | + 1. Push tags and master to GitHub: `git push --tags origin master` |
| 66 | + 1. [Draft and publish](https://github.com/jacobwilliams/json-fortran/releases/new) |
| 67 | + a new GitHub Release corresponding to the new version |
| 68 | + 1. Update the Homebrew formula |
| 69 | + 1. [Fork](https://github.com/Homebrew/homebrew#fork-destination-box) |
| 70 | + the |
| 71 | + [Homebrew repository](https://github.com/Homebrew/homebrew) |
| 72 | + 1. Change to your local Homebrew repository: `cd $(brew |
| 73 | + --repository)/Library/Formula` |
| 74 | + 1. Add your fork as a pushable remote: `git remote add |
| 75 | + YOUR_USERNAME https://github.com/YOUR_USERNAME/homebrew.git` |
| 76 | + 1. Make sure you're on the master branch: `git checkout master` |
| 77 | + 1. Make sure eveything is up to date: `brew update` (this calls |
| 78 | + `git pull`) |
| 79 | + 1. Create a new branch from the latest master branch with `git |
| 80 | + checkout -b YOUR_BRANCH_NAME origin/master` |
| 81 | + 1. Edit the `json-fortran.rb` formula with `brew edit |
| 82 | + json-fortran` |
| 83 | + 1. Do *NOT* change anything other than the URL and the SHA256 |
| 84 | + checksum at the top of the formula. These should be changed to |
| 85 | + correspond to the new version of the compressed tarball |
| 86 | + available on newly minted |
| 87 | + [latest releaase page](https://github.com/jacobwilliams/json-fortran/releases/latest) |
| 88 | + 1. Test the changes to make sure that they will be accepted: |
| 89 | + 1. `brew audit --strict --online json-fortran` |
| 90 | + 1. `brew rm json-fortran` |
| 91 | + 1. `brew install -v json-fortran` |
| 92 | + 1. `brew test -v json-fortran` |
| 93 | + 1. Add `json-fortran.rb` to the index (`git add json-fortran.rb`) |
| 94 | + 1. Commit your changes with the correct commit message: `git |
| 95 | + commit -m "json-fortran <new-version-string-here>"` |
| 96 | + 1. Push changes to your fork: `git push --set-upstream |
| 97 | + YOUR_USERNAME YOUR_BRANCH_NAME` |
| 98 | + 1. Go to <https://github.com/Homebrew/homebrew> and submit a pull |
| 99 | + request |
0 commit comments