Re: [RFC] new -stable tag variant, Git workflow question

From: Ingo Molnar
Date: Tue Nov 10 2009 - 16:21:33 EST



* Chris Friesen <cfriesen@xxxxxxxxxx> wrote:

> On 11/10/2009 09:52 AM, Stefan Richter wrote:
>
> > More importantly, isn't this against the character of the -stable kernel
> > branches as _safe and simple_ hotfix branches?
> >
> > If a fix has a number of prerequisites which ar not -stable fixes
> > themselves, then it is more than a hint that this fix is not really well
> > suited for -stable.
>
> Alternately, it's conceivable that the prerequisites were not
> in-and-of-themselves candidates for -stable (maybe they didn't do
> anything by themselves) but when combined with the final commit the
> overall change is suitable for inclusion in -stable.

Yeah.

The way i do it as a maintainer is that when i add a new commit that i
realize as a -stable candidate, and i know that it has no semantic
prereqs (such as a new API, etc.), i git-cherry-pick it into stable in a
test branch. If that works fine i mark it -stable straight away.

If it conflicts, i figure out the prereqs, and look at those. If they
are too big, or too risky, i often decide not to mark a patch for
-stable backporting. (If it's not obvious to be in -stable then it
should not be in -stable, almost by definition - a _LOT_ of people are
using the stable kernels.)

If the prereqs look sane and are wanted for -stable, i end up with a
list of 2 or at most 3 commits that will cherry-pick cleanly. (rarely
more than that - the 4 commits here are really an exception - they are a
string of prereqs that are also fixes)

I send that list of commits to stable@xxxxxxxxxxx

( Sidenote: rarely does it make sense to port a conflicting commit to
-stable. The risks of introducing some regression are just too high.
Cherry-picking of commits, (while not entirely risk-free of course),
is far more robust in practice. (conflicting backmerges do happen too
occasionally, for high-profile bug fixes that justify the cost.) )

So this 'send the list to stable@xxxxxxxxxx' step is simplified via
these tags:

Cc: <stable@xxxxxxxxxx> # .32.x: a1f84a3: sched: Check for an idle shared cache
Cc: <stable@xxxxxxxxxx> # .32.x: 1b9508f: sched: Rate-limit newidle
Cc: <stable@xxxxxxxxxx> # .32.x: fd21073: sched: Fix affinity logic
Cc: <stable@xxxxxxxxxx> # .32.x

I'd have done that via a plain email in any case - so this scheme does
not enable anything new - it just simplifies the process and makes it a
bit more robust.

Ingo
--
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/