-HarfBuzz release walk-through checklist:
+# HarfBuzz release walk-through checklist:
-1. Open gitk and review changes since last release.
+- [ ] Open gitk and review changes since last release.
- * `git diff $(git describe | sed 's/-.*//').. src/*.h` prints all public API
- changes.
+ - [ ] Print all public API changes:
+ `git diff $(git describe | sed 's/-.*//').. src/*.h`
- Document them in NEWS. All API and API semantic changes should be clearly
- marked as API additions, API changes, or API deletions. Document
- deprecations. Ensure all new API / deprecations are in listed correctly in
- docs/harfbuzz-sections.txt. If release added new API, add entry for new
- API index at the end of docs/harfbuzz-docs.xml.
+ - [ ] Document them in NEWS.
+ All API and API semantic changes should be clearly marked as API additions, API changes, or API deletions.
- If there's a backward-incompatible API change (including deletions for API
- used anywhere), that's a release blocker. Do NOT release.
+ - [ ] Document deprecations.
+ Ensure all new API / deprecations are in listed correctly in docs/harfbuzz-sections.txt.
+ If release added new API, add entry for new API index at the end of docs/harfbuzz-docs.xml.
-2. Based on severity of changes, decide whether it's a minor or micro release
- number bump,
+ If there's a backward-incompatible API change (including deletions for API used anywhere), that's a release blocker.
+ Do NOT release.
-3. Search for REPLACEME on the repository and replace it with the chosen version
- for the release.
+- [ ] Based on severity of changes, decide whether it's a minor or micro release number bump.
-4. Make sure you have correct date and new version at the top of NEWS file,
+- [ ] Search for REPLACEME on the repository and replace it with the chosen version for the release.
-5. Bump version in configure.ac line 3,
+- [ ] Make sure you have correct date and new version at the top of NEWS file.
-6. Do "make distcheck", if it passes, you get a tarball.
- Otherwise, fix things and commit them separately before making release,
- Note: Check src/hb-version.h and make sure the new version number is
- there. Sometimes, it does not get updated. If that's the case,
- "touch configure.ac" and rebuild. Also check that there is no hb-version.h
- in your build/src file. Typically it will fail the distcheck if there is.
- That's what happened to 2.0.0 going out with 1.8.0 hb-version.h... So, that's
- a clue.
+- [ ] Bump version in line 3 of meson.build and configure.ac.
-7. Now that you have release files, commit NEWS, configure.ac, and src/hb-version.h,
- as well as any REPLACEME changes you made. The commit message is simply the
- release number. Eg. "1.4.7"
+- [ ] Do a `meson test -Cbuild` so it both checks the tests and updates hb-version.h (use `git diff` to see if is really updated).
-8. "make dist" again to get a tarball with your new commit in the ChangeLog. Then
- "make release-files". Enter your GPG password. This creates a sha256 hash
- and signs it. Check the size of the three resulting files.
+- [ ] Commit NEWS, meson.build, configure.ac, and src/hb-version.h, as well as any REPLACEME changes you made.
+ The commit message is simply the release number, e. g. "1.4.7"
-9. Tag the release and sign it: Eg. "git tag -s 1.4.7 -m 1.4.7". Enter your
- GPG password again.
+- [ ] Do a `meson dist -Cbuild` that runs the tests against the latest committed changes.
+ If doesn't pass, something fishy is going on, reset the repo and start over.
-10. Build win32 bundle.
+- [ ] Tag the release and sign it: e.g. `git tag -s 1.4.7 -m 1.4.7`.
+ Enter your GPG password.
- a. Build Win32 binaries. See [README.mingw.md](README.mingw.md).
-
- b. Run "make dist-win" to build Win32 bundle.
-
-11. Copy all artefacts to users.freedesktop.org and move them into
- `/srv/www.freedesktop.org/www/software/harfbuzz/release` There should be four
- files. Eg.:
- ```
--rw-r--r-- 1 behdad eng 1592693 Jul 18 11:25 harfbuzz-1.4.7.tar.xz
--rw-r--r-- 1 behdad eng 89 Jul 18 11:34 harfbuzz-1.4.7.tar.xz.sha256
--rw-r--r-- 1 behdad eng 339 Jul 18 11:34 harfbuzz-1.4.7.tar.xz.sha256.asc
--rw-r--r-- 1 behdad eng 2895619 Jul 18 11:34 harfbuzz-1.4.7-win32.zip
-```
-
-12. While doing that, quickly double-check the size of the .tar.xz and .zip
- files against their previous releases to make sure nothing bad happened.
- They should be in the ballpark, perhaps slightly larger. Sometimes they
- do shrink, that's not by itself a stopper.
-
-13. Push the commit and tag out: "git push --follow-tags". Make sure it's
- pushed both to freedesktop repo and github.
-
-14. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases),
- edit the tag, upload artefacts and NEWS entry and save.
+- [ ] Push the commit and tag out: `git push --follow-tags`.