3.3 KiB
Building a Compose release
To get started with a new release
-
Create a
bump-$VERSIONbranch off master:git checkout -b bump-$VERSION master -
Merge in the
releasebranch on the upstream repo, discarding its tree entirely:git fetch origin git merge --strategy=ours origin/release -
Update the version in
docs/install.mdandcompose/__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
releasebranch on the upstream repo, not against master.
When a PR is merged into master that we want in the release
-
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
To release a version (whether RC or stable)
-
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 git@github.com: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 maintainers@dockerproject.org and engineering@docker.com about the new release.
If it’s a stable release (not an RC)
-
Merge the bump PR.
-
Make sure
origin/releaseis updated locally:git fetch origin -
Update the
docsbranch on the upstream repo:git push git@github.com: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.
If it’s a minor release (1.x.0), rather than a patch release (1.x.y)
-
Open a PR against
masterto:- update
CHANGELOG.mdto bring it in line withrelease - bump the version in
compose/__init__.pyto the next minor version number withdevappended. For example, if you just released1.4.0, update it to1.5.0dev.
- update
-
Get the PR merged.
Finally
- Celebrate, however you’d like.