Skip to content

Commit 6000ee0

Browse files
itsjustkevinCommit Queue
authored andcommitted
[release] Update cherry-pick documentation
Removes the requirement to create a cherry-pick issue before submitting a cherry-pick to the beta or stable channel. All associated cherry-pick information is now entered directly into the cherry-pick changelist. Associated CLs: - https://dart-review.googlesource.com/c/sdk/+/405569 - https://dart-review.googlesource.com/c/sdk/+/405746 Change-Id: I4bab6e2520d28f9606ec6229bddbeef5076f1f5a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406700 Commit-Queue: Kevin Chisholm <[email protected]> Reviewed-by: Alexander Thomas <[email protected]>
1 parent aa34e70 commit 6000ee0

File tree

3 files changed

+37
-130
lines changed

3 files changed

+37
-130
lines changed

.github/ISSUE_TEMPLATE/5_cherry_pick.yml

Lines changed: 0 additions & 73 deletions
This file was deleted.

docs/Cherry-picks-to-a-release-channel.md

Lines changed: 37 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
1-
> [!IMPORTANT]
2-
> This page was copied from https://github.com/dart-lang/sdk/wiki and needs review.
3-
> Please [contribute](../CONTRIBUTING.md) changes to bring it up-to-date -
4-
> removing this header - or send a CL to delete the file.
5-
6-
---
1+
# Cherry-picks to a Release Channel
72

83
Cherry-picking is the process of selecting and merging an existing bug fix from our main development branch into a release branch (e.g. from `main` to `beta` or `stable`) for inclusion into the next hotfix release.
94

10-
With the Dart and Flutter joint release process, we're using a combined [Dart & Flutter Cherrypick Review and Approval Process](https://github.com/flutter/flutter/wiki/Flutter-Cherrypick-Process). This document is a supplement to the main process and describes the process and flow within the Dart team.
11-
125
**Note**: This process applies to bugs and regressions. Feature work is not considered for cherry picking and will need to wait for the next release.
136

147
## Notice a cherry-pick is required
@@ -34,31 +27,46 @@ Update the commit message accordingly:
3427
1. Add a `[beta]` or `[stable]` gerrit hashtag at the start of the first line.
3528
2. Rename the `Reviewed-on` field to `Cherry-pick` to link to the original
3629
changelist being cherry-picked.\
37-
3. Add a temporary `Cherry-pick-request` field to be filled in later.
38-
4. Remove the conflicting fields `Change-id`, `Commit-queue`, `Reviewed-by` that
30+
3. Remove the conflicting fields `Change-id`, `Commit-queue`, `Reviewed-by` that
3931
are not true of the new changelist.
32+
4. Fill out the changelist description with the following information:
33+
1. Issue description: (Brief description of the issue. What is the issue?
34+
What platforms are the problems occurring on?)
35+
2. What is the fix: (Brief description of the fix)
36+
3. Why cherry-pick: (Describe the reasons, impacted users and functional
37+
issues to explain why this should be cherry-picked.)
38+
4. Risk: (Describe the risks associated with this cherry-pick.)
39+
5. Issue link(s): (Add links to the original issues fixed by this
40+
cherry-pick.)
4041

4142
E.g.:
4243

4344
```
4445
[stable] Fix foo crash.
4546
46-
Avoid foo doing bar instead.
47+
Issue description: When attempting to use foo under certain conditions, users are unable to
48+
compile.
49+
What is the fix: foo is now evaluated at runtime.
50+
Why cherry-pick: Users of foo are no longer able to compile to bar.
51+
Risk: Low, this fix has landed on the main channel and is tested on the same infrastructure.
52+
Issue link(s): https://github.com/dart-lang/sdk/issues/12345678
4753
48-
Add reproducing test case.
49-
50-
Bug: https://github.com/dart-lang/sdk/issues/12345678
5154
Cherry-pick: https://dart-review.googlesource.com/c/sdk/+/12345678
52-
Cherry-pick-request: TBA
5355
```
5456

5557
## Changelog
5658

