2017-10-01 16:05:24 +00:00
|
|
|
HarfBuzz release walk-through checklist:
|
|
|
|
|
|
|
|
1. Open gitk and review changes since last release.
|
|
|
|
|
2017-10-23 17:10:21 +00:00
|
|
|
* `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,
|
|
|
|
|
2017-10-01 16:05:24 +00:00
|
|
|
3. Make sure you have correct date and new version at the top of NEWS file,
|
2017-10-23 17:10:21 +00:00
|
|
|
|
2017-10-01 16:05:24 +00:00
|
|
|
4. Bump version in configure.ac line 3,
|
2017-10-23 17:10:21 +00:00
|
|
|
|
2017-10-01 16:05:24 +00:00
|
|
|
5. Do "make distcheck", if it passes, you get a tarball.
|
|
|
|
Otherwise, fix things and commit them separately before making release,
|
2017-10-23 17:10:21 +00:00
|
|
|
|
|
|
|
6. "make release-files". Enter your GPG password. This creates a sha256 hash
|
|
|
|
and signs it.
|
|
|
|
|
|
|
|
7. Now that you have release files built, commit NEWS and configure.ac changes.
|
|
|
|
The commit message is simply the release number. Eg. "1.4.7"
|
|
|
|
|
|
|
|
8. Tag the release and sign it: Eg. "git tag -s 1.4.7 -m 1.4.7". Enter your
|
|
|
|
GPG password again.
|
|
|
|
|
2017-10-01 16:05:24 +00:00
|
|
|
9. Build win32 bundle.
|
2017-10-23 17:10:21 +00:00
|
|
|
|
|
|
|
a. Put contents of [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ) on your `~/.local/i686-w64-mingw32`,
|
|
|
|
|
|
|
|
b. Run `./MING32 --with-uniscribe` script (available below) to configure harfbuzz with mingw in a subdirector (eg. winbuild/),
|
|
|
|
|
|
|
|
c. make
|
|
|
|
|
|
|
|
d. Back in the parent directory, run `./UPDATE.sh` (available below) to build win32 bundle.
|
|
|
|
|
|
|
|
10. 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.:
|
2017-10-01 16:05:24 +00:00
|
|
|
```
|
|
|
|
-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
|
|
|
|
```
|
2017-10-23 17:10:21 +00:00
|
|
|
|
|
|
|
11. While doing that, quickly double-check the size of the .tar.bz2 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.
|
|
|
|
|
|
|
|
12. Push the commit and tag out: "git push --follow-tags". Make sure it's
|
|
|
|
pushed both to freedesktop repo and github.
|
|
|
|
|
2017-11-20 19:49:22 +00:00
|
|
|
13. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases),
|
2017-10-23 17:10:21 +00:00
|
|
|
edit the tag, upload artefacts and NEWS entry and save.
|
2017-10-01 16:05:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
## MING32
|
|
|
|
```bash
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
target=i686-w64-mingw32
|
|
|
|
|
|
|
|
unset CC
|
|
|
|
unset CXX
|
|
|
|
unset CPP
|
|
|
|
unset LD
|
|
|
|
unset LDFLAGS
|
|
|
|
unset CFLAGS
|
|
|
|
unset CXXFLAGS
|
|
|
|
unset PKG_CONFIG_PATH
|
|
|
|
|
|
|
|
# Removed -static from the following
|
|
|
|
export CFLAGS="-static-libgcc"
|
|
|
|
export CXXFLAGS="-static-libgcc -static-libstdc++"
|
|
|
|
export CPPFLAGS=-I$HOME/.local/$target/include
|
|
|
|
export LDFLAGS=-L$HOME/.local/$target/lib
|
|
|
|
export PKG_CONFIG_LIBDIR=$HOME/.local/$target/lib/pkgconfig
|
|
|
|
export PATH=$HOME/.local/$target/bin:$PATH
|
|
|
|
|
2017-10-23 17:00:36 +00:00
|
|
|
../configure --build=`../config.guess` --host=$target --prefix=$HOME/.local/$target "$@"
|
2017-10-01 16:05:24 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
## 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
|
|
|
|
```
|