Ubuntu Kernel Next workflowΒΆ
UKN is a periodical read-only snapshot of Ubuntu linux-unstable, thus no patches will ever be directly merged in - they will reach linux-unstable first, and then percolate down to UKN in the subsequent sync phase.
![digraph {
"linux-unstable vX" [group="c1"]
"linux-unstable vX+1" [group="c1"]
"linux-unstable vX+2" [group="c1"]
"UKN vX fork + patchset A" [group="c3"]
"UKN vX+1 fork + patchset B" [group="c3"]
"UKN vX" [group="c4"]
"UKN vX+1" [group="c4"]
"linux-unstable vX" -> "linux-unstable vX+1"
"linux-unstable vX+1" -> "linux-unstable vX+2"
"linux-unstable vX" -> "UKN vX" [label="Sync"]
"linux-unstable vX+1" -> "UKN vX+1" [label="Sync"]
"UKN vX" -> "UKN vX fork + patchset A" [label="Fork + devel"]
"UKN vX+1" -> "UKN vX+1 fork + patchset B" [label="Fork + devel"]
"UKN vX fork + patchset A" -> "UKN vX" [label="Pull req. A"]
"UKN vX+1 fork + patchset B" -> "UKN vX+1" [label="Pull req. B"]
"UKN vX" -> "linux-unstable vX+1" [label="Merge pull req. A"]
"UKN vX+1" -> "linux-unstable vX+2" [label="Merge pull req. B"]
{rank=same; "linux-unstable vX"; "UKN vX"; "UKN vX fork + patchset A";}
{rank=same; "linux-unstable vX+1"; "UKN vX+1"; "UKN vX+1 fork + patchset B";}
{rank=same; "linux-unstable vX+2";}
}](../../../_images/graphviz-95653c364978c96d7204326017e880b173a9edbf.png)
Sync: periodically, after linux-unstable has been rebased on a new major release and it reached a level of maturity, UKN will take a snapshot of it.
Fork + devel: consumer of UKN vX forks the tree on Gitea, and start working on it (e.g. patchset A).
Pull req. A: once patchset A is ready, a pull request will be sent against UKN vX.
Merge pull req. A: assuming patchset A is sound, follows Ubuntu patches guideline and acceptance criteria, the Ubuntu kernel team will step in, take patchset A and apply it to linux-unstable vX+1.
Sync: at the susequent sync step between linux-unstable and UKN, patchset A will finally show up in UKN vX+1.
Wash, rinse and repeat.