kernel-sru-workflow
10773
Comment:
|
11233
|
Deletions are marked like this. | Additions are marked like this. |
Line 56: | Line 56: |
1. When the HW Certification team detects that the '''Certification-testing''' task is in the ready-to-start state (status: '''Confirmed''') and they start testing, they change the tasks state to in-progress (status: '''In Progress'''). The task is reassigned to the individual working the task. | 1. When the HW Certification team detects that the '''Certification-testing''' task is in the ready-to-start state (status: '''Confirmed''') they may start testing. If the HW Certification team will not perform testing on this package, the '''Certification-testing''' task may be set to '''Invalid''', but if they are testing then they change the tasks state to in-progress (status: '''In Progress'''). The task is reassigned to the individual working the task. (Note - the task may actually be set to '''Invalid''' while the task is still in the '''New''' state if desired) |
Line 64: | Line 64: |
1. Once certification testing completes, the HW certification team changes the state of the '''Certification-testing''' task to completed (status: '''Fix Released'''). If the testing was successful the certification team adds a '''certification-testing-passed''' tag otherwise they add a '''certification-testing-failed''' tag. | 1. If certification testing is being performed, once certification testing completes, the HW certification team changes the state of the '''Certification-testing''' task to completed (status: '''Fix Released'''). If the testing was successful the certification team adds a '''certification-testing-passed''' tag otherwise they add a '''certification-testing-failed''' tag. These tags are not required if the '''Certification-testing''' task is set to '''Invalid'''. |
Line 67: | Line 68: |
1. When both the '''Certification-testing''' and '''Regression-testing''' tasks have been set to completed states (status: '''Fix Released''') and both the '''certification-testing-passed''' and '''qa-testing-passed''' tags have been added by the appropriate team, and when the status of the '''Security-Signoff''' task has been set to either '''Invalid''' or '''Fix Released''', the '''Workflow Mgr.''' changes the state of the '''Promote-to-updates''' task to the ready-to-start state (status:'''Confirmed'''). | 1. When the '''Certification-testing''' and '''Regression-testing''' tasks have been set to completed states (status: '''Fix Released''' or optionally '''Invalid''' for certification) and both the '''certification-testing-passed''' and '''qa-testing-passed''' tags have been added by the appropriate team, and when the status of the '''Security-Signoff''' task has been set to either '''Invalid''' or '''Fix Released''', the '''Workflow Mgr.''' changes the state of the '''Promote-to-updates''' task to the ready-to-start state (status:'''Confirmed'''). |
IMPORTANT NOTE
The workflow processes described on this page are embodied in workflow tools which perform automated updates to process tasks.
No changes to the processes on this page should be made without discussion among the teams affected, including the Release Manager, Stable Kernel Team, Security Team, QA Team, and Certification Team.
Kernel SRU Workflow
The kernel release tracking bug is going to be changed to facilitate better communication between the responsible parties and clearer handoffs as the release progresses.
We are taking advantage of existing Launchpad capabilities. We will be using project series to represent individual workflow tasks. The meaning of status is overloaded to indicate the state of the task.
When a kernel release tracking bug is created, it is created against the relevant kernel source package and nominated for the related Ubuntu series. The new process will target the bug against an additional project, the "Kernel SRU Workflow" project and nominate it for all the series that are defined for that project.
The kernel release tracking bug can be identified on the kernel SRU report page at: http://kernel.ubuntu.com/~kernel-ppa/reports/sru-report.html
The "Kernel SRU Workflow" project has a number of custom "series" created for it that represent the different stages of the kernel cadence. A "series" represents a task to be accomplished by a team/person. The different tasks will be assigned to the team/person responsible for that stage. The assignee will set the status of the tasks they are working.
An automated script will run periodically to monitor the current state of the different tasks and change status when necessary. This script will be referred to below as the Workflow Mgr. The kernel team will develop this bot.
The Workflow:
The kernel team creates a tracking bug, all tasks will be set to their initial state (status: New) and be assigned to the appropriate team.
The kernel team sets the Prepare-package task to the in-progress state (status: In Progress). The task is reassigned to the individual working the task.
The kernel team builds and uploads the source package to the kernel team ppa. Once the source package successfully builds and is ready to be copied to proposed the task state is changed to completed (status: Fix Released).
Workflow Mgr. detects that the state of the Prepare-package task has completed and changes the Promote-to-proposed task to its ready-to-start state (status: Confirmed).
An archive admin sets the Promote-to-proposed task to in-progress (status: In Progress) and copies the package to the proposed pocket in the archive. The task is reassigned to the individual working the task.
Once the package has been copied a stable release team member sets the Promote-to-proposed task to completed (status: Fix Released).
Workflow Mgr. detects that the state of the Promote-to-proposed task is now completed and changes the state of the Verification-testing task to the in-progress state (status: In Progress). (Affected bugs are marked for verification needed)
Once all the bugs, requiring verification, listed in the changlog have been marked verification-done, the Workflow Mgr. changes the state of the Verification-testing task to completed (status: Fix Released) and sets the Certification-testing, Regression-testing and Security-signoff tasks to the ready-to-start state (status: Confirmed).
When the HW Certification team detects that the Certification-testing task is in the ready-to-start state (status: Confirmed) they may start testing. If the HW Certification team will not perform testing on this package, the Certification-testing task may be set to Invalid, but if they are testing then they change the tasks state to in-progress (status: In Progress). The task is reassigned to the individual working the task. (Note - the task may actually be set to Invalid while the task is still in the New state if desired)
When the QA team detects that the Regression-testing task is in the ready-to-start state (status: Confirmed) and they start testing, they change the tasks state to in-progress (status: In Progress). The task is reassigned to the individual working the task.
When the security team detects that the Security-signoff task is in the ready-to-start state (status: Confirmed), they change the tasks state to in-progress (status: In Progress). The task is reassigned to the individual working the task. They take care of any tasks they deem necessary prior to having an archive admin copy the release to the security pocket. If there are no CVEs, the security team sets the Security-signoff task to the not-needed state (status: Invalid). If there are CVEs in the release and the security team has signed-off on the release being promoted to the security pocket (once all testing passes successfully) they change the status of the Security-signoff task to completed (status: Fix Released).
Workflow Mgr. detects that the state of the Security-signoff task has been completed and changes the Promote-to-security task to its ready-to-start state (status: Confirmed) if required (Security-signoff is Fix Released), or to Invalid if not required (Security-signoff is Invalid).
If certification testing is being performed, once certification testing completes, the HW certification team changes the state of the Certification-testing task to completed (status: Fix Released). If the testing was successful the certification team adds a certification-testing-passed tag otherwise they add a certification-testing-failed tag. These tags are not required if the Certification-testing task is set to Invalid.
Once regression testing completes, the QA team changes the state of the Regression-testing task to completed (status:Fix Released). If the testing was successful the QA team adds a qa-testing-passed tag, otherwise they add a qa-testing-failed tag.
When the Certification-testing and Regression-testing tasks have been set to completed states (status: Fix Released or optionally Invalid for certification) and both the certification-testing-passed and qa-testing-passed tags have been added by the appropriate team, and when the status of the Security-Signoff task has been set to either Invalid or Fix Released, the Workflow Mgr. changes the state of the Promote-to-updates task to the ready-to-start state (status:Confirmed).
A stable release team member copies the package from proposed to the updates pocket in the archive and sets the Promote-to-updates task to completed (status: Fix Released). The task is reassigned to the individual working the task.
If the Promote-to-security task is set to the ready-to-start state(status: Confirmed), an archive admin copies the package to the security pocket and sets the state of the Promote-to-security task to completed (status: Fix Released).
Note: Some tasks can move from Confirmed straight to Fix Released depending on the amount of time/effort involved in the task.
An Example Tracking Bug
https://bugs.launchpad.net/kernel-sru-workflow/+bug/677021
Tasks
Series |
Owner |
Description |
Prepare-package |
The kernel team has uploaded the source package for the release to the kernel team's ppa. |
|
Promote-to-proposed |
The package in the kernel team's ppa is copied to the proposed pocket in the archive. |
|
Verification-testing |
The bugs related to the release are being verified as having been fixed by the appropriate community member. |
|
Certification-testing |
The kernel in proposed is tested via the certification tests. |
|
Regression-testing |
The kernel in proposed is tested for regressions. |
|
Security-signoff |
The security team does any validation they deem necessary and declares if Promote-to-security is needed |
|
Promote-to-updates |
The package is copied from the proposed pocket to the updates pocket in the archive. |
|
Promote-to-security |
The package is copied from the proposed pocket to the security pocket in the archive, if needed. |
Status
Status |
Description |
New |
The initial state of the task. This is not ready for the assigned team/person to begin working on that task. |
Confirmed |
This indicates that the prerequisites for the task to begin have been met and the task is ready to be started. |
In Progress |
The assigned team/person has begun the work associated with the given task. |
Invalid |
The process state is not appropriate for the given kernel release. The individual that changed the state to Invalid should reassign the task to themselves. Examples of where this would be used are: When there are no CVEs fixed in the release and it is not necessary to copy the release. |
Fix Released |
The assigned team/person has finished the task. |
Implementation Notes
In order to track some meta-information about the overall status of the tracking bug, the kernel-sru-workflow task is used by the software bot that automates process steps. The status of this task should never be changed manually unless the implications are well understood.
Status for this task maps as follows:
Status |
Description |
New |
Just created. |
In Progress |
Actively being processed by Workflow Mgr. This is the only state in which Workflow Mgr will make changes to the bug. |
Incomplete |
Error, exception, or invalid condition - Processing by Workflow Mgr is suspended. |
Invalid |
The bug has been replaced by a new tracking bug. |
Fix Released |
All good and we're done. |
Kernel/kernel-sru-workflow (last edited 2023-12-06 20:01:36 by setuid)