2015-07-12 04:04:52 +00:00
|
|
|
<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->
|
|
|
|
|
|
|
|
<!-- BEGIN STRIP_FOR_RELEASE -->
|
|
|
|
|
2015-07-16 17:02:26 +00:00
|
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
|
|
width="25" height="25">
|
|
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
|
|
width="25" height="25">
|
|
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
|
|
width="25" height="25">
|
|
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
|
|
width="25" height="25">
|
|
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
|
|
width="25" height="25">
|
|
|
|
|
|
|
|
<h2>PLEASE NOTE: This document applies to the HEAD of the source tree</h2>
|
|
|
|
|
|
|
|
If you are using a released version of Kubernetes, you should
|
|
|
|
refer to the docs that go with that version.
|
|
|
|
|
2015-12-14 18:37:38 +00:00
|
|
|
<!-- TAG RELEASE_LINK, added by the munger automatically -->
|
2015-07-16 17:02:26 +00:00
|
|
|
<strong>
|
2015-11-03 18:17:57 +00:00
|
|
|
The latest release of this document can be found
|
2016-03-09 02:06:40 +00:00
|
|
|
[here](http://releases.k8s.io/release-1.2/docs/devel/cherry-picks.md).
|
2015-07-16 17:02:26 +00:00
|
|
|
|
|
|
|
Documentation for other releases can be found at
|
|
|
|
[releases.k8s.io](http://releases.k8s.io).
|
|
|
|
</strong>
|
|
|
|
--
|
2015-07-13 22:15:35 +00:00
|
|
|
|
2015-07-12 04:04:52 +00:00
|
|
|
<!-- END STRIP_FOR_RELEASE -->
|
|
|
|
|
|
|
|
<!-- END MUNGE: UNVERSIONED_WARNING -->
|
2015-07-17 22:35:41 +00:00
|
|
|
|
2015-07-09 21:24:02 +00:00
|
|
|
# Overview
|
|
|
|
|
|
|
|
This document explains cherry picks are managed on release branches within the
|
2016-03-22 18:35:27 +00:00
|
|
|
Kubernetes projects. Patches are either applied in batches or individually
|
|
|
|
depending on the point in the release cycle.
|
2015-07-09 21:24:02 +00:00
|
|
|
|
|
|
|
## Propose a Cherry Pick
|
|
|
|
|
2016-03-28 21:07:24 +00:00
|
|
|
1. Cherrypicks are [managed with labels and milestones](pull-requests.md#release-notes)
|
|
|
|
1. All label/milestone accounting happens on PRs on master. There's nothing to do on PRs targeted to the release branches.
|
|
|
|
1. When you want a PR to be merged to the release branch, make the following label changes to the **master** branch PR:
|
|
|
|
* Remove release-note-label-needed
|
|
|
|
* Add an appropriate release-note-(!label-needed) label
|
|
|
|
* Add an appropriate milestone
|
|
|
|
* Add the `cherrypick-candidate` label
|
2016-04-06 20:20:03 +00:00
|
|
|
* The PR title is the **release note** you want published at release time and
|
|
|
|
note that PR titles are mutable and should reflect a release note
|
|
|
|
friendly message for any `release-note-*` labeled PRs.
|
2016-03-22 18:35:27 +00:00
|
|
|
|
2016-03-28 21:07:24 +00:00
|
|
|
### How do cherrypick-candidates make it to the release branch?
|
2016-03-22 18:35:27 +00:00
|
|
|
|
2016-03-28 21:07:24 +00:00
|
|
|
1. **BATCHING:** After a branch is first created and before the X.Y.0 release
|
|
|
|
* Branch owners review the list of `cherrypick-candidate` labeled PRs.
|
|
|
|
* PRs batched up and merged to the release branch get a `cherrypick-approved` label and lose the `cherrypick-candidate` label.
|
|
|
|
* PRs that won't be merged to the release branch, lose the `cherrypick-candidate` label.
|
2016-03-22 18:35:27 +00:00
|
|
|
|
2016-03-28 21:07:24 +00:00
|
|
|
1. **INDIVIDUAL CHERRYPICKS:** After the first X.Y.0 on a branch
|
|
|
|
* Run the cherry pick script. This example applies a master branch PR #98765 to the remote branch `upstream/release-3.14`:
|
|
|
|
`hack/cherry_pick_pull.sh upstream/release-3.14 98765`
|
|
|
|
* Your cherrypick PR (targeted to the branch) will immediately get the
|
|
|
|
`do-not-merge` label. The branch owner will triage PRs targeted to
|
|
|
|
the branch and label the ones to be merged by applying the `lgtm`
|
|
|
|
label.
|
2015-07-09 21:24:02 +00:00
|
|
|
|
2016-03-28 21:07:24 +00:00
|
|
|
There is an [issue](https://github.com/kubernetes/kubernetes/issues/23347) open tracking the tool to automate the batching procedure.
|
2015-07-09 21:24:02 +00:00
|
|
|
|
2016-03-22 18:35:27 +00:00
|
|
|
#### Cherrypicking a doc change
|
2015-12-17 23:04:42 +00:00
|
|
|
|
|
|
|
If you are cherrypicking a change which adds a doc, then you also need to run
|
|
|
|
`build/versionize-docs.sh` in the release branch to versionize that doc.
|
|
|
|
Ideally, just running `hack/cherry_pick_pull.sh` should be enough, but we are not there
|
|
|
|
yet: [#18861](https://github.com/kubernetes/kubernetes/issues/18861)
|
|
|
|
|
2016-03-28 21:07:24 +00:00
|
|
|
To cherrypick PR 123456 to release-3.14, run the following commands after running `hack/cherry_pick_pull.sh` and before merging the PR:
|
2015-12-17 23:04:42 +00:00
|
|
|
|
|
|
|
```
|
2016-03-28 21:07:24 +00:00
|
|
|
$ git checkout -b automated-cherry-pick-of-#123456-upstream-release-3.14
|
|
|
|
origin/automated-cherry-pick-of-#123456-upstream-release-3.14
|
|
|
|
$ ./build/versionize-docs.sh release-3.14
|
2015-12-17 23:04:42 +00:00
|
|
|
$ git commit -a -m "Running versionize docs"
|
2016-03-28 21:07:24 +00:00
|
|
|
$ git push origin automated-cherry-pick-of-#123456-upstream-release-3.14
|
2015-12-17 23:04:42 +00:00
|
|
|
```
|
|
|
|
|
2015-07-09 21:24:02 +00:00
|
|
|
## Cherry Pick Review
|
|
|
|
|
|
|
|
Cherry pick pull requests are reviewed differently than normal pull requests. In
|
|
|
|
particular, they may be self-merged by the release branch owner without fanfare,
|
|
|
|
in the case the release branch owner knows the cherry pick was already
|
|
|
|
requested - this should not be the norm, but it may happen.
|
|
|
|
|
2016-03-22 18:35:27 +00:00
|
|
|
## Searching for Cherry Picks
|
|
|
|
|
|
|
|
See the [cherrypick queue dashboard](http://cherrypick.k8s.io/#/queue) for
|
|
|
|
status of PRs labeled as `cherrypick-candidate`.
|
|
|
|
|
2015-07-20 07:25:07 +00:00
|
|
|
[Contributor License Agreements](http://releases.k8s.io/HEAD/CONTRIBUTING.md) is considered implicit
|
2015-07-09 21:24:02 +00:00
|
|
|
for all code within cherry-pick pull requests, ***unless there is a large
|
|
|
|
conflict***.
|
|
|
|
|
2015-07-10 19:51:35 +00:00
|
|
|
|
2015-07-14 00:13:09 +00:00
|
|
|
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
|
2015-07-10 19:51:35 +00:00
|
|
|
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/devel/cherry-picks.md?pixel)]()
|
2015-07-14 00:13:09 +00:00
|
|
|
<!-- END MUNGE: GENERATED_ANALYTICS -->
|