2.9 KiB
2.9 KiB
c-ares release procedure - how to do a release
in the source code repo
- edit
RELEASE-NOTES.mdto be accurate - edit
configure.ac'sCARES_VERSION_INFO, andCMakeLists.txt'sCARES_LIB_VERSIONINFOset to the same value to denote the current shared object versioning. - edit
include/ares_version.hand setARES_VERSION_*definitions to reflect the current version. - All release tags need to be made off a release branch named
vX.Y, whereXis the Major version number, andYis the minor version number. We also want to create an empty commit in the branch with a message, this ensures when we tag a release from the branch, it gets tied to the branch itself and not a commit which may be shared across this branch andmain. Create the branch like:
BRANCH=1.35
git pull && \
git checkout main && \
git checkout -b v${BRANCH} main && \
git commit --allow-empty -m "Created release branch v${BRANCH}" && \
git push -u origin v${BRANCH}
- make sure all relevant changes are committed on the release branch
- Create a signed tag for the release using a name of
vX.Y.ZwhereXis the Major version number,Yis the minor version number, andZis the release. This tag needs to be created from the release branch, for example:
BRANCH=1.35
RELEASE=1.35.0
git checkout v${BRANCH} && \
git pull && \
git tag -s v${RELEASE} -m 'c-ares release v${RELEASE}' v${BRANCH} && \
git push origin --tags
- When a tag is created, it will spawn off a github action to generate a new draft release based on this workflow: package.yml. Wait for this workflow to complete then fetch the generated source tarball:
wget https://github.com/c-ares/c-ares/releases/download/v${RELEASE}/c-ares-${RELEASE}.tar.gz
- GPG sign the release with a detached signature. Valid signing keys are currently:
- Daniel Stenberg daniel@haxx.se - 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
- Brad House brad@brad-house.com - DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA
gpg -ab c-ares-${RELEASE}.tar.gz
- Upload the generated
c-ares-${RELEASE}.tar.gz.ascsignature as a release asset, then unmark the release as being a draft.
in the c-ares-www repo
- edit
index.md, change version and date in frontmatter - edit
changelog.md, copyRELEASE-NOTES.mdcontent - edit
download.md, add new version and date in frontmatter - commit all local changes
- push the git commits
inform
- send an email to the c-ares mailing list. Insert the RELEASE-NOTES.md into the mail.
- Create an announcement in the GitHub Discussions Announcements section: https://github.com/c-ares/c-ares/discussions/categories/announcements
celebrate
- suitable beverage intake is encouraged for the festivities