Skip to content

Commit 8be3c66

Browse files
authored
Merge pull request #338 from thegushi/update-howtorelease
HowToRelease: modernize for GitHub; document consistent release asset naming
2 parents 5bd2440 + ee316a2 commit 8be3c66

1 file changed

Lines changed: 34 additions & 28 deletions

File tree

HowToRelease

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,46 +6,52 @@ Release procedures for OpenDKIM
66
1) 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

Comments
 (0)