-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Setup and Automation
Note the preparation steps are now automated. First, alter/create release.env
#!/usr/bin/env bash
export NEW_VECTOR_VERSION=0.52.0 # replace this with the actual new version (e.g.: 0.50.0)
export NEW_VRL_VERSION=0.29.0 # replace this with the actual new VRL version (e.g.: 0.30.0)
export MINOR_VERSION=$(echo "$NEW_VECTOR_VERSION" | cut -d. -f2)
export PREP_BRANCH=prepare-v-"${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.
- Ensure the date matches the scheduled release date.
- Add a link to pending deprecation items from DEPRECATIONS.md.
- Add description key to the generated cue file with a description of the release (see
- PR review & approval.
On the day of release
-
Make sure the release branch is in sync with origin/master and has only one squashed commit with all commits from the prepare branch. If you made a PR from the prepare branch into the release branch this should already be the case.
-
git checkout "${RELEASE_BRANCH}" -
git show --stat HEAD- This should show the squashed prepare commit. - Ensure release date in
website/cue/reference/releases/0.XX.Y.cuematches current date.- If this needs to be updated commit and squash it in the release branch.
- Follow these steps if the release branch needs to be updated
- 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.
- 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}"
- Rebase the release preparation branch on the release 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/
- Refer to the internal releasing doc to monitor the deployment.
-
-
Release Linux packages. Refer to the internal releasing doc.
-
Release updated Helm chart. See releasing Helm chart.
-
Create internal Docker images. Refer to the internal releasing doc.
-
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. - Run
cargo vdev build manifestsand commit changes. - 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.