ebraminio | 933a81d | 2017-10-01 19:35:24 +0330 | [diff] [blame] | 1 | HarfBuzz release walk-through checklist: |
| 2 | |
| 3 | 1. Open gitk and review changes since last release. |
ebraminio | 933a81d | 2017-10-01 19:35:24 +0330 | [diff] [blame] | 4 | |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 5 | * `git diff $(git describe | sed 's/-.*//').. src/*.h` prints all public API |
| 6 | changes. |
| 7 | |
| 8 | Document them in NEWS. All API and API semantic changes should be clearly |
| 9 | marked as API additions, API changes, or API deletions. Document |
Behdad Esfahbod | f3e58ab | 2018-06-12 19:32:04 -0400 | [diff] [blame] | 10 | deprecations. Ensure all new API / deprecations are in listed correctly in |
| 11 | docs/harfbuzz-sections.txt |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 12 | |
| 13 | If there's a backward-incompatible API change (including deletions for API |
| 14 | used anywhere), that's a release blocker. Do NOT release. |
| 15 | |
| 16 | 2. Based on severity of changes, decide whether it's a minor or micro release |
| 17 | number bump, |
| 18 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 19 | 3. Search for REPLACEME on the repository and replace it with the chosen version |
| 20 | for the release. |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 21 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 22 | 4. Make sure you have correct date and new version at the top of NEWS file, |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 23 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 24 | 5. Bump version in configure.ac line 3, |
| 25 | |
| 26 | 6. Do "make distcheck", if it passes, you get a tarball. |
ebraminio | 933a81d | 2017-10-01 19:35:24 +0330 | [diff] [blame] | 27 | Otherwise, fix things and commit them separately before making release, |
Behdad Esfahbod | b6fdcf4 | 2018-08-08 21:54:08 -0700 | [diff] [blame] | 28 | Note: Check src/hb-version.h and make sure the new version number is |
| 29 | there. Sometimes, it does not get updated. If that's the case, |
Behdad Esfahbod | 72bb139 | 2018-10-19 11:15:35 -0700 | [diff] [blame] | 30 | "touch configure.ac" and rebuild. Also check that there is no hb-version.h |
| 31 | in your build/src file. Typically it will fail the distcheck if there is. |
| 32 | That's what happened to 2.0.0 going out with 1.8.0 hb-version.h... So, that's |
| 33 | a clue. |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 34 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 35 | 7. "make release-files". Enter your GPG password. This creates a sha256 hash |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 36 | and signs it. |
| 37 | |
Behdad Esfahbod | 7796857 | 2018-07-11 15:27:37 +0200 | [diff] [blame] | 38 | 8. Now that you have release files, commit NEWS, configure.ac, and src/hb-version.h, |
Behdad Esfahbod | df01f3e | 2018-06-05 15:17:39 -0700 | [diff] [blame] | 39 | as well as any REPLACEME changes you made. The commit message is simply the |
| 40 | release number. Eg. "1.4.7" |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 41 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 42 | 9. Tag the release and sign it: Eg. "git tag -s 1.4.7 -m 1.4.7". Enter your |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 43 | GPG password again. |
| 44 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 45 | 10. Build win32 bundle. |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 46 | |
| 47 | a. Put contents of [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ) on your `~/.local/i686-w64-mingw32`, |
| 48 | |
Behdad Esfahbod | 60c5167 | 2018-06-05 15:20:23 -0700 | [diff] [blame] | 49 | b. Run `../mingw32.sh --with-uniscribe` script to configure harfbuzz with mingw |
| 50 | in a subdirector (eg. winbuild/), |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 51 | |
| 52 | c. make |
| 53 | |
Behdad Esfahbod | 60c5167 | 2018-06-05 15:20:23 -0700 | [diff] [blame] | 54 | d. Back in the parent directory, run `./UPDATE.sh`(available below) to build win32 |
| 55 | bundle. |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 56 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 57 | 11. Copy all artefacts to users.freedesktop.org and move them into |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 58 | `/srv/www.freedesktop.org/www/software/harfbuzz/release` There should be four |
| 59 | files. Eg.: |
ebraminio | 933a81d | 2017-10-01 19:35:24 +0330 | [diff] [blame] | 60 | ``` |
| 61 | -rw-r--r-- 1 behdad eng 1592693 Jul 18 11:25 harfbuzz-1.4.7.tar.bz2 |
| 62 | -rw-r--r-- 1 behdad eng 89 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256 |
| 63 | -rw-r--r-- 1 behdad eng 339 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256.asc |
| 64 | -rw-r--r-- 1 behdad eng 2895619 Jul 18 11:34 harfbuzz-1.4.7-win32.zip |
| 65 | ``` |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 66 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 67 | 12. While doing that, quickly double-check the size of the .tar.bz2 and .zip |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 68 | files against their previous releases to make sure nothing bad happened. |
| 69 | They should be in the ballpark, perhaps slightly larger. Sometimes they |
| 70 | do shrink, that's not by itself a stopper. |
| 71 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 72 | 13. Push the commit and tag out: "git push --follow-tags". Make sure it's |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 73 | pushed both to freedesktop repo and github. |
| 74 | |
Ebrahim Byagowi | 5f7f0bf | 2018-03-29 04:22:53 +0430 | [diff] [blame] | 75 | 14. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases), |
Behdad Esfahbod | 61d1c60 | 2017-10-23 13:10:21 -0400 | [diff] [blame] | 76 | edit the tag, upload artefacts and NEWS entry and save. |
ebraminio | 933a81d | 2017-10-01 19:35:24 +0330 | [diff] [blame] | 77 | |
| 78 | |
ebraminio | 933a81d | 2017-10-01 19:35:24 +0330 | [diff] [blame] | 79 | ## UPDATE.sh |
| 80 | ```bash |
| 81 | #!/bin/bash |
| 82 | |
| 83 | v=$1 |
| 84 | |
| 85 | if test "x$v" = x; then |
| 86 | echo "usage: UPDATE.sh micro-version" |
| 87 | exit 1 |
| 88 | fi |
| 89 | |
| 90 | dir_prefix=harfbuzz-1.4. |
| 91 | dir_suffix=-win32 |
| 92 | dir=$dir_prefix$v$dir_suffix |
| 93 | dir_old=$dir_prefix$((v-1))$dir_suffix |
| 94 | if test -d "$dir"; then |
| 95 | echo "New dir $dir exists; not overwriting" |
| 96 | exit 1 |
| 97 | fi |
| 98 | if ! test -d "$dir_old"; then |
| 99 | echo "Old dir $dir_old does NOT exist; aborting" |
| 100 | exit 1 |
| 101 | fi |
| 102 | set -ex |
| 103 | cp -a "$dir_old" "$dir.tmp" |
| 104 | rm -f "$dir.tmp"/GDX32.dll |
| 105 | rm -f "$dir.tmp"/usp10.dll |
| 106 | cp ../winbuild/src/.libs/libharfbuzz-0.dll{,.def} $dir.tmp/ |
| 107 | cp ../winbuild/util/.libs/hb-{shape,view}.exe $dir.tmp/ |
| 108 | i686-w64-mingw32-strip $dir.tmp/{hb-shape.exe,hb-view.exe,libharfbuzz-0.dll} |
| 109 | mv $dir.tmp $dir |
| 110 | zip -r $dir.zip $dir |
| 111 | echo Bundle $dir.zip ready |
| 112 | ``` |