c-ares release procedure - how to do a release ============================================== in the source code repo ----------------------- - edit `RELEASE-NOTES.md` to be accurate - edit `configure.ac`'s `CARES_VERSION_INFO`, and `CMakeLists.txt`'s `CARES_LIB_VERSIONINFO` set to the same value to denote the current shared object versioning. - edit `include/ares_version.h` and set `ARES_VERSION_*` definitions to reflect the current version. - All release tags need to be made off a release branch named `vX.Y`, where `X` is the Major version number, and `Y` is the minor version number. If this branch is not yet created, you may create it off the `main` branch like: ``` git checkout -b v1.30 main git push -u origin v1.30 ``` - make sure all relevant changes are committed on the release branch - Create a signed tag for the release using a name of `vX.Y.Z` where `X` is the Major version number, `Y` is the minor version number, and `Z` is the release. This tag needs to be created from the release branch, for example: ``` git tag -s v1.30.0 -m 'c-ares release 1.30.0' v1.30 git push origin --tags ``` - Create the release tarball using `make dist`, it is best to check out the specific tag fresh and build from that: ``` git clone --depth 1 --branch v1.30.0 https://github.com/c-ares/c-ares c-ares-1.30.0 && \ cd c-ares-1.30.0 && \ autoreconf -fi && \ ./configure && \ make && \ make dist VERSION=1.30.0 ``` - GPG sign the release with a detached signature. Valid signing keys are currently: - Daniel Stenberg - 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 - Brad House - DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA ``` gpg -ab c-ares-1.30.0.tar.gz ``` - Create a new release on GitHub using the `RELEASE-NOTES.md` as the body. Upload the generated tarball and signature as an artifact. in the c-ares-www repo ---------------------- - edit `index.t` (version number and date), - edit `changelog.t` (add the new release in there) - edit `download/index.t` for the new release - commit all local changes - push the git commits and the new tag 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