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¶
Pull and check dependencies are there.
git pull --tags
make install-dev
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
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
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
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.
Add to git
poetry run make preqa
git add docs/reference
git add -p
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
Create the git release
git commit -m "release: $VERSION"
Tag and push
git tag -am "release: $VERSION" $VERSION
git push origin `git rev-parse --abbrev-ref HEAD` --tags