mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #10954 from icecrime/update_release_checklist
Update RELEASE-CHECKLIST.md
This commit is contained in:
commit
83bf0ac96d
1 changed files with 97 additions and 30 deletions
|
@ -126,8 +126,12 @@ a count, add a simple `| wc -l`.
|
||||||
|
|
||||||
### 3. Change the contents of the VERSION file
|
### 3. Change the contents of the VERSION file
|
||||||
|
|
||||||
|
Before the big thing, you'll want to make successive release candidates and get
|
||||||
|
people to test. The release candidate number `N` should be part of the version:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
echo ${VERSION#v} > VERSION
|
export RC_VERSION=${VERSION}-rcN
|
||||||
|
echo ${RC_VERSION#v} > VERSION
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Test the docs
|
### 4. Test the docs
|
||||||
|
@ -162,11 +166,10 @@ That last command will give you the proper link to visit to ensure that you
|
||||||
open the PR against the "release" branch instead of accidentally against
|
open the PR against the "release" branch instead of accidentally against
|
||||||
"master" (like so many brave souls before you already have).
|
"master" (like so many brave souls before you already have).
|
||||||
|
|
||||||
### 6. Get 2 other maintainers to validate the pull request
|
### 6. Publish release candidate binaries
|
||||||
|
|
||||||
### 7. Publish binaries
|
To run this you will need access to the release credentials. Get them from the
|
||||||
|
Core maintainers.
|
||||||
To run this you will need access to the release credentials. Get them from the Core maintainers.
|
|
||||||
|
|
||||||
Replace "..." with the respective credentials:
|
Replace "..." with the respective credentials:
|
||||||
|
|
||||||
|
@ -182,17 +185,23 @@ docker run \
|
||||||
hack/release.sh
|
hack/release.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
It will run the test suite, build the binaries and packages,
|
It will run the test suite, build the binaries and packages, and upload to the
|
||||||
and upload to the specified bucket (you should use test.docker.com for
|
specified bucket, so this is a good time to verify that you're running against
|
||||||
general testing, and once everything is fine, switch to get.docker.com as
|
**test**.docker.com.
|
||||||
noted below).
|
|
||||||
|
|
||||||
After the binaries and packages are uploaded to test.docker.com, make sure
|
After the binaries and packages are uploaded to test.docker.com, make sure
|
||||||
they get tested in both Ubuntu and Debian for any obvious installation
|
they get tested in both Ubuntu and Debian for any obvious installation
|
||||||
issues or runtime issues.
|
issues or runtime issues.
|
||||||
|
|
||||||
Announcing on IRC in both `#docker` and `#docker-dev` is a great way to get
|
If everything looks good, it's time to create a git tag for this candidate:
|
||||||
help testing! An easy way to get some useful links for sharing:
|
|
||||||
|
```bash
|
||||||
|
git tag -a $RC_VERSION -m $RC_VERSION bump_$VERSION
|
||||||
|
git push origin $RC_VERSION
|
||||||
|
```
|
||||||
|
|
||||||
|
Announcing on multiple medias is the best way to get some help testing! An easy
|
||||||
|
way to get some useful links for sharing:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
echo "Ubuntu/Debian: https://test.docker.com/ubuntu or curl -sSL https://test.docker.com/ | sh"
|
echo "Ubuntu/Debian: https://test.docker.com/ubuntu or curl -sSL https://test.docker.com/ | sh"
|
||||||
|
@ -202,21 +211,15 @@ echo "Darwin/OSX 32bit client binary: https://test.docker.com/builds/Darwin/i386
|
||||||
echo "Linux 64bit tgz: https://test.docker.com/builds/Linux/x86_64/docker-${VERSION#v}.tgz"
|
echo "Linux 64bit tgz: https://test.docker.com/builds/Linux/x86_64/docker-${VERSION#v}.tgz"
|
||||||
```
|
```
|
||||||
|
|
||||||
Once they're tested and reasonably believed to be working, run against
|
We recommend announcing the release candidate on:
|
||||||
get.docker.com:
|
|
||||||
|
|
||||||
```bash
|
- IRC on #docker, #docker-dev, #docker-maintainers
|
||||||
docker run \
|
- In a comment on the pull request to notify subscribed people on GitHub
|
||||||
-e AWS_S3_BUCKET=get.docker.com \
|
- The [docker-dev](https://groups.google.com/forum/#!forum/docker-dev) group
|
||||||
-e AWS_ACCESS_KEY="..." \
|
- The [docker-maintainers](https://groups.google.com/a/dockerproject.org/forum/#!forum/maintainers) group
|
||||||
-e AWS_SECRET_KEY="..." \
|
- Any social media that can get bring some attention to the release cabdidate
|
||||||
-e GPG_PASSPHRASE="..." \
|
|
||||||
-i -t --privileged \
|
|
||||||
docker \
|
|
||||||
hack/release.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### 8. Breakathon
|
### 7. Iterate on successive release candidates
|
||||||
|
|
||||||
Spend several days along with the community explicitly investing time and
|
Spend several days along with the community explicitly investing time and
|
||||||
resources to try and break Docker in every possible way, documenting any
|
resources to try and break Docker in every possible way, documenting any
|
||||||
|
@ -232,6 +235,74 @@ by the book.
|
||||||
Any issues found may still remain issues for this release, but they should be
|
Any issues found may still remain issues for this release, but they should be
|
||||||
documented and give appropriate warnings.
|
documented and give appropriate warnings.
|
||||||
|
|
||||||
|
During this phase, the `bump_$VERSION` branch will keep evolving as you will
|
||||||
|
produce new release candidates. The frequency of new candidates is up to the
|
||||||
|
release manager: use your best judgement taking into account the severity of
|
||||||
|
reported issues, testers availability, and time to scheduled release date.
|
||||||
|
|
||||||
|
Each time you'll want to produce a new release candidate, you will start by
|
||||||
|
adding commits to the branch, usually by cherry-picking from master:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git cherry-pick -x -m0 <commit_id>
|
||||||
|
```
|
||||||
|
|
||||||
|
You want your "bump commit" (the one that updates the CHANGELOG and VERSION
|
||||||
|
files) to remain on top, so you'll have to `git rebase -i` to bring it back up.
|
||||||
|
|
||||||
|
Now that your bump commit is back on top, you will need to update the CHANGELOG
|
||||||
|
file (if appropriate for this particular release candidate), and update the
|
||||||
|
VERSION file to increment the RC number:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export RC_VERSION=$VERSION-rcN
|
||||||
|
echo $RC_VERSION > VERSION
|
||||||
|
```
|
||||||
|
|
||||||
|
You can now amend your last commit and update the bump branch:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git commit --amend
|
||||||
|
git push -f $GITHUBUSER bump_$VERSION
|
||||||
|
```
|
||||||
|
|
||||||
|
Repeat step 6 to tag the code, publish new binaries, announce availability, and
|
||||||
|
get help testing.
|
||||||
|
|
||||||
|
### 8. Finalize the bump branch
|
||||||
|
|
||||||
|
When you're happy with the quality of a release candidate, you can move on and
|
||||||
|
create the real thing.
|
||||||
|
|
||||||
|
You will first have to amend the "bump commit" to drop the release candidate
|
||||||
|
suffix in the VERSION file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo $VERSION > VERSION
|
||||||
|
git add VERSION
|
||||||
|
git commit --amend
|
||||||
|
```
|
||||||
|
|
||||||
|
You will then repeat step 6 to publish the binaries to test
|
||||||
|
|
||||||
|
### 9. Get 2 other maintainers to validate the pull request
|
||||||
|
|
||||||
|
### 10. Publish final binaries
|
||||||
|
|
||||||
|
Once they're tested and reasonably believed to be working, run against
|
||||||
|
get.docker.com:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run \
|
||||||
|
-e AWS_S3_BUCKET=get.docker.com \
|
||||||
|
-e AWS_ACCESS_KEY="..." \
|
||||||
|
-e AWS_SECRET_KEY="..." \
|
||||||
|
-e GPG_PASSPHRASE="..." \
|
||||||
|
-i -t --privileged \
|
||||||
|
docker \
|
||||||
|
hack/release.sh
|
||||||
|
```
|
||||||
|
|
||||||
### 9. Apply tag
|
### 9. Apply tag
|
||||||
|
|
||||||
It's very important that we don't make the tag until after the official
|
It's very important that we don't make the tag until after the official
|
||||||
|
@ -279,17 +350,13 @@ distributed CDN system) is flushed. The `make docs-release` command will do this
|
||||||
_if_ the `DISTRIBUTION_ID` is set correctly - this will take at least 15 minutes to run
|
_if_ the `DISTRIBUTION_ID` is set correctly - this will take at least 15 minutes to run
|
||||||
and you can check its progress with the CDN Cloudfront Chrome addin.
|
and you can check its progress with the CDN Cloudfront Chrome addin.
|
||||||
|
|
||||||
### 12. Create a new pull request to merge release back into master
|
### 12. Create a new pull request to merge your bump commit back into master
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git checkout master
|
git checkout master
|
||||||
git fetch
|
git fetch
|
||||||
git reset --hard origin/master
|
git reset --hard origin/master
|
||||||
git checkout -b merge_release_$VERSION
|
git cherry-pick $VERSION
|
||||||
git merge origin/release
|
|
||||||
echo ${VERSION#v}-dev > VERSION
|
|
||||||
git add VERSION
|
|
||||||
git commit -m "Change version to $(cat VERSION)"
|
|
||||||
git push $GITHUBUSER merge_release_$VERSION
|
git push $GITHUBUSER merge_release_$VERSION
|
||||||
echo "https://github.com/$GITHUBUSER/docker/compare/docker:master...$GITHUBUSER:merge_release_$VERSION?expand=1"
|
echo "https://github.com/$GITHUBUSER/docker/compare/docker:master...$GITHUBUSER:merge_release_$VERSION?expand=1"
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in a new issue