57-
Stable cherry-picks [must have CHANGELOG.md entries](Gerrit-Submit-Requirements#changelog) explaining the changes. The release engineers don't have your full context and rely on this information.
59+
Stable cherry-picks [must have CHANGELOG.md entries](Gerrit-Submit-Requirements#changelog)
60+
explaining the changes. The release engineers don't have your full context and rely on this
61+
information.
5862

5963
Beta releases don't have changelog entries.
6064

61-
If the `CHANGELOG.md` does not already have a section for the next stable hotfix, add such a section and increase the patch number (e.g. `3.0.4` -> `3.0.5`) without a date. If a section has a release date, it has already been released and should not be modified. The date will be added when the stable release is authored and it is decided when the release will be published.
65+
If the `CHANGELOG.md` does not already have a section for the next stable
66+
hotfix, add such a section and increase the patch number (e.g. `3.0.4` ->
67+
`3.0.5`) without a date. If a section has a release date, it has already been
68+
released and should not be modified. The date will be added when the stable
69+
release is authored and it is decided when the release will be published.
6270

6371
```markdown
6472
## 3.0.5
@@ -67,18 +75,19 @@ This is a patch release that:
6775

6876
- Fixes all bugs in the Dart SDK (issue [#123456])
6977

70-
[#123456]: https://github.com/dart-lang/sdk/issues/123456
78+
[#123456]: https://dart-review.googlesource.com/c/sdk/+/123456
7179

72-
## 3.0.4 - 2023-06-07
80+
## 3.0.4
81+
**Released on:** 2025-01-08
7382

7483
This is a patch release that:
7584

7685
...
7786
```
7887

79-
Link to your cherry-pick request as subsequently filed below. You can upload the changelist again with the final link once the GitHub issue has been filed. The cherry-pick request on GitHub is often more useful for users than the original bug, since it explains the rationale concisely and links to the underlying bug for more information.
80-
81-
If the cherry-pick is infrastructure only and is invisible to users, the `Changelog-Exempt: ...` footer exempts the change from the changelog requirement.
88+
If the cherry-pick is infrastructure only and is invisible to users, the
89+
`Changelog-Exempt: ...` footer exempts the change from the changelog
90+
requirement.
8291

8392
## Uploading the cherry-pick changelist
8493

@@ -91,43 +100,14 @@ git cl upload
91100
Trigger a commit queue dry run and add any appropriate try builders to confirm
92101
the fix is correct.
93102

94-
## Request cherry-pick approval
95-
96-
Request approval for releasing the fix to beta/stable using
97-
this [cherry-pick to beta/stable request template][cherry-pick-template]:
98-
99-
* Brief description of the problem.
100-
* The reason for cherry pick, user impact, and a brief risk assessment
101-
(low/medium/high).
102-
* Link to the changelist.
103-
* The `cherry-pick-review` label.
104-
105-
Edit the changelist's commit message with a link to the cherry-pick request:
106-
107-
```
108-
Cherry-pick-request: https://github.com/dart/sdk/issues/56781234
109-
```
110-
111-
Send the changelist for review. Await the appropriate consensus and approval
112-
via the `cherry-pick-request` for them or any OWNER to review the changelist.
113-
114103
## Submitting the cherry-pick
115104

116-
Once the cherry-pick issue is approved and the changelist is reviewed, the
117-
cherry-pick author will submit it to the commit queue. The tryjobs will compare
118-
the test results with the previous commit on the beta/stable branch and fail if
119-
any regressions are introduced. If any regressions must be introduced, or the
120-
try builders don't work on the older beta/stable code, then bypass the commit
121-
queue by force submitting.
122-
123-
The release engineers will apply the `cherry-pick-merged` label and the
124-
cherry-pick will be automatically bundled into the next hotfix release of
125-
beta/stable and no further actions are required.
126-
127-
Once the cherry-pick has landed in a hotfix release, the release engineering
128-
team will close the cherry-pick issue.
129-
130-
[cherry-pick-template]: https://github.com/dart-lang/sdk/issues/new?template=5_cherry_pick.yml
105+
Once the cherry-pick changelist is reviewed by an area subject matter expert and
106+
a Dart team lead, the cherry-pick author will submit it to the commit queue. The
107+
tryjobs will compare the test results with the previous commit on the
108+
beta/stable branch and fail if any regressions are introduced. If any
109+
regressions must be introduced, or the try builders don't work on the older
110+
beta/stable code, then bypass the commit queue by force submitting.
131111

132112
## Cherry-picking a commit in a dependency
133113

0 commit comments

Comments
 (0)