Skip to content
Jack Gerrits edited this page May 4, 2021 · 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. 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/72409

Java

See here

C#

TODO

Docker image

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

Clone this wiki locally