RELEASING.md 3.4 KB
Newer Older
E
ebraminio 已提交
1 2 3 4
HarfBuzz release walk-through checklist:

1. Open gitk and review changes since last release.

B
Behdad Esfahbod 已提交
5 6 7 8 9 10 11 12 13 14 15 16 17
   * `git diff $(git describe | sed 's/-.*//').. src/*.h` prints all public API
     changes.

     Document them in NEWS.  All API and API semantic changes should be clearly
     marked as API additions, API changes, or API deletions.  Document
     deprecations.

     If there's a backward-incompatible API change (including deletions for API
     used anywhere), that's a release blocker.  Do NOT release.

2. Based on severity of changes, decide whether it's a minor or micro release
   number bump,

18 19
3. Search for REPLACEME on the repository and replace it with the chosen version
   for the release.
B
Behdad Esfahbod 已提交
20

21
4. Make sure you have correct date and new version at the top of NEWS file,
B
Behdad Esfahbod 已提交
22

23 24 25
5. Bump version in configure.ac line 3,

6. Do "make distcheck", if it passes, you get a tarball.
E
ebraminio 已提交
26
   Otherwise, fix things and commit them separately before making release,
B
Behdad Esfahbod 已提交
27

28
7. "make release-files".  Enter your GPG password.  This creates a sha256 hash
B
Behdad Esfahbod 已提交
29 30
   and signs it.

B
1.7.7  
Behdad Esfahbod 已提交
31 32 33
8. Now that you have release files built, commit NEWS and configure.ac changes,
   as well as any REPLACEME changes you made.  The commit message is simply the
   release number.  Eg. "1.4.7"
B
Behdad Esfahbod 已提交
34

35
9. Tag the release and sign it: Eg. "git tag -s 1.4.7 -m 1.4.7".  Enter your
B
Behdad Esfahbod 已提交
36 37
   GPG password again.

38
10. Build win32 bundle.
B
Behdad Esfahbod 已提交
39 40 41

   a. Put contents of [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ) on your `~/.local/i686-w64-mingw32`,

B
Behdad Esfahbod 已提交
42 43
   b. Run `../mingw32.sh --with-uniscribe` script to configure harfbuzz with mingw
   in a subdirector (eg. winbuild/),
B
Behdad Esfahbod 已提交
44 45 46

   c. make

B
Behdad Esfahbod 已提交
47 48
   d. Back in the parent directory, run `./UPDATE.sh`(available below) to build win32
      bundle.
B
Behdad Esfahbod 已提交
49

50
11. Copy all artefacts to users.freedesktop.org and move them into
B
Behdad Esfahbod 已提交
51 52
    `/srv/www.freedesktop.org/www/software/harfbuzz/release` There should be four
    files.  Eg.:
E
ebraminio 已提交
53 54 55 56 57 58
 ```
-rw-r--r--  1 behdad eng 1592693 Jul 18 11:25 harfbuzz-1.4.7.tar.bz2
-rw-r--r--  1 behdad eng      89 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256
-rw-r--r--  1 behdad eng     339 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256.asc
-rw-r--r--  1 behdad eng 2895619 Jul 18 11:34 harfbuzz-1.4.7-win32.zip
```
B
Behdad Esfahbod 已提交
59

60
12. While doing that, quickly double-check the size of the .tar.bz2 and .zip
B
Behdad Esfahbod 已提交
61 62 63 64
    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.

65
13. Push the commit and tag out: "git push --follow-tags".  Make sure it's
B
Behdad Esfahbod 已提交
66 67
    pushed both to freedesktop repo and github.

68
14. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases),
B
Behdad Esfahbod 已提交
69
    edit the tag, upload artefacts and NEWS entry and save.
E
ebraminio 已提交
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105


## UPDATE.sh
```bash
#!/bin/bash

v=$1

if test "x$v" = x; then
	echo "usage: UPDATE.sh micro-version"
	exit 1
fi

dir_prefix=harfbuzz-1.4.
dir_suffix=-win32
dir=$dir_prefix$v$dir_suffix
dir_old=$dir_prefix$((v-1))$dir_suffix
if test -d "$dir"; then
	echo "New dir $dir exists; not overwriting"
	exit 1
fi
if ! test -d "$dir_old"; then
	echo "Old dir $dir_old does NOT exist; aborting"
	exit 1
fi
set -ex
cp -a "$dir_old" "$dir.tmp"
rm -f "$dir.tmp"/GDX32.dll
rm -f "$dir.tmp"/usp10.dll
cp ../winbuild/src/.libs/libharfbuzz-0.dll{,.def} $dir.tmp/
cp ../winbuild/util/.libs/hb-{shape,view}.exe $dir.tmp/
i686-w64-mingw32-strip $dir.tmp/{hb-shape.exe,hb-view.exe,libharfbuzz-0.dll}
mv $dir.tmp $dir
zip -r $dir.zip $dir
echo Bundle $dir.zip ready
```