| name | Vector minor release |
|---|---|
| about | Use this template for a new minor release. |
| title | Vector [version] release |
| labels | domain: releasing |
Note the preparation steps are now automated. First, alter/create release.env
export NEW_VECTOR_VERSION=<new Vector version> # replace this with the actual new version
export MINOR_VERSION=$(echo "NEW_VECTOR_VERSION" | cut -d. -f2)
export PREP_BRANCH=prepare-v-0-"${MINOR_VERSION}"-"${NEW_VECTOR_VERSION}"-website
export RELEASE_BRANCH=v0."${MINOR_VERSION}"
export NEW_VRL_VERSION=<new VRL version> # replace this with the actual new VRL versionand then source it by running source ./release.env
- Cut a new release of VRL if needed
- VRL release steps: https://github.com/vectordotdev/vrl/blob/main/release/README.md
Run the following:
cargo vdev release prepare --version "${NEW_VECTOR_VERSION}" --vrl-version "${NEW_VRL_VERSION}"Automated steps include:
- Create a new release branch from master to freeze commits
git fetch && git checkout origin/master && git checkout -b "{RELEASE_BRANCH}" && git push -u
- Create a new release preparation branch from
mastergit checkout -b "${PREP_BRANCH}" && git push -u
- Pin VRL to latest released version rather than
main - Check if there is a newer version of Alpine or
Debian available to update the release images in
distribution/docker/. Update if so. - Run
cargo vdev build release-cueto generate a new cue file for the release- Copy VRL changelogs from the VRL version in the last Vector release as a new changelog entry (example)
- Update version number in
website/cue/reference/administration/interfaces/kubectl.cue - Update version number in
distribution/install.sh - Add new version to
website/cue/reference/versions.cue - Create new release md file by copying an existing one in
./website/content/en/releases/and updating version number - Commit these changes
- Open PR against the release branch (
"${RELEASE_BRANCH}") for review
- Edit
website/cue/reference/releases/"${NEW_VECTOR_VERSION}".cue- Add description key to the generated cue file with a description of the release (see previous releases for examples).
- Ensure any breaking changes are highlighted in the release upgrade guide
- Ensure any deprecations are highlighted in the release upgrade guide
- Review generated changelog entries to ensure they are understandable to end-users
- Check for any outstanding deprecation actions in DEPRECATIONS.md and take them (or have someone help you take them)
- PR review & approval
- Rebase the release preparation branch on the release branch
- Squash the release preparation commits (but not the cherry-picked commits!) to a single commit. This makes it easier to cherry-pick to master after the release.
- Ensure release date in cue matches current date.
- Merge release preparation branch into the release branch
git switch "${RELEASE_BRANCH}" && git merge --ff-only "${PREP_BRANCH}"
- Tag new release
-
git tag v"${NEW_VECTOR_VERSION}" -a -m v"${NEW_VECTOR_VERSION}" -
git push origin v"${NEW_VECTOR_VERSION}"
-
- Wait for release workflow to complete
- Discoverable via release.yml
- Reset the
websitebranch to theHEADof the release branch to update https://vector.dev-
git switch website && git reset --hard origin/"${RELEASE_BRANCH}" && git push - Confirm that the release changelog was published to https://vector.dev/releases/
- The deployment is done by Amplify. You can see the deployment logs here.
-
- Release Linux packages. See
vector-releaseusage.- Note: the pipeline inputs are the version number
v"${NEW_VECTOR_VERSION}"and a personal GitHub token. - Manually trigger the
trigger-package-release-pipeline-prod-stablejob.
- Note: the pipeline inputs are the version number
- Release updated Helm chart. See releasing Helm chart.
- Once Helm chart is released, updated Vector manifests
- Run
cargo vdev build manifestsand open a PR with changes
- Run
- Add docker images to https://github.com/DataDog/images to have them available internally. (Example PR)
- Create a new PR with title starting as
chore(releasing):- Cherry-pick any release commits from the release branch that are not on
master, tomaster - Bump the release number in the
Cargo.tomlon master to the next minor release. - Also, update
Cargo.lockwith:cargo update -p vector - If there is a VRL version update, revert it and make it track the git
mainbranch and then runcargo update -p vrl.
- Cherry-pick any release commits from the release branch that are not on
- Kick-off post-mortems for any regressions resolved by the release