TopicBranches

Revision 7 as of 2010-11-29 17:54:27

Clear message

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.

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

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:

  1. 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.
  2. reserved for a future kernel, no branch associated.
  3. now deprecated as we have moved forward onto a native kernel version.
  4. proposed new branch, not yet official in the repository
  5. 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:

  1. 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)