TopicBranches
Ubuntu Topic Branches
What is a Topic Branch?
Topic Branches is a term used in git to describe a development branch that addresses a specific topic. For example, exploratory or experimental code is usually developed in a topic branch, which may then be rebased onto the master branch at some later time.
With respect to Ubuntu, we use Topic Branches in the core kernel git repository to represent a branch of the kernel that is specific to a platform that has an asynchronous release cycle from the rest of the distribution. The chief advantage of a Topic Branch is the ability to divorce the release version in debian/changelog from the distribution kernel by branching the contents of the debian directory. These are implemented using the abstracted debian.
e.g. We've merged the imx51 ARM flavour into the core kernel git repository. Eventually, when we need to start supporting contracts based on this flavour, we'll create a topic branch in the core kernel git repository for every platform. This topic branch would have it's own ABI control since it would get uploaded on a different schedule.
When do we create Topic Branches?
Topic Branches are created for a platform when the OEM business signs a contract for said development. This implies that support for the ARCH upon which this platform is based previously existed in the distribution kernel. If the platform was originally part of the distribution, then it will be removed in favor of the Topic Branch.
How do we keep Topic Branches up to date?
The primary reason that we create a Topic Branch as opposed to a separate repository is that any relevant changes to the distribution kernel can be easily reflected onto the Topic Branch, be rebasing the topic branch onto the latest distribution kernel. Good examples for commits that would be rebased onto a Topic Branch are stable updates and CVE patches. Given that the contents of the debian directory are unique to the Topic Branch, the OEM kernel developers can develop a source release at their leisure, knowing that their package also contains all of the important updates from the distribution kernel.
Current Branches
We have a number of branches currently. This section aims to list all branches we currently have and their purpose. Note that -9xx is reserved for c-o-d kernels, allocations in this range are recorded in Crack Allocations below. Each branch produces one or more flavours, documentation on those flavours can be found on the Kernel/Dev/Flavours page.
Precise
Repository |
Branch |
ABI Base |
Purpose |
Notes |
ubuntu-precise |
master |
3.2.0-0 |
Primary Distro Kernels |
|
ubuntu-precise |
ti-omap4 |
3.2.0-1400 |
Texas Instruments OMAP4 |
|
ubuntu-precise |
armadaxp |
3.2.0-1600 |
Marvell Armada XP |
|
Oneiric
Repository |
Branch |
ABI Base |
Purpose |
Notes |
ubuntu-oneiric |
master |
3.0-0 |
Primary Distro Kernels |
|
ubuntu-oneiric |
ti-omap4 |
2.6.38-1300 |
Texas Instruments OMAP4 |
|
ubuntu-oneiric |
linaro |
2.6.39-1000 |
Linaro Kernels |
|
ubuntu-oneiric |
linaro |
2.6.3x-1400 |
Linaro TI Landing Team Kernels |
|
ubuntu-oneiric |
linaro |
2.6.3x-1800 |
Linaro ARM Landing Team Kernels |
|
Natty
Repository |
Branch |
ABI Base |
Purpose |
Notes |
ubuntu-natty |
master |
2.6.38-0 |
Primary Distro Kernels |
|
ubuntu-natty |
ti-omap4 |
2.6.38-1200 |
Texas Instruments OMAP4 |
|
ubuntu-natty |
linaro |
2.6.38-1000 |
Linaro Kernels |
|
Maverick
Repository |
Branch |
ABI Base |
Purpose |
Notes |
ubuntu-maverick |
master |
2.6.35-0 |
Primary Distro Kernels |
|
ubuntu-maverick |
ti-omap4 |
2.6.35-900 |
Texas Instruments OMAP4 |
|
ubuntu-maverick |
mvl-dove |
2.6.32-400 |
Marvel Dove SOC support (from Lucid) |
|
ubuntu-maverick |
linaro |
2.6.35-1000 |
Linaro Kernels |
|
Lucid
Repository |
Branch |
ABI Base |
Purpose |
Notes |
ubuntu-lucid |
master |
2.6.32-0 |
Primary Distro Kernels |
|
ubuntu-lucid |
- |
2.6.32-100 |
Freescale IMX51 SOC support |
2 |
ubuntu-lucid |
mvl-dove |
2.6.32-200 |
Marvel DOVE SOC support |
|
ubuntu-lucid |
ec2 |
2.6.32-300 |
Amazon EC2 Xen 3.02 support |
|
ubuntu-lucid |
- |
2.6.32-400 |
netbook related patches |
2 |
ubuntu-lucid |
ti-omap |
2.6.33-500 |
Texas Instruments OMAP |
|
ubuntu-lucid |
fsl-imx51 |
2.6.31-600 |
Freescale IMX51 SOC support (2.6.31) |
1 |
ubuntu-lucid |
- |
2.6.31-700 |
Marvel DOVE SOC support (2.6.31) |
1,3 |
ubuntu-lucid |
qcm-msm |
2.6.31-800 |
Qualcomm MSM (Snapdragon) |
5 |
ubuntu-lucid |
ti-omap4 |
2.6.33-900 |
Texas Instruments OMAP4 |
4 |
NOTES:
- the ABIs for these branches must be always be greater than those of the previous release as they are based on the karmic version and we require them to upgrade from karmic to lucid, they are also necessarily in the Karmic ABI namespace.
- reserved for a future kernel, no branch associated.
- now deprecated as we have moved forward onto a native kernel version.
- proposed new branch, not yet official in the repository
- has been retired for lack of projects, users
Karmic
Repository |
Branch |
ABI Base |
Purpose |
|
ubuntu-karmic |
master |
2.6.31-0 |
Primary Distro Kernels |
|
ubuntu-karmic |
fsl-imx51 |
2.6.31-100 |
Freescale IMX51 SOC support |
1 |
ubuntu-karmic |
mvl-dove |
2.6.31-200 |
Marvel DOVE SOC support |
|
ubuntu-karmic |
ec2 |
2.6.31-300 |
Amazon EC2 Xen 3.02 support |
|
ubuntu-karmic |
netbook |
2.6.31-400 |
netbook related patches |
1 |
|
|
2.6.31-600 |
see Lucid |
|
|
|
2.6.31-700 |
see Lucid |
|
NOTES:
- has been retired for lack of projects, users
Jaunty
Repository |
Branch |
Purpose |
ubuntu-jaunty |
hardy |
x86 LTS server backport |
ubuntu-jaunty |
fsl-imx51 |
Freescale IMX51 SOC support |
ubuntu-jaunty |
netbook |
netbook related patches |
ubuntu-jaunty-lbm |
netbook |
netbook related patches |
Intrepid
None.
Hardy
Repository |
Branch |
Purpose |
ubuntu-hardy |
netbook-lpia |
netbook related patches |
ubuntu-hardy-lbm |
netbook-lpia |
netbook related patches |
Crack Allocations
ABI |
Description |
-999 |
Linus Mainline c-o-d (apw) |
-997 |
drm-intel-next c-o-d (apw) |
-996 |
drm-next c-o-d (apw) |
-995 |
Wayland (sconklin) |
Kernel/Dev/TopicBranches (last edited 2012-04-17 07:06:32 by ikepanhc)