OpeningRelease

Revision 1 as of 2010-07-12 17:33:09

Clear message

Each release cycle a member of the Ubuntu kernel team assumes the role of Ubuntu kernel maintainer. As such, this individual is responsible for preparing release+1's git tree. The following loosely documents the steps for starting this new git tree. We'll use Ubuntu-M as the new tree example.

  1. TAG the lucid tree, "Ubuntu-M-base" and "Ubuntu-M-sync". These are _your_ tags no one else should touch them on pain of death. Ubuntu-M-base represents the original point where we forked M from Lucid. This tag will never move. As no one will consider Ubuntu-M for patching until M officiallyl opens, Ubuntu-M-sync allows us to keep track of the patches applied to Lucid after M's been forked. Ubuntu-M-sync will move up each time we sync with the latest patches applied to Lucid.
    cd ubuntu-lucid (make sure you're at the latest tip)
    git tag -s -m "Ubuntu-M-base" "Ubuntu-M-base"
    git tag -s -m "Ubuntu-M-sync" "Ubuntu-M-sync"
  2. Create M. We could actually wait to do this step later since the first few steps is just splitting, squashing, and dropping commits. comparing Ubuntu-M-base a the latest master should diff identical. But we'll just clone it now.
    git clone --reference ubuntu-lucid ubuntu-lucid ubuntu-m
  3. Run reconcile-generic. It's also a good idea to save the output to help generate the ubuntu delta blueprint later on.
    reconcile-generic Ubuntu-M-base v2.6.33 > /tmp/RESULT

    Example RESULT output can be viewed at http://people.canonical.com/~ogasawara/RESULT

  4. Examine /tmp/RESULT and look for any commits which touch debian and not debian (marked 'needs debian split out') and split them into two commits.
    for example:
    
    1cd09b44bbb7cb6a5521d83234e65f72193a1c3d (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell Inspiron 700m
      NEEDED (needs debian split out)
    
    cd ubuntu-m
    git rebase -i 1cd09b44bbb7cb6a5521d83234e65f72193a1c3d~1
    # s/pick/edit/ for 1cd09b44bbb7cb6a5521d83234e65f72193a1c3d
    git reset HEAD^
    git add not-debian-file(s)
    git commit
    git add debian-file(s)
    git commit
    git rebase --continue
    
    Again, it's a good idea to make sure nothing has changed code wise within the tree.  A `git diff Ubuntu-M-base master` should show no changes.
  5. move all debian commits to the top and squash them. If you had to split out debian commits in the previous step, you'll likely want to re-run reconcile-generic to make sure you have all the DEBIAN commits including the latest ones that were split out.
    reconcile-generic master v2.6.33 > /tmp/RESULT2
  6. drop all added and then reverted commits (marked REVERT or REVERTED),
  7. Insert and commit a fake changelog entry for 2.6.NN-0.0 which needs to have a commit message "UBUNTU: Ubuntu-2.6.NN-0.0".
    • Don't forget to tag the commit Ubuntu-2.6.NN-0.0
  8. Then insert the normal 2.6.NN-1.1 and so on above that as normal. Obviously we don't care about the ABI until we formally put the kernel into the archive so for now we can just stay on -1.1, -1.2, -1.3 ... for the time being.
  9. rebase to 2.6.33 dropping any upstream commits at the same time (marked IN:)
    git rebase -i v2.6.33
    Remember to tag everything so we can look back in case, especially the 2.6.33 as I think we'll need that.
  10. After the rebase, don't forget to update the configs. It's highly recommended to also use the config2options script to make updating the configs less painful.
    fdr updateconfigs
    fdr updateportsconfigs
  11. Until this new tree is open we have to keep in sync with Lucid if any new patches are applied to Lucid that are not already in the new tree. The easiest way to do this is to just cherry pick the patches from Lucid into the new tree.