Update Maintainer Guide

Jeremy Cline 2020-01-20 16:56:01 +00:00
parent 3818ba5507
commit 7b24662018

@ -10,11 +10,36 @@ Rebasing the kernel involves the following steps:
The ``ark-patches`` branch contains the latest version of the patches being carried for the Always Ready Kernel.
The rebase consists of the following steps:
1. Rebase the kernel patches: ``git rebase <upstream-tag> ark-patches``.
2. If a patch fails to apply and the fix is clear, go ahead and fix it. Otherwise, file an [issue](https://gitlab.com/cki-project/kernel-ark/issues) for each patch that does not apply with the commit hash and conflict details so it can be resolved later.
3. If rebasing onto a tag, create a branch for this revision of the kernel patches. This is useful when comparing the state of the patches between versions: ``git branch ark/patches/<upstream-tag>``.
4. ``git push -f upstream ark-patches``
### Common Problems
There are a few issues that can occur during the patch rebase.
#### Patch Cannot Be Applied
Patches regularly fail to apply because upstream changed some code being patched. When this occurs, if the fix is trivial, you can simply fix up the patch during the ``git-rebase``. Otherwise, file an issue to fix the patch and skip it during the rebase.
Once a dropped patch has a fix, submit a merge request to ``ark-patches`` with the fixed-up patch. If you aren't confident you can fix it yourself, try contacting the original author and ask them to fix their patch.
#### Patch Applies But Is Broken
This problem occurs less frequently, but is less straightforward to detect and fix. A patch might cleanly apply, but an interface it uses has changed in some way (e.g. a function got renamed). Ideally the change causes the build to fail.
Assuming you know how to fix the problem, use the following approach:
1. Start a branch based of the latest ``ark-patches`` branch and fix the problem as you see fit.
2. Commit the change, including a ``Fixes: <short sha of commit in ark-patches it fixes>`` tag in the commit, along with references to the upstream commit that introduced the breaking change and any other details you see fit. If you reference a commit that is not upstream (that is, any patch in ark-patches) be sure to add a [x] reference and link to the commit so email users can see the commit in question easily during review.
3. Submit a merge request against ``ark-patches``
4. Once reviewed, merge the merge request. When rebasing ``ark-patches``, squash the fix into the commit it fixes so that the patches in ``ark-patches`` continue to be self-contained.
An example of this is https://gitlab.com/cki-project/kernel-ark/merge_requests/90.
## Fedora Patches
At the moment, the Fedora kernel is maintained directly in the dist-git and we are importing the patches to keep in sync.