RELEASE-NOTES.md
to be accurateconfigure.ac
's CARES_VERSION_INFO
, and CMakeLists.txt
's
CARES_LIB_VERSIONINFO
set to the same value to denote the current shared
object versioning.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. 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 and main
. 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.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:
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:
Brad House brad@brad-house.com - DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA
gpg -ab c-ares-${RELEASE}.tar.gz
Upload the generated c-ares-${RELEASE}.tar.gz.asc
signature as a release
asset, then unmark the release as being a draft.
index.md
, change version and date in frontmatterchangelog.md
, copy RELEASE-NOTES.md
contentdownload.md
, add new version and date in frontmatter