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