-
Notifications
You must be signed in to change notification settings - Fork 11
Respin how-to guide #57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
e5964f5
2da150e
d7b150f
5ac43c0
73d0e68
c9da13a
321445e
374007b
2e71ac0
4deeefe
95c2a74
9dc38f4
0efd5b7
6560328
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,113 @@ | ||
| # How to respin a kernel | ||
|
|
||
| Sometimes regressions or last-minute changes are identified in kernels in #proposed (already cranked). | ||
benjamin051000 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
benjamin051000 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| It is possible to make changes before the SRU cycle closes. This is a special version of a crank called a respin. | ||
benjamin051000 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| These are the steps to respin a kernel, with examples from a previous respin of several Google kernels due to a late-cycle decision to revert a patchset. | ||
|
|
||
| ## 1. Create a respin Jira card | ||
|
|
||
| ```{note} | ||
| Only one person peforms this step. If you already have a Jira card, skip this step. | ||
| ``` | ||
|
|
||
| Use [kteam-tools/stable/create-respin-card](https://kernel.ubuntu.com/forgejo/kernel/kteam-tools/src/branch/master/stable/create-respin-card) script: | ||
|
|
||
| ```text | ||
| create-respin-card [cycle-number] | ||
| ``` | ||
|
|
||
| This will create a respin card on Jira. (For example, here's the one we created: [KSRU-15479 (Jira)](https://warthogs.atlassian.net/browse/KSRU-15479)) | ||
benjamin051000 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Next, on Jira, fill in the details of the respin in the description. This can include: | ||
|
|
||
| * Details on why the kernel is being respun | ||
| * Links to relevant bugs | ||
| * Affected kernels that will need to be respun | ||
|
|
||
| ```{note} | ||
| Note the respin number, as it's used in subsequent steps. | ||
| The respin number is in the title of the Jira card in parentheses. | ||
| For example, "Re-spin (#8)" indicates the number is 8. | ||
| ``` | ||
|
Comment on lines
+34
to
+39
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is important to read, even if you were told to skip this section... How should we make that more clear? Maybe it's clear enough as-is. |
||
|
|
||
| ## 2. Create tracking bugs | ||
| Each affected kernel needs a new Launchpad tracking bug. | ||
benjamin051000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| Use the [kteam-tools/stable/create-kernel-tasks] script: | ||
|
|
||
| ```text | ||
| create-kernel-tasks --handle <handle> --spin <spin-number> <cycle-number> | ||
| ``` | ||
|
|
||
| For example, we used: | ||
| ```{terminal} | ||
| :input: create-kernel-tasks --handle noble:linux-gke --spin 8 2025.01.13 | ||
| :dir: kteam-tools/stable/ | ||
| ``` | ||
|
|
||
| The output states that a new tracking bug has been made, and also prints the bug number for the original tracking bug for this kernel's original crank. | ||
|
|
||
| On Launchpad, mark the original tracking bug as a duplicate of the newly-created bug: | ||
|
|
||
| <!-- TODO screenshots of how to do this --> | ||
|
|
||
| ## 3. Checkout the last cranked version of the kernel | ||
|
|
||
| Use [cranky]() to checkout the kernel: | ||
|
|
||
| ```text | ||
| cranky checkout --cleanup --pristine <handle> | ||
benjamin051000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| ``` | ||
|
|
||
| Then, use `cranky rmadison` to get the version number from the #proposed kernel: | ||
| ```text | ||
| cranky rmadison <handle> | ||
| ``` | ||
|
|
||
| In `linux-main/`, ensure `HEAD` is on the tag of the kernel in #proposed (the output of `cranky rmadison`). | ||
benjamin051000 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| <!-- TODO what if it isn't (new commits were applied)? --> | ||
|
||
|
|
||
| <!-- For example, when running `git show` in `linux-main/`, we saw that `HEAD` was on `Ubuntu-` --> | ||
|
|
||
| ## 4. Add patchset | ||
|
|
||
| The following step depends on whether the kernel you are respinning has a parent kernel which itself is a derivative. | ||
|
|
||
| ## 5. Continue cranking, with some modifications | ||
|
|
||
| Run the following commands as normal: | ||
| ```text | ||
| cranky open | ||
| cranky review-master-changes | ||
| ``` | ||
|
|
||
| In theory, no changes should be detected by this step. | ||
benjamin051000 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Next, run `cranky link-tb` with a modified cycle number: | ||
| ```text | ||
| cranky link-tb --sru-cycle <cycle-number>-<spin-number> | ||
| ``` | ||
|
|
||
| <!-- TODO example --> | ||
|
|
||
| Next, | ||
| ```text | ||
| cranky update-dkms-versions | ||
| ``` | ||
| In theory, no changes should be detected by this step. | ||
benjamin051000 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Next, | ||
| ```text | ||
| cranky close | ||
| cranky update-dependents | ||
| cranky tags --force | ||
benjamin051000 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ``` | ||
|
|
||
| Pulling and building the deb sources is pretty different: | ||
| TODO | ||
|
|
||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.