docs/contribution/releases/backporting.md
Cherry-picking is the process of applying changes between trunk and a release branch (in either direction). This page is the canonical reference for the cherry-pick mechanics used by both pre-release stabilization (beta, RC) and patch releases.
For the patch-release-specific process (when a patch is warranted, who creates the tracking issue, and how it ships), see the Point Releases guide.
When a release branch is created, it is copied from trunk at the time of feature freeze. After creation:
trunk, any fix landed on a release branch must also be applied to trunk (and, when applicable, to the next frozen release branch).A frozen release branch is the most recent release/x.y cut from trunk for the next upcoming version. While the previous release is still in maintenance, this branch is the one feature work has already moved on to. The cherry pick to frozen release label forward-ports a fix from the current maintenance branch to this branch so the same fix also ships in the next major version. Frozen releases only accept critical bug fixes, the same bar as any other release branch.
Changes qualify for cherry-picking only if they are:
trunk to Release BranchWhen to use: Most cherry-pick scenarios, including the preferred path for patch release fixes.
trunk as the base branch.9.8.0). WooCommerce milestones use the .0 form for the whole X.Y.x series, so a fix targeting X.Y.1 still uses milestone X.Y.0.trunk.For urgent fixes near release deadlines, reach out to the release lead in the #woo-core-releases Slack channel.
trunkWhen to use: The fix doesn't apply cleanly to trunk, or the branches have diverged enough that landing on release/x.y first is simpler.
release/9.8) as the base branch.cherry pick to trunk to forward-port to trunk.cherry pick to frozen release to forward-port to the next frozen release branch (see frozen release definition above).X.Y.0).trunk and/or the frozen branch based on which labels are present.