Skip to content

Vector 0.49.0 release #23525

@pront

Description

@pront

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

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 master
    • git 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-cue to 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

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
  • 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.
  • 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
  • Reset the website branch to the HEAD of the release branch to update https://vector.dev
  • Release Linux packages. See vector-release usage.
    • 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-stable job.
  • Release updated Helm chart. See releasing Helm chart.
  • Once Helm chart is released, updated Vector manifests
    • Run cargo vdev build manifests and open a PR with changes
  • 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, to master
    • Bump the release number in the Cargo.toml on master to the next minor release.
    • Also, update Cargo.lock with: cargo update -p vector
    • If there is a VRL version update, revert it and make it track the git main branch and then run cargo update -p vrl.
  • Kick-off post-mortems for any regressions resolved by the release

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain: releasingAnything related to releasing Vector

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions