This hasn't been the way to release Docker for the past year so let's
just remove them altogether
Signed-off-by: Eli Uriegas <eli.uriegas@docker.com>
| ... | ... |
@@ -20,14 +20,6 @@ |
| 20 | 20 |
# # Run tests e.g. integration, py |
| 21 | 21 |
# # hack/make.sh binary test-integration test-docker-py |
| 22 | 22 |
# |
| 23 |
-# # Publish a release: |
|
| 24 |
-# docker run --privileged \ |
|
| 25 |
-# -e AWS_S3_BUCKET=baz \ |
|
| 26 |
-# -e AWS_ACCESS_KEY=foo \ |
|
| 27 |
-# -e AWS_SECRET_KEY=bar \ |
|
| 28 |
-# -e GPG_PASSPHRASE=gloubiboulga \ |
|
| 29 |
-# docker hack/release.sh |
|
| 30 |
-# |
|
| 31 | 23 |
# Note: AppArmor used to mess with privileged mode, but this is no longer |
| 32 | 24 |
# the case. Therefore, you don't have to disable it anymore. |
| 33 | 25 |
# |
| ... | ... |
@@ -11,14 +11,6 @@ |
| 11 | 11 |
# # Run the test suite: |
| 12 | 12 |
# docker run --privileged docker hack/make.sh test-unit test-integration test-docker-py |
| 13 | 13 |
# |
| 14 |
-# # Publish a release: |
|
| 15 |
-# docker run --privileged \ |
|
| 16 |
-# -e AWS_S3_BUCKET=baz \ |
|
| 17 |
-# -e AWS_ACCESS_KEY=foo \ |
|
| 18 |
-# -e AWS_SECRET_KEY=bar \ |
|
| 19 |
-# -e GPG_PASSPHRASE=gloubiboulga \ |
|
| 20 |
-# docker hack/release.sh |
|
| 21 |
-# |
|
| 22 | 14 |
# Note: AppArmor used to mess with privileged mode, but this is no longer |
| 23 | 15 |
# the case. Therefore, you don't have to disable it anymore. |
| 24 | 16 |
# |
| ... | ... |
@@ -49,11 +49,6 @@ An example referenced from [Run targets inside a development container](https:// |
| 49 | 49 |
refer to |
| 50 | 50 |
[Run tests and test documentation](https://docs.docker.com/opensource/project/test-and-docs/) |
| 51 | 51 |
|
| 52 |
-## Release (release.sh) |
|
| 53 |
- |
|
| 54 |
-Releases any bundles built by `make` on a public AWS S3 bucket. |
|
| 55 |
-For information regarding configuration, please view `release.sh`. |
|
| 56 |
- |
|
| 57 | 52 |
## Vendor (vendor.sh) |
| 58 | 53 |
|
| 59 | 54 |
A shell script that is a wrapper around Vndr. For information on how to use |
| 60 | 55 |
deleted file mode 100644 |
| ... | ... |
@@ -1,519 +0,0 @@ |
| 1 |
-# Release Checklist |
|
| 2 |
-## A maintainer's guide to releasing Docker |
|
| 3 |
- |
|
| 4 |
-So you're in charge of a Docker release? Cool. Here's what to do. |
|
| 5 |
- |
|
| 6 |
-If your experience deviates from this document, please document the changes |
|
| 7 |
-to keep it up-to-date. |
|
| 8 |
- |
|
| 9 |
-It is important to note that this document assumes that the git remote in your |
|
| 10 |
-repository that corresponds to "https://github.com/docker/docker" is named |
|
| 11 |
-"origin". If yours is not (for example, if you've chosen to name it "upstream" |
|
| 12 |
-or something similar instead), be sure to adjust the listed snippets for your |
|
| 13 |
-local environment accordingly. If you are not sure what your upstream remote is |
|
| 14 |
-named, use a command like `git remote -v` to find out. |
|
| 15 |
- |
|
| 16 |
-If you don't have an upstream remote, you can add one easily using something |
|
| 17 |
-like: |
|
| 18 |
- |
|
| 19 |
-```bash |
|
| 20 |
-export GITHUBUSER="YOUR_GITHUB_USER" |
|
| 21 |
-git remote add origin https://github.com/docker/docker.git |
|
| 22 |
-git remote add $GITHUBUSER git@github.com:$GITHUBUSER/docker.git |
|
| 23 |
-``` |
|
| 24 |
- |
|
| 25 |
-### 1. Pull from master and create a release branch |
|
| 26 |
- |
|
| 27 |
-All releases version numbers will be of the form: vX.Y.Z where X is the major |
|
| 28 |
-version number, Y is the minor version number and Z is the patch release version number. |
|
| 29 |
- |
|
| 30 |
-#### Major releases |
|
| 31 |
- |
|
| 32 |
-The release branch name is just vX.Y because it's going to be the basis for all .Z releases. |
|
| 33 |
- |
|
| 34 |
-```bash |
|
| 35 |
-export BASE=vX.Y |
|
| 36 |
-export VERSION=vX.Y.Z |
|
| 37 |
-git fetch origin |
|
| 38 |
-git checkout --track origin/master |
|
| 39 |
-git checkout -b release/$BASE |
|
| 40 |
-``` |
|
| 41 |
- |
|
| 42 |
-This new branch is going to be the base for the release. We need to push it to origin so we |
|
| 43 |
-can track the cherry-picked changes and the version bump: |
|
| 44 |
- |
|
| 45 |
-```bash |
|
| 46 |
-git push origin release/$BASE |
|
| 47 |
-``` |
|
| 48 |
- |
|
| 49 |
-When you have the major release branch in origin, we need to create the bump fork branch |
|
| 50 |
-that we'll push to our fork: |
|
| 51 |
- |
|
| 52 |
-```bash |
|
| 53 |
-git checkout -b bump_$VERSION |
|
| 54 |
-``` |
|
| 55 |
- |
|
| 56 |
-#### Patch releases |
|
| 57 |
- |
|
| 58 |
-If we have the release branch in origin, we can create the forked bump branch from it directly: |
|
| 59 |
- |
|
| 60 |
-```bash |
|
| 61 |
-export VERSION=vX.Y.Z |
|
| 62 |
-export PATCH=vX.Y.Z+1 |
|
| 63 |
-git fetch origin |
|
| 64 |
-git checkout --track origin/release/$BASE |
|
| 65 |
-git checkout -b bump_$PATCH |
|
| 66 |
-``` |
|
| 67 |
- |
|
| 68 |
-We cherry-pick only the commits we want into the bump branch: |
|
| 69 |
- |
|
| 70 |
-```bash |
|
| 71 |
-# get the commits ids we want to cherry-pick |
|
| 72 |
-git log |
|
| 73 |
-# cherry-pick the commits starting from the oldest one, without including merge commits |
|
| 74 |
-git cherry-pick -s -x <commit-id> |
|
| 75 |
-git cherry-pick -s -x <commit-id> |
|
| 76 |
-... |
|
| 77 |
-``` |
|
| 78 |
- |
|
| 79 |
-### 2. Update the VERSION files and API version on master |
|
| 80 |
- |
|
| 81 |
-We don't want to stop contributions to master just because we are releasing. |
|
| 82 |
-So, after the release branch is up, we bump the VERSION and API version to mark |
|
| 83 |
-the start of the "next" release. |
|
| 84 |
- |
|
| 85 |
-#### 2.1 Update the VERSION files |
|
| 86 |
- |
|
| 87 |
-Update the content of the `VERSION` file to be the next minor (incrementing Y) |
|
| 88 |
-and add the `-dev` suffix. For example, after the release branch for 1.5.0 is |
|
| 89 |
-created, the `VERSION` file gets updated to `1.6.0-dev` (as in "1.6.0 in the |
|
| 90 |
-making"). |
|
| 91 |
- |
|
| 92 |
-#### 2.2 Update API version on master |
|
| 93 |
- |
|
| 94 |
-We don't want API changes to go to the now frozen API version. Create a new |
|
| 95 |
-entry in `docs/reference/api/` by copying the latest and bumping the version |
|
| 96 |
-number (in both the file's name and content), and submit this in a PR against |
|
| 97 |
-master. |
|
| 98 |
- |
|
| 99 |
-### 3. Update CHANGELOG.md |
|
| 100 |
- |
|
| 101 |
-You can run this command for reference with git 2.0: |
|
| 102 |
- |
|
| 103 |
-```bash |
|
| 104 |
-git fetch --tags |
|
| 105 |
-LAST_VERSION=$(git tag -l --sort=-version:refname "v*" | grep -E 'v[0-9\.]+$' | head -1) |
|
| 106 |
-git log --stat $LAST_VERSION..bump_$VERSION |
|
| 107 |
-``` |
|
| 108 |
- |
|
| 109 |
-If you don't have git 2.0 but have a sort command that supports `-V`: |
|
| 110 |
-```bash |
|
| 111 |
-git fetch --tags |
|
| 112 |
-LAST_VERSION=$(git tag -l | grep -E 'v[0-9\.]+$' | sort -rV | head -1) |
|
| 113 |
-git log --stat $LAST_VERSION..bump_$VERSION |
|
| 114 |
-``` |
|
| 115 |
- |
|
| 116 |
-If releasing a major version (X or Y increased in vX.Y.Z), simply listing notable user-facing features is sufficient. |
|
| 117 |
-```markdown |
|
| 118 |
-#### Notable features since <last major version> |
|
| 119 |
-* New docker command to do something useful |
|
| 120 |
-* Engine API change (deprecating old version) |
|
| 121 |
-* Performance improvements in some usecases |
|
| 122 |
-* ... |
|
| 123 |
-``` |
|
| 124 |
- |
|
| 125 |
-For minor releases (only Z increases in vX.Y.Z), provide a list of user-facing changes. |
|
| 126 |
-Each change should be listed under a category heading formatted as `#### CATEGORY`. |
|
| 127 |
- |
|
| 128 |
-`CATEGORY` should describe which part of the project is affected. |
|
| 129 |
- Valid categories are: |
|
| 130 |
- * Builder |
|
| 131 |
- * Documentation |
|
| 132 |
- * Hack |
|
| 133 |
- * Packaging |
|
| 134 |
- * Engine API |
|
| 135 |
- * Runtime |
|
| 136 |
- * Other (please use this category sparingly) |
|
| 137 |
- |
|
| 138 |
-Each change should be formatted as `BULLET DESCRIPTION`, given: |
|
| 139 |
- |
|
| 140 |
-* BULLET: either `-`, `+` or `*`, to indicate a bugfix, new feature or |
|
| 141 |
- upgrade, respectively. |
|
| 142 |
- |
|
| 143 |
-* DESCRIPTION: a concise description of the change that is relevant to the |
|
| 144 |
- end-user, using the present tense. Changes should be described in terms |
|
| 145 |
- of how they affect the user, for example "Add new feature X which allows Y", |
|
| 146 |
- "Fix bug which caused X", "Increase performance of Y". |
|
| 147 |
- |
|
| 148 |
-EXAMPLES: |
|
| 149 |
- |
|
| 150 |
-```markdown |
|
| 151 |
-## 0.3.6 (1995-12-25) |
|
| 152 |
- |
|
| 153 |
-#### Builder |
|
| 154 |
- |
|
| 155 |
-+ 'docker build -t FOO .' applies the tag FOO to the newly built image |
|
| 156 |
- |
|
| 157 |
-#### Engine API |
|
| 158 |
- |
|
| 159 |
-- Fix a bug in the optional unix socket transport |
|
| 160 |
- |
|
| 161 |
-#### Runtime |
|
| 162 |
- |
|
| 163 |
-* Improve detection of kernel version |
|
| 164 |
-``` |
|
| 165 |
- |
|
| 166 |
-If you need a list of contributors between the last major release and the |
|
| 167 |
-current bump branch, use something like: |
|
| 168 |
-```bash |
|
| 169 |
-git log --format='%aN <%aE>' v0.7.0...bump_v0.8.0 | sort -uf |
|
| 170 |
-``` |
|
| 171 |
-Obviously, you'll need to adjust version numbers as necessary. If you just need |
|
| 172 |
-a count, add a simple `| wc -l`. |
|
| 173 |
- |
|
| 174 |
-### 4. Change the contents of the VERSION file |
|
| 175 |
- |
|
| 176 |
-Before the big thing, you'll want to make successive release candidates and get |
|
| 177 |
-people to test. The release candidate number `N` should be part of the version: |
|
| 178 |
- |
|
| 179 |
-```bash |
|
| 180 |
-export RC_VERSION=${VERSION}-rcN
|
|
| 181 |
-echo ${RC_VERSION#v} > VERSION
|
|
| 182 |
-``` |
|
| 183 |
- |
|
| 184 |
-### 5. Test the docs |
|
| 185 |
- |
|
| 186 |
-Make sure that your tree includes documentation for any modified or |
|
| 187 |
-new features, syntax or semantic changes. |
|
| 188 |
- |
|
| 189 |
-To test locally: |
|
| 190 |
- |
|
| 191 |
-```bash |
|
| 192 |
-make docs |
|
| 193 |
-``` |
|
| 194 |
- |
|
| 195 |
-To make a shared test at https://beta-docs.docker.io: |
|
| 196 |
- |
|
| 197 |
-(You will need the `awsconfig` file added to the `docs/` dir) |
|
| 198 |
- |
|
| 199 |
-```bash |
|
| 200 |
-make AWS_S3_BUCKET=beta-docs.docker.io BUILD_ROOT=yes docs-release |
|
| 201 |
-``` |
|
| 202 |
- |
|
| 203 |
-### 6. Commit and create a pull request to the "release" branch |
|
| 204 |
- |
|
| 205 |
-```bash |
|
| 206 |
-git add VERSION CHANGELOG.md |
|
| 207 |
-git commit -m "Bump version to $VERSION" |
|
| 208 |
-git push $GITHUBUSER bump_$VERSION |
|
| 209 |
-echo "https://github.com/$GITHUBUSER/docker/compare/docker:release/$BASE...$GITHUBUSER:bump_$VERSION?expand=1" |
|
| 210 |
-``` |
|
| 211 |
- |
|
| 212 |
-That last command will give you the proper link to visit to ensure that you |
|
| 213 |
-open the PR against the "release" branch instead of accidentally against |
|
| 214 |
-"master" (like so many brave souls before you already have). |
|
| 215 |
- |
|
| 216 |
-### 7. Create a PR to update the AUTHORS file for the release |
|
| 217 |
- |
|
| 218 |
-Update the AUTHORS file, by running the `hack/generate-authors.sh` on the |
|
| 219 |
-release branch. To prevent duplicate entries, you may need to update the |
|
| 220 |
-`.mailmap` file accordingly. |
|
| 221 |
- |
|
| 222 |
-### 8. Build release candidate rpms and debs |
|
| 223 |
- |
|
| 224 |
-**NOTE**: It will be a lot faster if you pass a different graphdriver with |
|
| 225 |
-`DOCKER_GRAPHDRIVER` than `vfs`. |
|
| 226 |
- |
|
| 227 |
-```bash |
|
| 228 |
-docker build -t docker . |
|
| 229 |
-docker run \ |
|
| 230 |
- --rm -t --privileged \ |
|
| 231 |
- -e DOCKER_GRAPHDRIVER=aufs \ |
|
| 232 |
- -v $(pwd)/bundles:/go/src/github.com/docker/docker/bundles \ |
|
| 233 |
- docker \ |
|
| 234 |
- hack/make.sh binary build-deb build-rpm |
|
| 235 |
-``` |
|
| 236 |
- |
|
| 237 |
-### 9. Publish release candidate rpms and debs |
|
| 238 |
- |
|
| 239 |
-With the rpms and debs you built from the last step you can release them on the |
|
| 240 |
-same server, or ideally, move them to a dedicated release box via scp into |
|
| 241 |
-another docker/docker directory in bundles. This next step assumes you have |
|
| 242 |
-a checkout of the docker source code at the same commit you used to build, with |
|
| 243 |
-the artifacts from the last step in `bundles`. |
|
| 244 |
- |
|
| 245 |
-**NOTE:** If you put a space before the command your `.bash_history` will not |
|
| 246 |
-save it. (for the `GPG_PASSPHRASE`). |
|
| 247 |
- |
|
| 248 |
-```bash |
|
| 249 |
-docker build -t docker . |
|
| 250 |
-docker run --rm -it --privileged \ |
|
| 251 |
- -v /volumes/repos:/volumes/repos \ |
|
| 252 |
- -v $(pwd)/bundles:/go/src/github.com/docker/docker/bundles \ |
|
| 253 |
- -v $HOME/.gnupg:/root/.gnupg \ |
|
| 254 |
- -e DOCKER_RELEASE_DIR=/volumes/repos \ |
|
| 255 |
- -e GPG_PASSPHRASE \ |
|
| 256 |
- -e KEEPBUNDLE=1 \ |
|
| 257 |
- docker \ |
|
| 258 |
- hack/make.sh release-deb release-rpm sign-repos generate-index-listing |
|
| 259 |
-``` |
|
| 260 |
- |
|
| 261 |
-### 10. Upload the changed repos to wherever you host |
|
| 262 |
- |
|
| 263 |
-For example, above we bind mounted `/volumes/repos` as the storage for |
|
| 264 |
-`DOCKER_RELEASE_DIR`. In this case `/volumes/repos/apt` can be synced with |
|
| 265 |
-a specific s3 bucket for the apt repo and `/volumes/repos/yum` can be synced with |
|
| 266 |
-a s3 bucket for the yum repo. |
|
| 267 |
- |
|
| 268 |
-### 11. Publish release candidate binaries |
|
| 269 |
- |
|
| 270 |
-To run this you will need access to the release credentials. Get them from the |
|
| 271 |
-Core maintainers. |
|
| 272 |
- |
|
| 273 |
-```bash |
|
| 274 |
-docker build -t docker . |
|
| 275 |
- |
|
| 276 |
-# static binaries are still pushed to s3 |
|
| 277 |
-docker run \ |
|
| 278 |
- -e AWS_S3_BUCKET=test.docker.com \ |
|
| 279 |
- -e AWS_ACCESS_KEY_ID \ |
|
| 280 |
- -e AWS_SECRET_ACCESS_KEY \ |
|
| 281 |
- -e AWS_DEFAULT_REGION \ |
|
| 282 |
- -i -t --privileged \ |
|
| 283 |
- docker \ |
|
| 284 |
- hack/release.sh |
|
| 285 |
-``` |
|
| 286 |
- |
|
| 287 |
-It will run the test suite, build the binaries and upload to the specified bucket, |
|
| 288 |
-so this is a good time to verify that you're running against **test**.docker.com. |
|
| 289 |
- |
|
| 290 |
-### 12. Purge the cache! |
|
| 291 |
- |
|
| 292 |
-After the binaries are uploaded to test.docker.com and the packages are on |
|
| 293 |
-apt.dockerproject.org and yum.dockerproject.org, make sure |
|
| 294 |
-they get tested in both Ubuntu and Debian for any obvious installation |
|
| 295 |
-issues or runtime issues. |
|
| 296 |
- |
|
| 297 |
-If everything looks good, it's time to create a git tag for this candidate: |
|
| 298 |
- |
|
| 299 |
-```bash |
|
| 300 |
-git tag -a $RC_VERSION -m $RC_VERSION bump_$VERSION |
|
| 301 |
-git push origin $RC_VERSION |
|
| 302 |
-``` |
|
| 303 |
- |
|
| 304 |
-Announcing on multiple medias is the best way to get some help testing! An easy |
|
| 305 |
-way to get some useful links for sharing: |
|
| 306 |
- |
|
| 307 |
-```bash |
|
| 308 |
-echo "Ubuntu/Debian: curl -sSL https://test.docker.com/ | sh" |
|
| 309 |
-echo "Linux 64bit binary: https://test.docker.com/builds/Linux/x86_64/docker-${VERSION#v}"
|
|
| 310 |
-echo "Darwin/OSX 64bit client binary: https://test.docker.com/builds/Darwin/x86_64/docker-${VERSION#v}"
|
|
| 311 |
-echo "Linux 64bit tgz: https://test.docker.com/builds/Linux/x86_64/docker-${VERSION#v}.tgz"
|
|
| 312 |
-echo "Windows 64bit client binary: https://test.docker.com/builds/Windows/x86_64/docker-${VERSION#v}.exe"
|
|
| 313 |
-echo "Windows 32bit client binary: https://test.docker.com/builds/Windows/i386/docker-${VERSION#v}.exe"
|
|
| 314 |
-``` |
|
| 315 |
-### 13. Announce the release candidate |
|
| 316 |
- |
|
| 317 |
-The release candidate should be announced on: |
|
| 318 |
- |
|
| 319 |
-- IRC on #docker, #docker-dev, #docker-maintainers |
|
| 320 |
-- In a comment on the pull request to notify subscribed people on GitHub |
|
| 321 |
-- The [docker-dev](https://groups.google.com/forum/#!forum/docker-dev) group |
|
| 322 |
-- The [docker-maintainers](https://groups.google.com/a/dockerproject.org/forum/#!forum/maintainers) group |
|
| 323 |
-- (Optional) Any social media that can bring some attention to the release candidate |
|
| 324 |
- |
|
| 325 |
-### 14. Iterate on successive release candidates |
|
| 326 |
- |
|
| 327 |
-Spend several days along with the community explicitly investing time and |
|
| 328 |
-resources to try and break Docker in every possible way, documenting any |
|
| 329 |
-findings pertinent to the release. This time should be spent testing and |
|
| 330 |
-finding ways in which the release might have caused various features or upgrade |
|
| 331 |
-environments to have issues, not coding. During this time, the release is in |
|
| 332 |
-code freeze, and any additional code changes will be pushed out to the next |
|
| 333 |
-release. |
|
| 334 |
- |
|
| 335 |
-It should include various levels of breaking Docker, beyond just using Docker |
|
| 336 |
-by the book. |
|
| 337 |
- |
|
| 338 |
-Any issues found may still remain issues for this release, but they should be |
|
| 339 |
-documented and give appropriate warnings. |
|
| 340 |
- |
|
| 341 |
-During this phase, the `bump_$VERSION` branch will keep evolving as you will |
|
| 342 |
-produce new release candidates. The frequency of new candidates is up to the |
|
| 343 |
-release manager: use your best judgement taking into account the severity of |
|
| 344 |
-reported issues, testers availability, and time to scheduled release date. |
|
| 345 |
- |
|
| 346 |
-Each time you'll want to produce a new release candidate, you will start by |
|
| 347 |
-adding commits to the branch, usually by cherry-picking from master: |
|
| 348 |
- |
|
| 349 |
-```bash |
|
| 350 |
-git cherry-pick -s -x -m0 <commit_id> |
|
| 351 |
-``` |
|
| 352 |
- |
|
| 353 |
-You want your "bump commit" (the one that updates the CHANGELOG and VERSION |
|
| 354 |
-files) to remain on top, so you'll have to `git rebase -i` to bring it back up. |
|
| 355 |
- |
|
| 356 |
-Now that your bump commit is back on top, you will need to update the CHANGELOG |
|
| 357 |
-file (if appropriate for this particular release candidate), and update the |
|
| 358 |
-VERSION file to increment the RC number: |
|
| 359 |
- |
|
| 360 |
-```bash |
|
| 361 |
-export RC_VERSION=$VERSION-rcN |
|
| 362 |
-echo $RC_VERSION > VERSION |
|
| 363 |
-``` |
|
| 364 |
- |
|
| 365 |
-You can now amend your last commit and update the bump branch: |
|
| 366 |
- |
|
| 367 |
-```bash |
|
| 368 |
-git commit --amend |
|
| 369 |
-git push -f $GITHUBUSER bump_$VERSION |
|
| 370 |
-``` |
|
| 371 |
- |
|
| 372 |
-Repeat steps 6 to 14 to tag the code, publish new binaries, announce availability, and |
|
| 373 |
-get help testing. |
|
| 374 |
- |
|
| 375 |
-### 15. Finalize the bump branch |
|
| 376 |
- |
|
| 377 |
-When you're happy with the quality of a release candidate, you can move on and |
|
| 378 |
-create the real thing. |
|
| 379 |
- |
|
| 380 |
-You will first have to amend the "bump commit" to drop the release candidate |
|
| 381 |
-suffix in the VERSION file: |
|
| 382 |
- |
|
| 383 |
-```bash |
|
| 384 |
-echo $VERSION > VERSION |
|
| 385 |
-git add VERSION |
|
| 386 |
-git commit --amend |
|
| 387 |
-``` |
|
| 388 |
- |
|
| 389 |
-You will then repeat step 6 to publish the binaries to test |
|
| 390 |
- |
|
| 391 |
-### 16. Get 2 other maintainers to validate the pull request |
|
| 392 |
- |
|
| 393 |
-### 17. Build final rpms and debs |
|
| 394 |
- |
|
| 395 |
-```bash |
|
| 396 |
-docker build -t docker . |
|
| 397 |
-docker run \ |
|
| 398 |
- --rm -t --privileged \ |
|
| 399 |
- -v $(pwd)/bundles:/go/src/github.com/docker/docker/bundles \ |
|
| 400 |
- docker \ |
|
| 401 |
- hack/make.sh binary build-deb build-rpm |
|
| 402 |
-``` |
|
| 403 |
- |
|
| 404 |
-### 18. Publish final rpms and debs |
|
| 405 |
- |
|
| 406 |
-With the rpms and debs you built from the last step you can release them on the |
|
| 407 |
-same server, or ideally, move them to a dedicated release box via scp into |
|
| 408 |
-another docker/docker directory in bundles. This next step assumes you have |
|
| 409 |
-a checkout of the docker source code at the same commit you used to build, with |
|
| 410 |
-the artifacts from the last step in `bundles`. |
|
| 411 |
- |
|
| 412 |
-**NOTE:** If you put a space before the command your `.bash_history` will not |
|
| 413 |
-save it. (for the `GPG_PASSPHRASE`). |
|
| 414 |
- |
|
| 415 |
-```bash |
|
| 416 |
-docker build -t docker . |
|
| 417 |
-docker run --rm -it --privileged \ |
|
| 418 |
- -v /volumes/repos:/volumes/repos \ |
|
| 419 |
- -v $(pwd)/bundles:/go/src/github.com/docker/docker/bundles \ |
|
| 420 |
- -v $HOME/.gnupg:/root/.gnupg \ |
|
| 421 |
- -e DOCKER_RELEASE_DIR=/volumes/repos \ |
|
| 422 |
- -e GPG_PASSPHRASE \ |
|
| 423 |
- -e KEEPBUNDLE=1 \ |
|
| 424 |
- docker \ |
|
| 425 |
- hack/make.sh release-deb release-rpm sign-repos generate-index-listing |
|
| 426 |
-``` |
|
| 427 |
- |
|
| 428 |
-### 19. Upload the changed repos to wherever you host |
|
| 429 |
- |
|
| 430 |
-For example, above we bind mounted `/volumes/repos` as the storage for |
|
| 431 |
-`DOCKER_RELEASE_DIR`. In this case `/volumes/repos/apt` can be synced with |
|
| 432 |
-a specific s3 bucket for the apt repo and `/volumes/repos/yum` can be synced with |
|
| 433 |
-a s3 bucket for the yum repo. |
|
| 434 |
- |
|
| 435 |
-### 20. Publish final binaries |
|
| 436 |
- |
|
| 437 |
-Once they're tested and reasonably believed to be working, run against |
|
| 438 |
-get.docker.com: |
|
| 439 |
- |
|
| 440 |
-```bash |
|
| 441 |
-docker build -t docker . |
|
| 442 |
-# static binaries are still pushed to s3 |
|
| 443 |
-docker run \ |
|
| 444 |
- -e AWS_S3_BUCKET=get.docker.com \ |
|
| 445 |
- -e AWS_ACCESS_KEY_ID \ |
|
| 446 |
- -e AWS_SECRET_ACCESS_KEY \ |
|
| 447 |
- -e AWS_DEFAULT_REGION \ |
|
| 448 |
- -i -t --privileged \ |
|
| 449 |
- docker \ |
|
| 450 |
- hack/release.sh |
|
| 451 |
-``` |
|
| 452 |
- |
|
| 453 |
-### 21. Purge the cache! |
|
| 454 |
- |
|
| 455 |
-### 22. Apply tag and create release |
|
| 456 |
- |
|
| 457 |
-It's very important that we don't make the tag until after the official |
|
| 458 |
-release is uploaded to get.docker.com! |
|
| 459 |
- |
|
| 460 |
-```bash |
|
| 461 |
-git tag -a $VERSION -m $VERSION bump_$VERSION |
|
| 462 |
-git push origin $VERSION |
|
| 463 |
-``` |
|
| 464 |
- |
|
| 465 |
-Once the tag is pushed, go to GitHub and create a [new release](https://github.com/docker/docker/releases/new). |
|
| 466 |
-If the tag is for an RC make sure you check `This is a pre-release` at the bottom of the form. |
|
| 467 |
- |
|
| 468 |
-Select the tag that you just pushed as the version and paste the changelog in the description of the release. |
|
| 469 |
-You can see examples in this two links: |
|
| 470 |
- |
|
| 471 |
-https://github.com/docker/docker/releases/tag/v1.8.0 |
|
| 472 |
-https://github.com/docker/docker/releases/tag/v1.8.0-rc3 |
|
| 473 |
- |
|
| 474 |
-### 23. Go to github to merge the `bump_$VERSION` branch into release |
|
| 475 |
- |
|
| 476 |
-Don't forget to push that pretty blue button to delete the leftover |
|
| 477 |
-branch afterwards! |
|
| 478 |
- |
|
| 479 |
-### 24. Update the docs branch |
|
| 480 |
- |
|
| 481 |
-You will need to point the docs branch to the newly created release tag: |
|
| 482 |
- |
|
| 483 |
-```bash |
|
| 484 |
-git checkout origin/docs |
|
| 485 |
-git reset --hard origin/$VERSION |
|
| 486 |
-git push -f origin docs |
|
| 487 |
-``` |
|
| 488 |
- |
|
| 489 |
-The docs will appear on https://docs.docker.com/ (though there may be cached |
|
| 490 |
-versions, so its worth checking http://docs.docker.com.s3-website-us-east-1.amazonaws.com/). |
|
| 491 |
-For more information about documentation releases, see `docs/README.md`. |
|
| 492 |
- |
|
| 493 |
-Note that the new docs will not appear live on the site until the cache (a complex, |
|
| 494 |
-distributed CDN system) is flushed. The `make docs-release` command will do this |
|
| 495 |
-_if_ the `DISTRIBUTION_ID` is set correctly - this will take at least 15 minutes to run |
|
| 496 |
-and you can check its progress with the CDN Cloudfront Chrome addon. |
|
| 497 |
- |
|
| 498 |
-### 25. Create a new pull request to merge your bump commit back into master |
|
| 499 |
- |
|
| 500 |
-```bash |
|
| 501 |
-git checkout master |
|
| 502 |
-git fetch |
|
| 503 |
-git reset --hard origin/master |
|
| 504 |
-git cherry-pick -s -x $VERSION |
|
| 505 |
-git push $GITHUBUSER merge_release_$VERSION |
|
| 506 |
-echo "https://github.com/$GITHUBUSER/docker/compare/docker:master...$GITHUBUSER:merge_release_$VERSION?expand=1" |
|
| 507 |
-``` |
|
| 508 |
- |
|
| 509 |
-Again, get two maintainers to validate, then merge, then push that pretty |
|
| 510 |
-blue button to delete your branch. |
|
| 511 |
- |
|
| 512 |
-### 26. Rejoice and Evangelize! |
|
| 513 |
- |
|
| 514 |
-Congratulations! You're done. |
|
| 515 |
- |
|
| 516 |
-Go forth and announce the glad tidings of the new release in `#docker`, |
|
| 517 |
-`#docker-dev`, on the [dev mailing list](https://groups.google.com/forum/#!forum/docker-dev), |
|
| 518 |
-the [announce mailing list](https://groups.google.com/forum/#!forum/docker-announce), |
|
| 519 |
-and on Twitter! |