Release Procedure

Name Description
BRANCH The branch on which the release is happening.
PREVIOUS The previous release's version number or the previous branch if the release is the first on that branch.
UPSTREAM The Git remote for the main InspIRCd repository.
VERSION The new release's version number.
  1. Close the release milestone on GitHub.
  2. If ABI breakages have been made then update MODULE_ABI in include/moduledefs.h.
  3. Run vendor/update to check that the vendored third-party dependencies are up to date.
  4. Ensure that the branch tip builds with no warnings. Checking GitHub Actions is helpful as it builds with -Werror.
  5. Run tools/mkheaders to update the copyright headers.
  6. Update the version in src/version.sh and commit it.
  7. Tag the release with git tag VERSION.
  8. Run git push UPSTREAM BRANCH and git push UPSTREAM VERSION.
  9. Add a GitHub release for the VERSION on tag.
  10. Generate a list of contributors for the news post using git log --pretty=' - %aN' PREVIOUS...VERSION | sort -fu
  11. Create a news post on the website using the list of contributors from the previous step.
  12. Mark the new news post as featured and unmark the old one.
  13. If the release is stable then update misc.currentVersion in the website config to VERSION.
  14. Update the change log on the documentation site.
  15. If the release fixes a security vulnerability then create an advisory on the documentation site.
  16. Update the topic in #InspIRCd and #InspIRCd.dev on ChatSpike.
  17. Post a link to the news post on the InspIRCd Twitter account and, if notable, on /r/irc.