diff --git a/README.md b/README.md index 1a75ca4b65..72e14762de 100644 --- a/README.md +++ b/README.md @@ -5,22 +5,78 @@ This repository hosts open source components of Docker Community Edition on a regular basis. Long-lived release branches host the code that goes into a product version for the lifetime of the product. +This repository is solely maintained by Docker, Inc. + ## Unifying upstream sources -The `master` branch is a combination of components adapted from different -upstream git repos into a unified directory structure. Git history is -preserved for each component. +The `master` branch is a combination of components adapted from +different upstream git repos into a unified directory structure using the +[moby-components](https://github.com/shykes/moby-extras/blob/master/cmd/moby-components) +tool. You can view the upstream git repos in the [components.conf](components.conf) file. Each component is isolated into its own directory under the [components](components) directory. +The tool will import each component git history within the appropriate path. + +For example, this shows a commit +is imported into the component `engine` from +[moby/moby@a27b4b8](https://github.com/moby/moby/commit/a27b4b8cb8e838d03a99b6d2b30f76bdaf2f9e5d) +into the `components/engine` directory. + +``` +commit 5c70746915d4589a692cbe50a43cf619ed0b7152 +Author: Andrea Luzzardi +Date: Sat Jan 19 00:13:39 2013 + + Initial commit + Upstream-commit: a27b4b8cb8e838d03a99b6d2b30f76bdaf2f9e5d + Component: engine + + components/engine/container.go | 203 ++++++++++++++++++++++++++++... + components/engine/container_test.go | 186 ++++++++++++++++++++++++++++... + components/engine/docker.go | 112 ++++++++++++++++++++++++++++... + components/engine/docker_test.go | 175 ++++++++++++++++++++++++++++... + components/engine/filesystem.go | 52 ++++++++++++++++++++++++++++... + components/engine/filesystem_test.go | 35 +++++++++++++++++++++++++++ + components/engine/lxc_template.go | 94 ++++++++++++++++++++++++++++... + components/engine/state.go | 48 ++++++++++++++++++++++++++++... + components/engine/utils.go | 115 ++++++++++++++++++++++++++++... + components/engine/utils_test.go | 126 ++++++++++++++++++++++++++++... + 10 files changed, 1146 insertions(+) +``` + ## Updates to `master` branch Main development of new features should be directed towards the upstream -repos. The `master` branch of this repo will periodically pull in new +git repos. The `master` branch of this repo will periodically pull in new changes from upstream to provide a point for integration. ## Branching for release -When a new release is started for Docker CE, it will branch from `master`. +When a release is started for Docker CE, a new branch will be created +from `master`. Branch names will be `YY.MM` to represent the time-based +release version of the product, e.g. `17.06`. + +## Adding fixes to release branch + +Note: every commit of a fix should affect files only within one component +directory. + +### Fix available upstream + +A PR cherry-picking the necessary commits should be created against +the release branch. If the the cherry-pick cannot be applied cleanly, +the logic of the fix should be ported manually. + +### No fix yet + +First create the PR with the fix for the release branch. Once the fix has +been merged, be sure to port the fix to the respective upstream git repo. + +## Release tags + +There will be a git tag for each release candidate (RC) and general +availablilty (GA) release. The tag will only point to commits on release +branches.