![]() |
VOOZH | about |
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:
After the Natty cycle, further discussions happened in Oneiric Ocelot Developer Summit in Budapest (see blueprint), where some changes were proposed and done.
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:
These patches are required to be verified during the verification phase, and if not verified, will be reverted before the testing phase begins.
If it arrives during the verification phase we will:
If it arrives during the testing phase we will:
There are 3 types of required testing: verification, certification, and regression. Verification testing happens during the verification phase of the cycle, and certification and regression testing occur during the testing phase.
Verification testing is the assurance that a bug is actually fixed by the proposed kernel, and is the responsibility of the bug reporter. Tags used for tracking verification are verification-needed-<releasename>, verification-done-<releasename>, verification-reverted-<releasename> and verification-failed-<releasename>.
All tracking bugs associated with upstream stable patch sets will be set to verification-done-<releasename> QA when the kernel has passed testing.
At the end of the second week, any bug fixes which have not been verified as fixed by the reporter or by internal testing, or which failed verification, will have the patches reverted, and the associated bug tasks set to "Incomplete". A comment will be added to the bug describing how to request reapplication of the fix. After the kernel is respinned with the reverted patch, during its verification the tag verification-reverted-<releasename> will be added, replacing any verification-{needed,failed}-<seriesname> tag that might be present.
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:
It is created by the Kernel Team _before_ uploading the new kernel to -proposed, using a script the kernel team created (create-release-tracker), which can be found in the kteam-tools git repository. The created bug is tagged with "kernel-release-tracking-bug".
Once the bug is created, be sure that the changelog references the SRU bug number using the 'LP: #NNNNNN' (SRU) convention
The description and title of the tracking bug must contain the exact version of the kernel it is tracking.
The report is nominated for the appropriate Ubuntu release.
All relevant teams must be subscribed to the bug report (usually sru-verification, ubuntu-sru, hardware-certification).
The publication to -proposed will follow the Stable Release Updates procedure.
The tracking bug will contain all tasks needed to perform the kernel SRU Workflow. The details about the kernel SRU Workflow can be seen here.
About Verification Phase in the tracking bug:
If any patches have been reverted, new kernels will be uploaded and built. A new tracking bug will be created, and the previous one will be closed or set as a duplicate of the new one. On the verification phase of new bug, any bugs which had patches reverted will be tagged with verification-reverted-<releasename>.
About Regression testing in the tracking bug
the QA Team can start working when the Regression-testing task is set to 'Confirmed'; when they start testing, they set the same task to 'In Progress'. After the tests are done, they add to the report the result of the test, and add the the tag 'qa-testing-passed' if the tests were ok, or 'qa-testing-failed' if tests failed, and sets the Regression-testing task to 'Fix Released'
About Certification testing in the tracking bug
Certification team can start working when the Certification-testing task is set to 'Confirmed'; when they start testing, they set the same task to 'In Progress'. After the tests are done, they add to the report the result of the test, and add the the tag 'certification-testing-passed' if the tests were ok, or 'certification-testing-failed' if tests failed, and sets the Certification-testing task to 'Fix Released'
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.
When fixes are reverted due to lack of verification, they may be proposed for reconsideration by performing the following:
Update the bug with a firm commitment to verify the fix during the next stable kernel release cycle (usually this will begin one week after the fix is reverted). Change the "verification-reverted-<release>" tag to "verification-needed-<release>" (where <release> is [lucid | maverick . . .]).
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.
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.
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.)
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)
The material on this wiki is available under a free license, see Copyright / License for details.