@@ -6,46 +6,52 @@ Release procedures for OpenDKIM
661) Edit configure.ac so that the new release number is formed with the
77 VERSION_RELEASE* macros.
88
9- 2) In the root build directory, do these things:
9+ 2) Update RELEASE_NOTES with a summary of changes for this release. Include
10+ any bug fixes, feature additions, and acknowledgements for contributors.
11+
12+ 3) In the root build directory, build and test the release tarball:
1013
1114 % make distclean
12- % autoreconf
15+ % autoreconf -fvi
1316 % ./configure
1417 % make
1518 % make distcheck
1619
17- This will produce an opendkim-(version).tar.gz tarball after running
18- all unit tests.
19-
20- 3) Commit changes made to RELEASE_NOTES to the SourceForge git repository.
21- Be sure to include any open feature requests, patches or bug fixes
22- from the SourceForge trackers.
23-
24- 4) Prepare a release announcement by using the file "announcement" from git
25- as your template. Change the From: to the name and address of the person
26- making the announcement. Make sure that address has permissions to post
27- to opendkim-users and opendkim-announce. There should be a paragraph
28- or two at the top highlighting the interesting changes and indicating
29- what the main focus of this release is (new features, bug fixes, etc.),
30- and then the full RELEASE_NOTES block for the new release. Commit this
31- to git.
20+ This will produce an opendkim-<version>.tar.gz tarball after running
21+ all unit tests. The tarball name comes from configure.ac and will be
22+ in the form opendkim-X.Y.Z.tar.gz -- do not rename it.
3223
33- 5) Merge the "develop" branch to the "master" branch, as follows:
24+ 4) Commit all changes (configure.ac version bump, RELEASE_NOTES, etc.) to
25+ the develop branch, then merge to master:
3426
3527 % git checkout master
3628 % git merge develop
37- [massage in and commit any conflicts]
38- % git push
29+ % git push origin master
30+
31+ 5) Tag the release on master using the form opendkim-X.Y.Z (for a stable
32+ release) or opendkim-X.Y.Z-betaN (for a pre-release). Using a consistent
33+ tag format matters: GitHub will auto-generate source archives named after
34+ the tag, which produced the oddly-named "rel-opendkim-2-11-0-Beta0.tar.gz"
35+ in the past. Always upload the distcheck-produced tarball as the release
36+ asset instead of relying on those auto-generated archives.
37+
38+ % git tag -s opendkim-X.Y.Z
39+ % git push origin opendkim-X.Y.Z
3940
40- 6) Deploy all needed files to SourceForge by doing 'make push'. This will
41- also place the release tag.
41+ 6) Create the GitHub release and upload the tarball as an explicit asset:
4242
43- 7) Via the SourceForge UI, make the latest tarball the default download for
44- all operating systems.
43+ % gh release create opendkim-X.Y.Z opendkim-X.Y.Z.tar.gz \
44+ --title "OpenDKIM X.Y.Z" \
45+ --notes-file RELEASE_NOTES \
46+ [--prerelease] # add for beta/RC releases
4547
46- 8) Send the release announcement:
48+ This ensures the downloadable asset is the distcheck-verified tarball
49+ with a normal dot-separated version number, not an auto-generated archive.
4750
48- % sendmail -t < announcement
51+ 7) Prepare and send a release announcement using the "announcement" file in
52+ the repository as a template. The announcement should include a paragraph
53+ or two highlighting the notable changes, followed by the full RELEASE_NOTES
54+ block for this release. Post to opendkim-users and opendkim-announce.
4955
50- 9) Mark any bug fixes or feature requests, etc. as closed if this release
51- contained them .
56+ 8) Close any issues on GitHub that were fixed in this release, referencing
57+ the release tag in closing comments where helpful .
0 commit comments