===== CIP kernel release tutorial ==== This is a kernel release tutorial for [[https://git.kernel.org/pub/scm/linux/kernel/git/cip/linux-cip.git|CIP linux kernel]]. ==== 1. Check out -cip remote branch to local branch. ==== For example, if you want to check out cip/linux-4.19.y-cip remote branch as linux-4.19.y-cip local branch, do following: git checkout -b linux-4.19.y-cip cip/linux-4.19.y-cip ==== 2. Update the localversion-cip file and commit it. ==== The content of this file is -cipN. N means the number of releases. ==== 3. Create a release tag. ==== The tag is the kernel version to be released plus the CIP release version.For example, when releasing cip32 based on v4.4.176, the tag is v4.4.176-cip32. When creating tags, sign with GnuPG. ==== 4. Push updates into the CIP's kernel repository. ==== The branch to push is as follows: * 4.4.y kernel: linux-4.4.y-cip * 4.19.y kernel: linux-4.19.y-cip And the tag needs to be pushed. If you want to push only a specific tag, do the following: git push cip v4.4.176-cip32 or git push cip refs/tags/v4.4.176-cip32 ==== 5. Check out the -rebase remote branch. ==== NOTE: The -rebase branch is a branch to make it easy to understand changes between LTS and CIP. ==== 6. Rebase commits on target kernel version. ==== After rebasing, * Cherry-pick CIP-specific commits that have been added to the non-rebased branch * Check that the result is now identical to the non-rebased branch Once the stable branch reaches end-of-life the CIP branch won't need to be rebased any more but those extra steps will still be needed. ==== 7. Create a tag for rebase release. ==== This is also signed by GPG. ==== 8. Push updates of -rebase branch into the CIP's kernel repository. ==== The branch to push is as follows: * 4.4.y kernel: linux-4.4.y-cip-rebase * 4.19.y kernel: linux-4.19.y-cip-rebase And the tag needs to be pushed. ==== 9. Send release announcement to cip-dev@lists.cip-project.org. ====