Stable Branch Trial

draft r1

Work items:

  • Discuss the requirements with Ubuntu: DONE

  • Get Linaro management approval: DONE

  • Finalise plan: DONE

The toolchain group are considering a stable branch trial that acheives some of the ../StableBranch at a reduced cost. The first consumer will be Ubuntu who will use it for the latter part of the Oneiric cycle.

User Stories

Bravo is managing a distribution that releases every six months. She wants the best performance, newest features, and to minimise the risk near the ship date. For the first three months, she picks up Linaro main, reports any issues, and picks up fixes and new features through later releases. She then switches to Linaro stable and continues to report any issues and pick up fixes through later revisions.

Design

The top level requirements are a branch that:

  • Starts from the main Linaro branch
  • Takes bug and regression fixes
  • Is reasonably in-sync with the GCC release branch
  • Is active from branching until the Ubuntu release (typically two to three months)

The branch will not be formally released. The branch shall have the same quality goals as the FSF release branch and follow the same criteria with the exception of allowing bug fixes instead of just regression fixes. Ubuntu will track this branch and update to the latest revision on their own schedule.

Ubuntu shall provide a way of tracking a Ubuntu GCC version back to the corresponding Linaro revision.

The main and the stable branch shall track the FSF release branch. Both will be updated to the same, current SVN revision in the middle of the monthly cycle. Linaro will not wait for or stay at a FSF point release.

All fixes will be made first in the main branch and then backported to the stable branch.

One stable branch shall be active at any one time. The branch will typically be active for three months and no more than six months. Past branches shall not be deleted. Community patches for past stable branches shall be reviewed, accepted, and merged in a timely manor. The stable branch may contain fixes for multiple consumers.

Implementation

All branches shall be hosted in bzr on Launchpad.

The stable branch shall be made from the 4.6 2011.07 release. The series shall be called 4.6-2011.07-stable and the branch called lp:gcc-linaro/4.6-2011.07-stable. All patches shall be made to this branch.

Linaro provides support for ARM in general, and support for x86 problems caused by Linaro changes.

For all bugs:

  • Linaro will work with the reporter to generate a (preferably reduced) test case
  • Linaro will attempt to reproduce the bug with:
    • Mainline trunk
    • The two current mainline release branches
    • The two current Linaro main branches
    • The current Linaro stable branches
  • If the fault exists in mainline and is x86 specific, then the reporter should contact mainline and get the problem fixed there
  • If the fault is ARM specific, then Linaro will fix it at the highest point and then backport to the other branches

For example:

  • If the problem is in mainline trunk, mainline 4.6, Linaro 4.6, and Linaro stable 4.6, then Linaro will fix the problem in mainline and backport it to Linaro 4.6 and Linaro stable 4.6 at a minimum
  • If the problem is in Linaro 4.5 and Linaro stable 4.5, then Linaro will fix Linaro 4.5 then backport to Linaro stable 4.5

Ubuntu runs a six month cycle. In this cycle:

  • For months 0-3, Ubuntu will pick up the latest normal Linaro release
  • For months 3-6, Ubuntu will pick up the whole stable branch

Linaro will create the stable branch at the end of month three. Ubuntu will attempt to minimise the difference between Ubuntu GCC and Linaro GCC.

MichaelHope/Sandbox/StableBranchTrial (last modified 2011-07-19 02:45:40)