The release scripts require the following tools installed on the host:
Create a branch, update version, and add release notes by running make-branch
./script/release/make-branch $VERSION [$BASE_VERSION]
$BASE_VERSION will default to master. Use the last version tag for a bug fix
release.
As part of this script you'll be asked to:
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.
Almost every feature enhancement should be mentioned, with the most visible/exciting ones first. Use descriptive sentences and give context where appropriate.
Bug fixes are worth mentioning if it's likely that they've affected lots of people, or if they were regressions in the previous version.
Improvements to the code are not worth mentioning.
Check out the bump branch and run the cherry pick script
git checkout bump-$VERSION
./script/release/cherry-pick-pr $PR_NUMBER
When you are done cherry-picking branches move the bump version commit to HEAD
./script/release/rebase-bump-commit
git push --force $USERNAME bump-$VERSION
Check out the bump branch and run the build-binaries script
git checkout bump-$VERSION
./script/release/build-binaries
When prompted build the non-linux binaries and test them.
Build the Mac binary in a Mountain Lion VM:
script/setup/osx
script/build/osx
Download the windows binary from AppVeyor
Draft a release from the tag on GitHub (the script will open the window for you)
In the "Tag version" dropdown, select the tag you just pushed.
Paste in installation instructions and release notes. Here's an example - change the Compose version and Docker version as appropriate:
Firstly, note that Compose 1.5.0 requires Docker 1.8.0 or later.
Secondly, if you're a Mac user, the **[Docker Toolbox](https://www.docker.com/toolbox)** will install Compose 1.5.0 for you, alongside the latest versions of the Docker Engine, Machine and Kitematic.
Otherwise, you can use the usual commands to install/upgrade. Either download the binary:
curl -L https://github.com/docker/compose/releases/download/1.5.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or install the PyPi package:
pip install -U docker-compose==1.5.0
Here's what's new:
...release notes go here...
Attach the binaries and script/run/run.sh
Add "Thanks" with a list of contributors. The contributor list can be generated
by running ./script/release/contributors.
If everything looks good, it's time to push the release.
./script/release/push-release
Publish the release on GitHub.
Check that all the 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.