@@ -4,7 +4,13 @@ How to Make a Release
44This guide explains how to make an Allegro release. This all assumes that we're
55on Linux.
66
7- 1. Starting with the master branch, pick a commit which you want to be the base of
7+ 1. First, build the library with the addons, and run the
8+ `./misc/compare_abi.sh` to check if ABI compatibility has been maintaned
9+ (see README_abi.txt). Fix any regressions and along the way make sure that
10+ the newly added public APIs are correctly classified as unstable and are
11+ documented.
12+
13+ 2. Starting with the master branch, pick a commit which you want to be the base of
814 the release branch. Typically this will be HEAD, but if there are some
915 underbaked commits there, you may want to use an earlier commit. Call this
1016 branch with the new release name (e.g. 5.2.2 in this case):
@@ -17,51 +23,55 @@ on Linux.
1723
1824 git cherry-pick -x badf00d
1925
20- 2 . On the master branch, bump the version to the next release in
26+ 3 . On the master branch, bump the version to the next release in
2127 `include/allegro5/base.h` by using the `misc/fixver.sh` script. Commit this
2228 change. For example:
2329
2430 misc/fixver.sh 5 2 3 GIT
2531
26- 3 . Write a changelog file. This is located in docs/src/changes-5.2.txt.
32+ 4 . Write a changelog file. This is located in docs/src/changes-5.2.txt.
2733
2834 Typically you will want to look through the commits made since the last
2935 release, e.g. using `git log <last_release>..<this_release>` (e.g. `git log
3036 5.2.1..5.2.2`). Follow the format of the previous changelogs. Commit this
3137 change.
3238
33- 4. We are now done with the master branch. Check out the release branch now.
39+ 5. Generate the new ABI files using `./misc/generate_abi.sh`. Commit the
40+ changes.
41+
42+ 6. We are now done with the master branch. Check out the release branch now.
3443
35- 5. Cherry-pick the commit with the changelog onto this branch.
44+ 7. Cherry-pick the commit with the changelog and the ABI changes onto this
45+ branch.
3646
37- 6 . Remove the "GIT" suffix and increase the version by 1. This can be done via
47+ 8 . Remove the "GIT" suffix and increase the version by 1. This can be done via
3848 `misc/fixver.sh` script. Commit this change. For example:
3949
4050 misc/fixver.sh 5 2 2 0
4151
42- 7 . Tag the previous commit with the same version number and the release number
52+ 9 . Tag the previous commit with the same version number and the release number
4353 (e.g. "5.2.2.0" if you're releasing 5.2.2. An example command would be:
4454
4555 git tag -a -m "Tag 5.2.2.0" 5.2.2.0
4656
47- 8. Create the source archives by running `misc/create_release_archives.sh` and
57+ 10. Create the source archives by running `misc/create_release_archives.sh` and
4858 passing in the release version. This will create 3 source archives (.tar.gz,
4959 .7z and .zip) in the current directory. And example invocation would be:
5060
5161 misc/create_release_archives.sh 5.2.2.0
5262
53- 10 . At this point you could do some additional checks (like making binaries).
63+ 11 . At this point you could do some additional checks (like making binaries).
5464
55- 11 . If all checks are good, push the master and release branches to github
65+ 12 . If all checks are good, push the master and release branches to github
5666 (with the --tags option).
5767
58- 12 . Upload the source archives to github. Go to the releases tab, and make a
68+ 13 . Upload the source archives to github. Go to the releases tab, and make a
5969 new release with the tag you just created.
6070
61- 13 . Build the docs, including the pdf. Add these to the website via the
71+ 14 . Build the docs, including the pdf. Add these to the website via the
6272 liballeg.github.io repository.
6373
64- 14 . Make an announcement on the website. This involves making a news item,
74+ 15 . Make an announcement on the website. This involves making a news item,
6575 changing the download area and copy-pasting the change list.
6676
67- 15 . Make an announcement on Discord. You're done!
77+ 16 . Make an announcement on Discord. You're done!
0 commit comments