Release or patch a CCF release#
Patch an LTS release#
CCF releases are cut from branches named
N is the major release number.
Patching a release, ie. issuing a
N.0.x+1 version when the current version is
N.0.x involves the following steps:
Apply commits to
release/N.0.x, and/or cherry-pick them from
Tag head of
Alternatively, pull requests merged to
main with the
N.x-todo GitHub label(s) will be automatically backported to the corresponding LTS branch(es). See Labelling LTS PRs section for more details.
Create an LTS release#
release/N.xbranch from the head of
Tag head of
If necessary, apply patch process outline above with
When ready, tag the head of
Create a dev release#
Tag the head of
Nis the latest LTS, and
Xthe latest dev release.
Labelling LTS PRs#
To keep track of which changes should be merged to LTS branches and then confirm them before cutting LTS releases, the following policy should be used:
A PR targetting
mainwhich contains changes that should also reach the N.x LTS should be labelled in GitHub with
auto-backportlabel will trigger a github action to backport automatically.
N.x-todoPRs should contain the minimal set of changes with no dependencies on earlier PRs, so they can be more easily cherry-picked
A PR targetting an LTS branch (
release/N.x) should be labelled in Github with
N.x-backport, so it can be easily found with a filter
A PR targetting an LTS branch which is constructed primarily of a cherry-pick from
mainshould be named consistently as
Cherry-pick #<PR_ID> to N.x LTS, so it can be easily correlated with the corresponding
N.x-todoPR. If an LTS PR contains commits from multiple PRs to
main, each should be mentioned in the PR title, eg
Port <foo> to N.x LTS (#PR1_ID, #PR2_ID, ...)`
If the backport happened via the
backportedlabel will be automatically added to the ticket. Otherwise, you will need to manually add
backportedlabel once it’s merged.
Before creating an LTS release, the releaser should do a scan of PRs and ensure that there are none with
N.x-todo label. If any exist, they should be merged to the LTS branch before releasing, and those candidate labels removed.