mirror of https://github.com/docker/docs.git
Start documenting release process
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
This commit is contained in:
parent
e537a51926
commit
2d8c9eeeae
|
@ -0,0 +1,81 @@
|
|||
<!--[metadata]>
|
||||
+++
|
||||
draft=true
|
||||
+++
|
||||
<![end-metadata]-->
|
||||
|
||||
# Docker Machine Release Process
|
||||
|
||||
The Docker Machine release process is fairly straightforward and as many steps
|
||||
have been taken as possible to make it automated, but there is a procedure and
|
||||
several "checklist items" which should be documented. This document is intended
|
||||
to cover the current Docker Machine release process. It is written for Docker
|
||||
Machine core maintainers who might find themselves performing a release.
|
||||
|
||||
1. **Version Bump** -- When all commits for the release have been merged into
|
||||
master and/or the release branch, submit a pull request bumping the `Version`
|
||||
variable in `version/version.go` to the release version. Merge said pull
|
||||
request.
|
||||
2. **Compile Binaries** -- Pull down the latest changes to master and
|
||||
cross-compile the core binary and plugin binaries for each supported OS /
|
||||
architecture combination. As you may notice, this can potentially take a _very_
|
||||
long time so you may want to use a script like [this one for cross-compiling
|
||||
them on DigitalOcean in
|
||||
parallel](https://gist.github.com/nathanleclaire/7f62fc5aa3df19a50f4e).
|
||||
3. **Archive Binaries** -- The binaries are distributed in `.zip` files so you
|
||||
need to run the `make release-pack` target to generate the distributed
|
||||
artifacts.
|
||||
4. **Upload Archives** -- Use a script or sequence of commands such as [this
|
||||
one](https://gist.github.com/nathanleclaire/a9bc1f8d60070aeda361) to create a
|
||||
git tag for the released version, a GitHub release for the released version, and
|
||||
to upload the released binaries. At the time of writing the `release` target in
|
||||
the `Makefile` does not work correctly for this step but it should eventually be
|
||||
split into a separate target and fixed.
|
||||
5. **Generate Checksums** -- [This
|
||||
script](https://gist.github.com/nathanleclaire/c506ad3736d33bd42c2f) will spit
|
||||
out the checksums for the `.zip` files, which you should copy and paste into the
|
||||
end of the release notes for anyone who wants to verify the checksums of the
|
||||
downloaded artifacts.
|
||||
6. **Add Installation Instructions** -- At the top of the release notes, copy and
|
||||
paste the installation instructions from the previous release, taking care to
|
||||
update the referenced download URLs to the new version.
|
||||
7. **Add Release Notes** -- If release notes are already prepared, copy and
|
||||
paste them into the release notes section after the installation instructions.
|
||||
If they are not, you can look through the commits since the previous release
|
||||
using `git log` and summarize the changes in Markdown, preferably by category.
|
||||
8. **Update the CHANGELOG.md** -- Add the same notes from the previous step to the
|
||||
`CHANGELOG.md` file in the repository.
|
||||
9. **Generate and Add Contributor List** -- It is important to thank our
|
||||
contributors for their good work and persistence. Usually I generate a list of
|
||||
authors involved in the release as a Markdown ordered list using a series of
|
||||
UNIX commands originating from `git` author information, and paste it into the
|
||||
release notes.. For instance, to print out the list of all unique authors since
|
||||
the v0.5.0 release:
|
||||
|
||||
$ git log v0.5.0.. --format="%aN" --reverse | sort | uniq | awk '{printf "- %s\n", $0 }'
|
||||
- Amir Mohammad
|
||||
- Anthony Dahanne
|
||||
- David Gageot
|
||||
- Jan Broer
|
||||
- Jean-Laurent de Morlhon
|
||||
- Kazumichi Yamamoto
|
||||
- Kunal Kushwaha
|
||||
- Mikhail Zholobov
|
||||
- Nate McMaster
|
||||
- Nathan LeClaire
|
||||
- Olivier Gambier
|
||||
- Soshi Katsuta
|
||||
- aperepel
|
||||
- jviide
|
||||
- root
|
||||
|
||||
10. **Update the Documentation** -- Ensure that the `docs` branch on GitHub (which
|
||||
the Docker docs team uses to deploy from) is up to date with the changes to be
|
||||
deployed from the release branch / master.
|
||||
11. **Verify the Installation** -- Copy and paste the suggested commands in the
|
||||
installation notes to ensure that they work properly. Best of all, grab an
|
||||
(uninvolved) buddy and have them try it. `docker-machine -v` should give them
|
||||
the released version once they have run the install commands.
|
||||
12. (Optional) **Drink a Glass of Wine** -- You've worked hard on this release.
|
||||
You deserve it. For wine suggestions, please consult your friendly neighborhood
|
||||
sommelier.
|
Loading…
Reference in New Issue