blob: 1fd8365453d4d666870c7a1ecbe57373c0312c75 [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
Behdad Esfahbod10193912018-10-30 15:52:26 -070011 docs/harfbuzz-sections.txt. If release added new API, add entry for new
12 API index at the end of docs/harfbuzz-docs.xml.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040013
14 If there's a backward-incompatible API change (including deletions for API
15 used anywhere), that's a release blocker. Do NOT release.
16
172. Based on severity of changes, decide whether it's a minor or micro release
18 number bump,
19
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430203. Search for REPLACEME on the repository and replace it with the chosen version
21 for the release.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040022
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430234. Make sure you have correct date and new version at the top of NEWS file,
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040024
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430255. Bump version in configure.ac line 3,
26
276. Do "make distcheck", if it passes, you get a tarball.
ebraminio933a81d2017-10-01 19:35:24 +033028 Otherwise, fix things and commit them separately before making release,
Behdad Esfahbodb6fdcf42018-08-08 21:54:08 -070029 Note: Check src/hb-version.h and make sure the new version number is
30 there. Sometimes, it does not get updated. If that's the case,
Behdad Esfahbod72bb1392018-10-19 11:15:35 -070031 "touch configure.ac" and rebuild. Also check that there is no hb-version.h
32 in your build/src file. Typically it will fail the distcheck if there is.
33 That's what happened to 2.0.0 going out with 1.8.0 hb-version.h... So, that's
34 a clue.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040035
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430367. "make release-files". Enter your GPG password. This creates a sha256 hash
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040037 and signs it.
38
Behdad Esfahbod77968572018-07-11 15:27:37 +0200398. Now that you have release files, commit NEWS, configure.ac, and src/hb-version.h,
Behdad Esfahboddf01f3e2018-06-05 15:17:39 -070040 as well as any REPLACEME changes you made. The commit message is simply the
41 release number. Eg. "1.4.7"
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040042
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +0430439. 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 -040044 GPG password again.
45
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04304610. Build win32 bundle.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040047
48 a. Put contents of [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ) on your `~/.local/i686-w64-mingw32`,
49
Behdad Esfahbod60c51672018-06-05 15:20:23 -070050 b. Run `../mingw32.sh --with-uniscribe` script to configure harfbuzz with mingw
51 in a subdirector (eg. winbuild/),
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040052
53 c. make
54
Behdad Esfahbod60c51672018-06-05 15:20:23 -070055 d. Back in the parent directory, run `./UPDATE.sh`(available below) to build win32
56 bundle.
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040057
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04305811. Copy all artefacts to users.freedesktop.org and move them into
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040059 `/srv/www.freedesktop.org/www/software/harfbuzz/release` There should be four
60 files. Eg.:
ebraminio933a81d2017-10-01 19:35:24 +033061 ```
62-rw-r--r-- 1 behdad eng 1592693 Jul 18 11:25 harfbuzz-1.4.7.tar.bz2
63-rw-r--r-- 1 behdad eng 89 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256
64-rw-r--r-- 1 behdad eng 339 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256.asc
65-rw-r--r-- 1 behdad eng 2895619 Jul 18 11:34 harfbuzz-1.4.7-win32.zip
66```
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040067
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04306812. While doing that, quickly double-check the size of the .tar.bz2 and .zip
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040069 files against their previous releases to make sure nothing bad happened.
70 They should be in the ballpark, perhaps slightly larger. Sometimes they
71 do shrink, that's not by itself a stopper.
72
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04307313. Push the commit and tag out: "git push --follow-tags". Make sure it's
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040074 pushed both to freedesktop repo and github.
75
Ebrahim Byagowi5f7f0bf2018-03-29 04:22:53 +04307614. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases),
Behdad Esfahbod61d1c602017-10-23 13:10:21 -040077 edit the tag, upload artefacts and NEWS entry and save.
ebraminio933a81d2017-10-01 19:35:24 +033078
79
ebraminio933a81d2017-10-01 19:35:24 +033080## UPDATE.sh
81```bash
82#!/bin/bash
83
84v=$1
85
86if test "x$v" = x; then
87 echo "usage: UPDATE.sh micro-version"
88 exit 1
89fi
90
91dir_prefix=harfbuzz-1.4.
92dir_suffix=-win32
93dir=$dir_prefix$v$dir_suffix
94dir_old=$dir_prefix$((v-1))$dir_suffix
95if test -d "$dir"; then
96 echo "New dir $dir exists; not overwriting"
97 exit 1
98fi
99if ! test -d "$dir_old"; then
100 echo "Old dir $dir_old does NOT exist; aborting"
101 exit 1
102fi
103set -ex
104cp -a "$dir_old" "$dir.tmp"
105rm -f "$dir.tmp"/GDX32.dll
106rm -f "$dir.tmp"/usp10.dll
107cp ../winbuild/src/.libs/libharfbuzz-0.dll{,.def} $dir.tmp/
108cp ../winbuild/util/.libs/hb-{shape,view}.exe $dir.tmp/
109i686-w64-mingw32-strip $dir.tmp/{hb-shape.exe,hb-view.exe,libharfbuzz-0.dll}
110mv $dir.tmp $dir
111zip -r $dir.zip $dir
112echo Bundle $dir.zip ready
113```