Clone
20
ReleaseChecklist
Azat Khuzhin edited this page 2023-05-21 10:00:38 +02:00

The Libevent Release Checklist

I wrote up this document as a checklist of stuff to do before putting out a Libevent release.

Part 1: Before the release

  • Look at CI, currently the following is covered:
    • Linux (ubuntu)
    • OpenBSD
    • FreeBSD
    • Windows
    • OSX
  • Run make dist and make sure it generates a good distribution. You can make sure that it does by running make distcheck.
  • Make sure all APIs are documented in libevent book and in the doxygen comments. This is especially important for alpha, beta, and rc releases, where new APIs are born.

Part 2: to put out the release

  • Generate the changelog using changelog.py
  • Document highlights in whatsnew-2.2.txt (actually this is a duplication of information, shouldn't we use libevent book instead?)
  • Update the credits using update-contributors.sh
  • Increment the version number and version string in configure.in. The next version should be 2.0.18-stable; the numeric version should be 0x02001200 (That is, 02 00 12 00 : the first three bytes are the version number, and the final 00 byte means that this is the actual release of 2.0.18, not some development version between 2.0.18 and 2.0.19.)
  • Increment the libtool VERSION_INFO in Makefile.am. See Makefile.am for full instructions on what to do in other cases.
  • Increment the versions in CMakeLists.txt.
  • Run make distcheck again to make sure nothing above messed us up. Do this one on the system with the most up-to-date autotools you have.
  • Upload the resulting tarball somewhere volatile; tell people to try it out.

Part 3: The point of no return

Once the tarball is tested, it's time to put out the release.

  • Tag the release. I do this with git tag -u 165733ea ${NEW_TAG}
  • Push the tag to the origin. This is done with git push origin tag ${NEW_TAG}
  • Publish the release on github and add there:
    • tarball and signature to github.
      • gpg --detach-sign -a /path/to/.tar.gz (key should be trusted and default key for gpg)
    • list of contributors (actually it should be not just a list, but contributions itselfs)
  • Add a link on the website and on the old releases page.
  • Send an announcement to libevent-users
  • Increment the version in the IRC channel topic by telling chanserv set #libevent topic Welcome to #libevent! The latest release is ${NEW_TAG}.

Part 4: Right after the distribution is done

  • Increment the versions in configure.in to ${NEW_TAG}-dev, and increment the version numbers there to 0x02001201. The "-dev" and "01" mean that we are a development version, not the released version.
  • Add a new empty section for the next version to the ChangeLog.

Reference