blob: d431871c0ac069195a29fe42f0fae7dfc9efc3b7 [file] [log] [blame] [view]
ebraminio933a81d2017-10-01 19:35:24 +03301HarfBuzz release walk-through checklist:
2
31. Open gitk and review changes since last release.
ebraminio933a81d2017-10-01 19:35:24 +03304
Behdad Esfahbod61d1c602017-10-23 13:10:21 -04005 * `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 Esfahbodf3e58ab2018-06-12 19:32:04 -040010 deprecations. Ensure all new API / deprecations are in listed correctly in
11 docs/harfbuzz-sections.txt
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040012
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
162. Based on severity of changes, decide whether it's a minor or micro release
17 number bump,
18
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430193. Search for REPLACEME on the repository and replace it with the chosen version
20 for the release.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040021
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430224. Make sure you have correct date and new version at the top of NEWS file,
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040023
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430245. Bump version in configure.ac line 3,
25
266. Do "make distcheck", if it passes, you get a tarball.
ebraminio933a81d2017-10-01 19:35:24 +033027 Otherwise, fix things and commit them separately before making release,
Behdad Esfahbodb6fdcf42018-08-08 21:54:08 -070028 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,
30 "touch configure.ac" and rebuild. TODO: debug.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040031
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430327. "make release-files". Enter your GPG password. This creates a sha256 hash
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040033 and signs it.
34
Behdad Esfahbod77968572018-07-11 15:27:37 +0200358. Now that you have release files, commit NEWS, configure.ac, and src/hb-version.h,
Behdad Esfahboddf01f3e2018-06-05 15:17:39 -070036 as well as any REPLACEME changes you made. The commit message is simply the
37 release number. Eg. "1.4.7"
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040038
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430399. Tag the release and sign it: Eg. "git tag -s 1.4.7 -m 1.4.7". Enter your
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040040 GPG password again.
41
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04304210. Build win32 bundle.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040043
44 a. Put contents of [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ) on your `~/.local/i686-w64-mingw32`,
45
Behdad Esfahbod60c51672018-06-05 15:20:23 -070046 b. Run `../mingw32.sh --with-uniscribe` script to configure harfbuzz with mingw
47 in a subdirector (eg. winbuild/),
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040048
49 c. make
50
Behdad Esfahbod60c51672018-06-05 15:20:23 -070051 d. Back in the parent directory, run `./UPDATE.sh`(available below) to build win32
52 bundle.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040053
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04305411. Copy all artefacts to users.freedesktop.org and move them into
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040055 `/srv/www.freedesktop.org/www/software/harfbuzz/release` There should be four
56 files. Eg.:
ebraminio933a81d2017-10-01 19:35:24 +033057 ```
58-rw-r--r-- 1 behdad eng 1592693 Jul 18 11:25 harfbuzz-1.4.7.tar.bz2
59-rw-r--r-- 1 behdad eng 89 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256
60-rw-r--r-- 1 behdad eng 339 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256.asc
61-rw-r--r-- 1 behdad eng 2895619 Jul 18 11:34 harfbuzz-1.4.7-win32.zip
62```
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040063
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04306412. While doing that, quickly double-check the size of the .tar.bz2 and .zip
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040065 files against their previous releases to make sure nothing bad happened.
66 They should be in the ballpark, perhaps slightly larger. Sometimes they
67 do shrink, that's not by itself a stopper.
68
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04306913. Push the commit and tag out: "git push --follow-tags". Make sure it's
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040070 pushed both to freedesktop repo and github.
71
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04307214. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases),
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040073 edit the tag, upload artefacts and NEWS entry and save.
ebraminio933a81d2017-10-01 19:35:24 +033074
75
ebraminio933a81d2017-10-01 19:35:24 +033076## UPDATE.sh
77```bash
78#!/bin/bash
79
80v=$1
81
82if test "x$v" = x; then
83 echo "usage: UPDATE.sh micro-version"
84 exit 1
85fi
86
87dir_prefix=harfbuzz-1.4.
88dir_suffix=-win32
89dir=$dir_prefix$v$dir_suffix
90dir_old=$dir_prefix$((v-1))$dir_suffix
91if test -d "$dir"; then
92 echo "New dir $dir exists; not overwriting"
93 exit 1
94fi
95if ! test -d "$dir_old"; then
96 echo "Old dir $dir_old does NOT exist; aborting"
97 exit 1
98fi
99set -ex
100cp -a "$dir_old" "$dir.tmp"
101rm -f "$dir.tmp"/GDX32.dll
102rm -f "$dir.tmp"/usp10.dll
103cp ../winbuild/src/.libs/libharfbuzz-0.dll{,.def} $dir.tmp/
104cp ../winbuild/util/.libs/hb-{shape,view}.exe $dir.tmp/
105i686-w64-mingw32-strip $dir.tmp/{hb-shape.exe,hb-view.exe,libharfbuzz-0.dll}
106mv $dir.tmp $dir
107zip -r $dir.zip $dir
108echo Bundle $dir.zip ready
109```