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. Run vendor/update to check that the vendored third-party dependencies are up to date.
  3. Run tools/mkauthors to update the authors file.
  4. Run tools/mkdescriptions to update the module descriptions.
  5. Run tools/mkheaders to update the copyright headers.
  6. If ABI breakages have been made then update MODULE_ABI in include/moduledefs.h.
  7. Update the version in src/version.sh.
  8. Commit the changes to include/moduledefs.h and src/version.sh.
  9. Ensure that the branch tip builds with no warnings. Checking GitHub Actions is helpful as it builds with -Werror.
  10. Tag the release with git tag VERSION.
  11. Run git push UPSTREAM BRANCH and git push UPSTREAM VERSION.
  12. Add a GitHub release for the VERSION on tag.
  13. Generate a list of contributors for the news post using git log --pretty=' - %aN' PREVIOUS...VERSION | sort -fu
  14. Create a news post on the website using the list of contributors from the previous step.
  15. Mark the new news post as featured and unmark the old one.
  16. If the release is stable then update misc.currentVersion in the website config to VERSION.
  17. Update the change log on the documentation site.
  18. Run the API documentation workflow.
  19. If the release fixes a security vulnerability then create an advisory on the documentation site.
  20. Update INSP_VERSION in the Docker container build script.
  21. Update the topic in #InspIRCd and #InspIRCd.dev on ChatSpike.
  22. Post a link to the news post on the InspIRCd social media accounts.