0. Run full test suite in master. Continue if all tests passed.

1. If the branching point is master run devscripts/branch $NEW_BRANCH. If
   it's not master run devscripts/branch $NEW_BRANCH $TREEISH, where
   $TREEISH is a branch, a commit id or a tag.

1a. The script creates a new branch and calls editor; edit README.rst,
    __version__.py and News.rst in the branch - set version. In
    setup.cfg in the branch edit section [publish] - uncomment doc-dest
    for stable branch. In setup.py in the branch edit URL (remove
    '/devel') and download URLs. In setup.py and DeveloperGuide.rst edit
    Travis CI build status image URL (change branch). Commit.

1b. If the branching point was master the script checks out master and
    calls editor again; edit README.rst, __version__.py and News.rst in
    master - set version for the next release. In setup.py edit
    "Development Status" in trove classifiers. Commit.

1c. The script updates versions in ANNOUNCE.rst.

2. To deprecate a version of Python edit files ANNOUNCE.rst, README.rst,
   devscripts/release, devscripts/setup, docs/News.rst, docs/SQLObject.rst,
   docs/TODO.rst, requirements.txt, setup.py, sqlobject/main.py, tox.ini in
   master. Edit metadata at SourceForge.

3. Do a null-merge from the new branch to the higher branch or the
   master.

4. Run devscripts/push-all to push all branches and tags to the public
   repositories.
