Stable Kernel Release Cadence

Goals

The Kernel Stable Cadence was arrived at during discussions before and during Natty Narwhal Developer Summit in Orlando. The Blueprint from the UDS sessions may be found here. The new process has a number of goals which are designed to improve some problems with the old process. These goals are:

  1. Reduce the maximum time between valid fixes getting applied and verified and their delivery to the end user.
  2. Assure that every bug fix is verified to solve the problem while the kernel is in -proposed testing.
  3. Increase kernel quality by applying comprehensive regression and certification testing to all stable kernels before release.
  4. Reduce the time until non-critical and non-embargoed security fixes are applied and released.
  5. Reduce the impact that critical and embargoed security updates have on the normal stable release schedule.
  6. Reduce the amount of time it takes for upstream stable kernel updates to reach users.
  7. Avoid kernel updates which contain a very large number of updates.
  8. Provide more predictability of when a fix that's been applied to the source repository will be released.

After the Natty cycle, further discussions happened in Oneiric Ocelot Developer Summit in Budapest (see blueprint), where some changes were proposed and done.

Implementation

Whenever possible, Stable kernels will now be released on a short cadence. The cycle consists of three phases - the preparation phase, the verification phase, and the testing phase. The intended complete cycle length is three weeks, with one week for each phase. The cycle immediately repeats every three weeks, with the exception of holidays, UDS weeks, and other considerations. An attempt will be made to synchronize the schedule with the the Ubuntu platform schedule. The specific kernel SRU cadence dates and schedule is posted to the kernel-sru-announce mailing list, as well as on the front page of https://kernel.ubuntu.com/.

The cycle begins with preparation of a new kernel which contains all accumulated fixes.

Patches will be divided into the following classes:

Non-Security Patches

Security (CVE) Patches

Testing

Details

Tracking Bug Procedure

For tracking and triggering process steps including certification and regression testing, as well as archive admin operations, a tracking bug will be created and associated with each stable kernel in order to track status and completion of testing.

About the tracking bug:

About Verification Phase in the tracking bug:

About Regression testing in the tracking bug

About Certification testing in the tracking bug

When all relevant testing is done and passed on a tracking bug, packages are ready to be copied to -updates/-security. It was decided in the Kernel-Q sprint in Portland, OR that kernels shouldn't be copied to -proposed/-security near or on weekends. John Johanssen raised the issue that, at least for the security team, there are not enough man power on weekends to address any fallout that could happen after things are copied to -updates/security. It was agreed that no publishing to -updates/-security pockets should be done between 18:00 UTC Friday - 21:00 UTC Sunday. Therefore, the Promote-to-updates and Promote-to-security tasks should only be set to Confirmed when not on late Friday/weekend, and Archive Admins should be aware that no copying should be done in this case. Only if tasks are confirmed and we are not near or on a weekend, should the Archive Admin publish the kernel to the -updates/-security pockets. See kernel sru workflow page for more information.

Reconsideration of reverted fixes

When fixes are reverted due to lack of verification, they may be proposed for reconsideration by performing the following:

Implementation Schedule

All SRU cycles will try adhere as much as possible to the three-week cadence, with adjustments for holidays.

Regressions or delays with other teams may make the schedule slip.

Text for bugs

When a kernel is released to -proposed, the following text will be added as a comment:

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-<releasename>' to 'verification-done-<releasename>'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

When a fix is not verified by the deadline and is reverted, the following text will be added as a comment:

Verification that this bug is fixed has not been completed by the deadline for the current stable kernel release cycle. The change will be reverted and this bug is being set to incomplete.

In order to have this fix considered for reapplication to the kernel, please follow the process documented here:

https://wiki.ubuntu.com/Kernel/StableReleaseCadence

Discussions about the new process tend to take place in #ubuntu-kernel on IRC, so please contribute to the discussion there if you would like.

Thank you!

When a fix is a pre-stable commit (will come later with stable updates) and the kernel is released to -proposed, no verification is needed, and the following text will be added as a comment:

This commit is an early application of a commit that will be coming in via upstream stable. As such it is not subject to the standard bug verification process.

When a fix is a commit which came with stable updates and the kernel is released to -proposed, no verification is needed, and the following text will be added as a comment:

The commit for this issue came in via a stable upstream release. As such it is not subject to the standard bug verification process.

How and where to upload the package

  1. If the update has embargoed CVEs or high priority updates that will supersede the proposed kernel process, use -security in the changelog and hand it off to the security team and you are done
  2. Otherwise, upload to the Kernel PPA with -proposed in the changelog, following the normal kernel SRU workflow. (See "Uploading to the Kernel PPA" for more details.)

  3. Once built the package can be copied out to the relevant -proposed pocket for testing. Once a package is copied to the -proposed pocket, it can be deleted from the PPA. (See "Pocket Copying from the Kernel PPA to -proposed").

Kernel/StableReleaseCadence (last edited 2019-03-14 10:47:54 by anthonywong)