docs/release.md
Currently we don't release regularly. Whenever we think it makes sense to release a new version we do it. You might want to ask in our Slack channel external-dns when the next release will come out.
A new staging image is released weekly and can be found at gcr.io/k8s-staging-external-dns/external-dns.
There is a time lag between merging changes into the master branch and the subsequent creation of the staging image.
Example command to fetch 10 most recent staging images:
export EXT_DNS_VERSION="v0.20.0"
curl -sLk https://gcr.io/v2/k8s-staging-external-dns/external-dns/tags/list | jq | grep "$EXT_DNS_VERSION" | tail -n 10
These are the conventions that we will be using for releases following 0.7.6:
Patch version should be updated if we need to merge bugfixes, e.g. provider a does need a fix in order make updates working again. I would see updating or improving documentation here.
Minor version should be updated if new features are implemented in existing providers or new provider get introduced.
Major version should be upgraded if we introduce breaking changes.
External-DNS follows semantic versioning principles:
0.x → pre-stable, APIs subject to change.1.x → not yet considered.Versioning & Releases External-DNS opts to stay within
0.xversioning scheme. We strive for stability, but reserve the right to introduce breaking changes in minor version bumps when necessary.
We use https://github.com/cli/cli to automate the release process. Please install it according to the official documentation.
You must be an official maintainer of the project to be able to do a release.
scripts/releaser.sh to create a new GitHub release. Alternatively you can create a release in the GitHub UI making sure to click on the autogenerate release node feature.gcr.io/k8s-staging-external-dns/external-dns.scripts/get-sha256.sh. Once the PR is merged, the image will be live with the corresponding tag specified in the PR.
docker run registry.k8s.io/external-dns/external-dns:v0.x.0 --versionscripts/version-updater.sh to update the image tag used in the kustomization.yaml and in documentation.The chart needs to be released in response to an ExternalDNS image release or on an as-needed basis; this should be triggered by an issue to release the chart.
appVersion, agreed on chart release version in version and annotations showing the changes