Attention

This is the documentation for HARP Proxy, actually published as an early preview. Both the software and documentation are a work in progress, and although we already use it on various production servers, they may contain inaccuracies, typographical errors, huge mistakes and empty pages. We work hard to eradicate all mistakes and implement stuff, but it is a long and tedious process. We appreciate your patience and understanding. Of course, any help will be greatly appreciated.

Releasing a new source version

  1. Pull and check dependencies are there.

git pull --tags
make install-dev
  1. Generate next version number

poetry version <patch|minor|major|prepatch|preminor|premajor|prerelease>
# ... or edit the version in pyproject.toml
export VERSION=`poetry version --short`
export OLD_VERSION=`git describe --tags --abbrev=0`
echo New version: $VERSION - Old version: $OLD_VERSION
  1. Update version numbers in other project files…

gsed -i -e "s/^__version__ = .*/__version__ = \"$VERSION\"/" harp/__init__.py
gsed -i -e "s/^appVersion: .*/appVersion: \"$VERSION\"/" misc/helm/charts/harp-proxy/Chart.yaml
  1. Generate a changelog…

git log --oneline --no-merges --pretty=format:"* %s (%an)" $OLD_VERSION.. > docs/contribute/changelogs/$VERSION.rst
git add docs/contribute/changelogs/$VERSION.rst
  1. Reboot computer (yes, we’ll get better but that’s the easiest way to have reproductible benchmarks for now) and run the benchmarks on new version

poetry run make benchmark-save

Todo

use poetry version for benchmark save ?

Warning

benchmarks are broken for now, but we’ll re-add it soon.

  • Edit the changelog index (docs/contribute/changelogs/index.rst) to add the new version (title, date).

  • Add a title to the new changelog file.

  • Add the performance graphs to the release note.

  1. Add to git

poetry run make preqa
git add docs/reference
git add -p
  1. Run a full test suite again (todo: from a clean virtualenv)

Todo

  • This should be done from a clean virtualenv, but it’s not yet the case (mitigated for now by using a clean git worktree on each release, but this is undocumented for now).

Git add is there to check nothing was modified by QA suite.

poetry run make qa
git add -p
  1. Create the git release

git commit -m "release: $VERSION"
  1. Tag and push

git tag -am "release: $VERSION" $VERSION
git push origin `git rev-parse --abbrev-ref HEAD` --tags