Skip to content
Jack Gerrits edited this page Jan 28, 2022 · 29 revisions

Requirements

  1. No warnings emitted when built
  2. Consistent formatting - Enforced by CI
  3. No valgrind errors - Enforced by CI

Process

  1. Update version.txt with new version number (Check for any other places in the repo that may reference the version number)
  2. Commit and push the version number update and PR to master branch
  3. Use GitHub UI to draft a new release
    • Input the version number in version.txt into the Tag version field
    • Doing it this way ensures there is a single linear history of releases

Generating changelist

  1. Clone: https://github.com/jackgerrits/git-changelog-generator
  2. Install dependencies: python3 -m pip install -r requirements.txt
  3. Run tool:
NEW_VERSION=8.10.0
PREV_VERSION=8.9.0
GIT_REV_RANGE=${PREV_VERSION}..HEAD
VW_REPO_DIR=/path/to/vowpal_wabbit/
VW_PR_URL="https://github.com/VowpalWabbit/vowpal_wabbit/pull/"

python3 git-changelog-generator.py \
    --file example-changelog-semantic_commits.template.md \
    --range ${GIT_REV_RANGE} \ 
    --dir ${VW_REPO_DIR} \
    --additional_data github_pr_url=${VW_PR_URL} \
    --additional_data version=${NEW_VERSION} > changelist.md

Python

See here

Homebrew

See sample PR https://github.com/Homebrew/homebrew-core/pull/81257

Java

See here

C#

  1. Trigger a build on the "Windows Official" pipeline against the release tag
  2. Trigger a release on the Windows-Official-NuGet-Public release pipeline (it should automatically pick up the latest generated artifact from the build pipeline in (1))

Docker image

https://github.com/vowpalwabbit/docker-images#release-steps

Clone this wiki locally