RELEASING.md 3.1 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
   * `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
B
Behdad Esfahbod 已提交
10
     deprecations.  Ensure all new API / deprecations are in listed correctly in
B
2.1.0  
Behdad Esfahbod 已提交
11 12
     docs/harfbuzz-sections.txt.  If release added new API, add entry for new
     API index at the end of docs/harfbuzz-docs.xml.
B
Behdad Esfahbod 已提交
13 14 15 16 17 18 19

     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,

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

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

25 26 27
5. Bump version in configure.ac line 3,

6. Do "make distcheck", if it passes, you get a tarball.
E
ebraminio 已提交
28
   Otherwise, fix things and commit them separately before making release,
B
1.8.7  
Behdad Esfahbod 已提交
29 30
   Note: Check src/hb-version.h and make sure the new version number is
   there.  Sometimes, it does not get updated.  If that's the case,
B
Behdad Esfahbod 已提交
31 32 33 34
   "touch configure.ac" and rebuild.  Also check that there is no hb-version.h
   in your build/src file. Typically it will fail the distcheck if there is.
   That's what happened to 2.0.0 going out with 1.8.0 hb-version.h...  So, that's
   a clue.
B
Behdad Esfahbod 已提交
35

B
Behdad Esfahbod 已提交
36
7. Now that you have release files, commit NEWS, configure.ac, and src/hb-version.h,
B
1.7.7  
Behdad Esfahbod 已提交
37 38
   as well as any REPLACEME changes you made.  The commit message is simply the
   release number.  Eg. "1.4.7"
B
Behdad Esfahbod 已提交
39

B
Behdad Esfahbod 已提交
40 41 42 43
8. "make dist" again to get a tarball with your new commit in the ChangeLog.  Then
   "make release-files".  Enter your GPG password.  This creates a sha256 hash
   and signs it.  Check the size of the three resulting files.

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

47
10. Build win32 bundle.
B
Behdad Esfahbod 已提交
48

B
Behdad Esfahbod 已提交
49
   a. Build Win32 binaries.  See [README.mingw.md](README.mingw.md).
B
Behdad Esfahbod 已提交
50

B
Behdad Esfahbod 已提交
51
   b. Run "make dist-win" to build Win32 bundle.
B
Behdad Esfahbod 已提交
52

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

B
Behdad Esfahbod 已提交
63
12. While doing that, quickly double-check the size of the .tar.xz and .zip
B
Behdad Esfahbod 已提交
64 65 66 67
    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.

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

71
14. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases),
B
Behdad Esfahbod 已提交
72
    edit the tag, upload artefacts and NEWS entry and save.