Fwd: KDE Frameworks Release Cycle

Michael Pyne mpyne at kde.org
Tue May 20 21:00:41 UTC 2014


On Tue, May 20, 2014 16:38:54 Aaron J. Seigo wrote:
> in support of what Kevin is going after here:
> 
> the monthly bugfix releases sound awesome on paper, but they don't always
> work. i've seen significant regressions in recent releases due to patches
> being backported with poor judgment, resulting in bug reports by users.

And these are backports done by KDE devs, no? Imagine how bad the regressions 
might be if backports are done only by downstream distributions with far less 
experience with the codebase.

> this has also happen less recently, of course. it just simply _happens_.

This is true, stuff happens. But we have to think about it probabilistically. 
I don't think anyone is asking for an ironclad solution, simply a "give us the 
less bad workable option".

Even the packagers' "no new features" policies can be considered as a 'least-
bad' course of action: I don't think anyone would oppose minor new features 
that can be genuinely, 100% guaranteed to cause no additional bugs or 
regressions whatsoever.

But of course, experience has shown that such guarantees are lies. Taken 
statistically over the mass of commits they package, most of the non-rolling 
distros have converged on "bugfix-only" policies as they provide the best 
tradeoff of fixing bugs and regressions given limited testing and QA budgets 
and timelines for all parties concerned.

Even rolling distros still tend to have varying concepts of branch stability 
as they work to integrate upstream releases. E.g. my Gentoo box only marked 
the 4.12 branch as stable the other day, when we were already up to 4.12.5.

> the monthly bug fix releases are NOT a panacea, they are just better than
> not doing anything at all for N months. this is something everyone ought to
> accept: it is reality.

Well hey, I think we're now all in agreement. :)

> there is, however, a high rate of success for backported patches. the
> overwhelming majority do what they are supposed to. that is also reality.

Yup.

> the actually interesting question is how many of those successful patches
> are so important that users need them now versus 6 months from now, and how
> bad regressions are. those measurements are not objective. they require
> some values to be expressed and applied to them. some may not think the odd
> regression is a big deal, some might think it is THE thing to avoid.
> quantity, quality, flow, reliability, etc...

Agreed.

> the Frameworks team would probably do everyone a favor by clearly stating
> their goals in terms of stability expectations and rate of change so we know
> how to weight the different outcomes that happen.

Honestly I think they've been fairly clear. The issue is that there are big 
flaws in the current KDE4 development model, which the current proposal is 
trying to address. As it stands now, to get a bugfix to the users quickly you 
have to develop a bugfix and commit against 2 (sometimes 3) different 
branches, and to get a new feature to the users takes ~6 months in the average 
case. And there are ongoing developer-time issues trying to do good testing of 
backported patches.

The proposal aims to fix that by acknowledging the reality that developers are 
not going to be able to always maintain 2-3 separate development branches 
(especially with the exploding number of git modules) by moving to a single 
bugfix+feature development track, but doing rapid iterations to ensure that 
the Frameworks continue to work well together.

I think this has all been clear and explained well enough.

But this shift, while being beneficial to the developers, would be very trying 
to downstream packagers who would have to deal with quite some additional 
issues of their own if this were to be implemented as proposed (we've already 
seen how the proposal had to be modified to account for new library 
dependencies, for instance).

> in any case, having long term stability branches is not the worst thing in
> the world imho and is a good idea. it's not popular amongst many
> developers, admittedly. i tried to advocate for this for both kdelibs 4.7
> and kde- workspace 4.11 .. the former was rejected, and problems ensued;
> the latter was adopted and it has worked very nicely, though there was some
> degree of skepticism. so that's a hump to climb over which Scott is
> evidently hitting.

I think I proposed this as a compromise as well. Or rather, accept the reality 
of developer (in-)attention not only by integrating on a single main 
development branch, but also by concentrating the "suck" that goes into 
maintaining a stable branch into one discrete action. At best we would get 
something like the KDE 4 dev process ideal: The developer with the most 
experience of the code backports bug fixes which they feel are important 
(possibly automatically with a commit keyword?), which our distros can all 
ingest backports from in order to do needed testing (since we're still 
acknowledging we're **not** able to do more than automatic/CI testing on 
stable). At worst, we end up with the proposal initially proposed (maybe with 
some downstream packagers working in common to backport patches they need for 
their users on our KDE-provided stable branch).

> >  - Developers backport "safe" fixes to the stable branch.
> 
> this is a critical issue. not enough developers who backport are able to
> accurately judge this consistently enough. many reasons exist for this
> (tooling, testing, experience, blah blah) but reasons are just reasons -> if
> we rely on developers to backport safe fixes, it's going to break (because
> it does already) and that will defeat one aspect of what Kevin is trying to
> achieve: higher quality
> 
> there are ways around this, however! it is not uncommon in other projects
> for people to "own" a long term branch and only they merge in patches.
> period. that person needs to be disciplined (so they don't just become a
> rubber-stamp bureaucrat), but this is one area where having a bottleneck is
> actually good: you don't WANT lots of changes. you WANT a slow rate of
> change. you WANT every change to be justified.

This might be much better (though I wouldn't judge the current stable process 
so harshly). It comes down to "are there maintainers available?", of course, 
but it is certainly more doable than the amorphous "the community is 
responsible for stable" that we've noticed doesn't work too well already.

> i honestly don't see having a long term branch working otherwise. and
> perhaps that's were some of the tension arises: one party is asking for
> something that doesn't work but which they feel a need for, and the other
> party doesn't want to do something that doesn't work ;)

> >  - For complex changes the can't safely be applied to the stable branch, a
> > new branch off of stable is created and the developer issues a call for
> > testing (maybe on this list).  If testing succeeds, it gets merged back to
> > stable.
> 
> my recommendation: no. don't even try this. such changes get folded into the
> next feature version. users will survive.

Agreed

> >  - Updates to the stable branch get released monthly at the same time as
> >  the
> > 
> > monthly feature release.
> 
> that's a lot of overhead to cater to a subset of KDE's audience. since the
> stable branch is supposed to be always stable, is there any reason why
> distributions that desire that stability couldn't just grab a snapshot
> whenever their release schedule deems it suitable?

I was wondering this myself, but in any event if we're willing to release 
tarballs which we haven't even manually verified can be built (after all, our 
packagers will let us know... ;), it wouldn't be much additional overhead I 
think (i.e. could be almost fully scriptable), as Scott has suggested in his 
reply.

Regards,
 - Michael Pyne


More information about the release-team mailing list