Create a bump-$VERSION branch off master:
git checkout -b bump-$VERSION master
Merge in the release branch on the upstream repo, discarding its tree entirely:
git fetch origin
git merge --strategy=ours origin/release
Update the version in docs/install.md and compose/__init__.py.
If the next release will be an RC, append rcN, e.g. 1.4.0rc1.
Write release notes in CHANGES.md.
Add a bump commit:
git commit -am "Bump $VERSION"
Push the bump branch to your fork:
git push --set-upstream $USERNAME bump-$VERSION
Open a PR from the bump branch against the release branch on the upstream repo, not against master.
Check out the bump branch:
git checkout bump-$VERSION
Cherry-pick the merge commit, fixing any conflicts if necessary:
git cherry-pick -xm1 $MERGE_COMMIT_HASH
Add a signoff (it’s missing from merge commits):
git commit --amend --signoff
Move the bump commit back to the tip of the branch:
git rebase --interactive $PARENT_OF_BUMP_COMMIT
Force-push the bump branch to your fork:
git push --force $USERNAME bump-$VERSION
Check that CI is passing on the bump PR.
Check out the bump branch:
git checkout bump-$VERSION
Build the Linux binary:
script/build-linux
Build the Mac binary in a Mountain Lion VM:
script/prepare-osx
script/build-osx
Test the binaries and/or get some other people to test them.
Create a tag:
TAG=$VERSION # or $VERSION-rcN, if it's an RC
git tag $TAG
Push the tag to the upstream repo:
git push [email protected]:docker/compose.git $TAG
Create a release from the tag on GitHub.
Paste in installation instructions and release notes.
Attach the binaries.
Don’t publish it just yet!
Upload the latest version to PyPi:
python setup.py sdist upload
Check that the pip package installs and runs (best done in a virtualenv):
pip install -U docker-compose==$TAG
docker-compose version
Publish the release on GitHub.
Check that both binaries download (following the install instructions) and run.
Email [email protected] and [email protected] about the new release.
Merge the bump PR.
Make sure origin/release is updated locally:
git fetch origin
Update the docs branch on the upstream repo:
git push [email protected]:docker/compose.git origin/release:docs
Let the docs team know that it’s been updated so they can publish it.
Close the release’s milestone.
Open a PR against master to:
CHANGELOG.md to bring it in line with releasecompose/__init__.py to the next minor version number with dev appended. For example, if you just released 1.4.0, update it to 1.5.0dev.Get the PR merged.