[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] RFC: LTS and stable release scheme



On Tue, Oct 6, 2015 at 3:52 PM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>> On 06.10.15 at 16:09, <wei.liu2@xxxxxxxxxx> wrote:
>> What do you propose when we regarding stable branches when we switch to
>> 6 months cycle?
>
> See the chicken-and-egg problem: I can't answer this, because the
> issues with the stable trees are the main reason I don't support the
> change to the release cycle (yet).

OK, so we have to decide on a *set* of factors, rather than just one.

Let's try to be analytic.

So we have so far identified 4 "parameters" that we can tweak:

1. Release frequency.  At the moment, this is "9 months".
2. Length of time bug fixes are backported.  At the moment this is "18 months".
3. Length of time security fixes are backported.  At the moment this
is "36 months" (i.e., original 18 months of bug fixes + 18 further
months of security-only fixes)
4. Subset of releases given treatment for #1 and #2.  At the moment
this is "all".
5. The release frequency for maintenance release.  At the moment this
is every 3 months.

Let's call this "R9 S3 {18,36}"  (Release every 9 months, maintenance
release updates every 3 months, all releases get bug fixes for 18
months and security updates for 36 months".

Metric-able criteria that are important to people:
1. Amount of time once a feature has been accepted until the time it
shows up in a release.  This is directly related to release frequency.
2. Amount of time a bug fix has been checked into tree before it shows
up in a maintenance release.  This is directly related to the
maintenance release frequency.
3. Amount of time a release receives bug fixes and/or security
updates.  These are related directly.
4. Total amount of work to maintain stable releases.  The *number* of
such releases is directly related to all of the above, but must be
calculated.

"All releases the same" is a criteria that's been brought up, but I
think there are probably practical implications we haven't teased out
yet.

(Please let me know if there are other criteria we should be considering.)

The steady state for "R9 S3 {18,36}" is to have 2 releases receiving
bug fixes, and 2 releases receiving security fixes at any given time;
and this happens every 3 months; total of 8 bug-fix and 8
security-only ports per year.

There are many people in favor of changing #1 to "6 months".  This
gives us "R6 S3 {18, 36}".

The steady-state for "R6 S3 {18,36}" is to have 3 releases receiving
bug fixes and 3 releases receiving security-only fixes at any given
time.  This gives is a total of 12 bug-fix and 12 security-only ports
per year.

It has so far been assumed in this discussion that this would be an
undue burden, and therefore not acceptable.  But it's worth asking
whether that is actually the case.  It has been argued, for instance,
that the difficulty in backporting a patch scales with the distance in
commits that the patch has to be ported over.  Porting a patch to a
releases 3, 9, and 15 months ago isn't 1.5x as much work as porting it
to one 3 and 12 months ago.

But I would guess that the porting *is* more work; and the building,
testing, and releasing certainly is 1.5x more work.

We could also explore other options, like having more automation, or
spreading the work of porting patches among more people.

Another option could be to decrease the frequency of maintenance
releases.  "R6 S4 {18,36}" gives us 9 bug-fix and 9 security-only
ports per year -- not much more than what we have now.  But of course
this increases the amount of time between a bug fix and the time it
shows up in a maintenance release, which is less desirable.

Another thing which has been suggested is to treat releases
differently; for instance, every 4 releases (24 months), release an
"LTS" release that has longer support requirements.  If we chose to
have LTS releases, we may then also choose to have normal releases get
a shorter support window.  It's also been suggested that security
fixes are really what downstreams need from an LTS release; once
you've been using something for more than 2 years, you've probably
already found all the bugs which bother you.

So one option would be "R6 S3 {12,12} L24 S3 {24, 48}" (Regular
releases every 6 months, maintenance releases every 3 months, fixes
backported for 12 months; LTS release every 24 months, bug-fixes
backported for 24 months, security fixes backported for 48 months).
Steady-state this gives us a max 3 releases receiving bug-fix
backports and 1 release receiving security backports at any given
time.  This gives us 12 bug-fix and 4 security-only ports per year.

Any thoughts on this?  Anything else to add or discuss?

Personally I like the LTS model.  I think arguably if we use the
numbers I chose above, it shouldn't be any more actual work than it is
now (as there are still only 4 releases every 3-month maintenance
window), and I don't understand the concern with "treating releases
differently".

 -George

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.