-
Notifications
You must be signed in to change notification settings - Fork 2k
Closed
Labels
domain: releasingAnything related to releasing VectorAnything related to releasing Vector
Description
Setup and Automation
Note the preparation steps are now automated. First, alter/create release.env
export NEW_VECTOR_VERSION=0.49.0
export NEW_VRL_VERSION=0.26.0
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}"and then source it by running source ./release.env
The week before the release
1. Manual Steps
- Cut a new release of VRL if needed
- VRL release steps: https://github.com/vectordotdev/vrl/blob/main/release/README.md
2. Automated Steps
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)
- Copy VRL changelogs from the VRL version in the last Vector release as a new changelog entry
- 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
3. Manual Steps
- 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
- Add description key to the generated cue file with a description of the release (see
- Check for any outstanding deprecation actions in DEPRECATIONS.md and
take them (or have someone help you take them) - PR review & approval
On the day of release
- 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 (
website/cue/reference/releases/0.XX.Y.cue) matches current date.
- Squash the release preparation commits (but not the cherry-picked commits!) to a single
- 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.
- The deployment is done by Amplify. You can see
-
- 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
Metadata
Metadata
Assignees
Labels
domain: releasingAnything related to releasing VectorAnything related to releasing Vector