workflow (was Re: RFD: Kernel release numbering)

From: Jeff Garzik
Date: Wed Mar 02 2005 - 19:27:09 EST


Other ideas <thinking out loud>...

I maintain my netdev-2.6 queue by creating a ton of "subject-specific" repositories locally,

8139cp/ bonding/ ieee80211/ mips/ sis900/ typhoon/
8139too/ e1000/ ixgb/ misc/ skge/ viro-iomap/
8139too-2/ ham/ janitor/ mv643xx/ sk_mca/ viro-iomap-orinoco/
ALL/ ibmlana/ kill-iphase/ pcnet32/ smc91x/ viro-isa-ectomy/
atmel/ ibmtr/ mii/ s2io/ sundance/ wifi/

and I pull all of these into a master repository netdev-2.6 (locally 'ALL'). netdev-2.6, in turn, gets pulled into -mm when Andrew makes a new release. When I am ready to push something upstream, I pull one or more repositories into my net-drivers-2.6 queue, which is essentially my "push to upstream" queue.

This scheme allows me to cherry-pick fixes and features. If a critical fix comes along, it doesn't have to wait for the other less-critical 309 changesets to go.


We could have a linus-pending-2.6 queue, managed by Linus, that functions in a similar manner to my netdev-2.6:

a) Have a monthly or weekly official release. Could be automated, but probably not.

b) snapshots of linus-pending-2.6 function as a development tree, taking over some of the current -mm purpose... -mm is just too massive and multi-purpose at this point

c) locally [or publicly?], Linus sorts patches and 'bk pulls' into specific repositories, as I do with netdev-2.6. "sata", "sata-fixes", "net drivers", "net drivers - janitorial", etc. could be potential pull queues from me to Linus.

d) When features/fixes are ready to move from linus-pending-2.6 to linux-2.6 repository, Linus just does a pull+push locally. Fixes would likely go immediately into linux-2.6, unless it needs staging in linus-pending-2.6 first. Potentially destabilizing stuff stays longer in linus-pending-2.6.

Thus, Linus controls the patch flow (and stability/features) simply by choosing when to pull stuff from the on-going dev tree that he manages.

e) Andrew continues doing what he's been doing: merging tons of patches, staging big features, etc.


So what does this accomplish, besides increasing the complexity of Linus's work? What's the point?

1) Creates a structure to enable linux-2.6 to be the on-going stable tree, by creating an official on-going dev tree.

2) Release early, release often. The proposal that started this thread does the opposite: it slows things down.

3) Makes it easier to manage the flow of changesets.

4) Takes pressure off -mm to be "everything under the sun." Users are far more likely to test a tree that is blessed with Holy Penguin Pee, and builds on all architectures. And this in turn gives -mm more freedom.

Jeff, trying to think outside the box



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/