Skip to content
Romain Dorgueil edited this page Oct 21, 2017 · 12 revisions

For now, reference at http://rdc.li/r

Requirements

Release management in bonobo requires the following additional requirements

pip install -U pip wheel twine git-semver edgy-project

Maintenance Release

Maintenance releases are patch-level versions (x.y.*) and only contains:

  • Bugfixes
  • Dependencies frozen versions number updates (keeping same wide requirement)
# dependencies...
rm requirements*.txt && edgy-project update

# merge upstream
git fetch upstream
git merge upstream/master

Then use http://rdc.li/r to make the release.

Changelog help:

git diff 0.3.0.. -- requirements* | grep '^+' | grep -v '^+++' | sort -u | sed 's/^+/ * /g'

Once the release is made, a few additional steps are required:

Build public docker images:

python -m bonobo_docker build --no-cache --version $VERSION --push

Or from BDK:

VERSION=`cd bonobo; python setup.py --version`
python -m bonobo_docker build --no-cache --version $VERSION --push

Forth-port maintenance to current development branch:

git checkout develop
git merge master
# ... resolve eventual conflicts
edgy-project update
git commit
git push

Then pull-request, wait for continuous integration, merge.

TODO: REWRITE EVERYTHING BELOW THIS LINE AND REMOVE FROM PROJECT DOC

Minor release

How to make a minor or major release?

Releases above patch level are more complex, because we did not find a way not to hardcode the version number in a bunch of files, and because a few dependant services (source control, continuous integration, code coverage, documentation builder ...) also depends on version numbers.

Checklist:

  • Files
  • Github

Recipes

Get current minor:

git semver | python -c 'import sys; print(".".join(sys.stdin.read().strip().split(".")[0:2]))'

Open git with all files containing current minor:

ack `git semver | python -c 'import sys; print("\\\\.".join(sys.stdin.read().strip().split(".")[0:2]))'` | vim -