This process applies only to bugs and regressions. Feature work is not considered for cherry-picking and must wait for the next regular release.
When to Cherry-Pick
Before creating a cherry-pick, verify that:- The fix has landed on the main branch with tests
- The issue exists in the target release channel (beta or stable)
- The severity justifies backporting (see priority guidelines)
- You may need separate cherry-picks for beta and stable if both are affected
Cherry-Pick Process
Step 1: Create Cherry-Pick Branch
Step 2: Update Commit Message
Modify the commit message with the following changes:Remove conflicting fields
Delete these fields that don’t apply to the cherry-pick:
Change-idCommit-queueReviewed-by
Fill out description
Include the following information:
- Issue description: Brief description of the issue and affected platforms
- What is the fix: Brief description of the solution
- Why cherry-pick: Explain impact, affected users, and justification
- Risk: Describe risks associated with this cherry-pick
- Issue link(s): Links to original GitHub issues
Commit Message Example
Step 3: Update CHANGELOG (Stable Only)
Stable cherry-picks must have CHANGELOG.md entries. Beta releases don’t require changelog entries.Add or update section
If no section exists for the next patch version, create one with an incremented patch number (e.g.,
3.0.4 → 3.0.5) without a date.Infrastructure-only changes invisible to users can use the
Changelog-Exempt: ... footer to skip the changelog requirement.Step 4: Upload and Test
Step 5: Submit Cherry-Pick
Submit to commit queue
The author submits to the commit queue. Tryjobs will compare test results with the previous commit on the target branch and fail if regressions are introduced.
Cherry-Picking Dependencies
If you need to cherry-pick a commit in a dependency (e.g.,third-party/pkg/pub) to a release channel:
Find Current Dependency Revision
Create Cherry-Pick in Dependency
Wait for mirror
Wait for the change to mirror to dart.googlesource.com.
Merge Cherry-Pick to Protected Branch
To prevent garbage collection, merge the cherry-picked commit into the main branch:Update SDK Dependency
Priority Guidelines
Cherry-picks are evaluated based on priority:- P0: Blocks the release, valid cherry-pick, worthy of dot release
- P1: Planned for in-progress release, evaluated case-by-case
- P2-P3: Typically wait for the next regular release