Graham Percival <gra...@percival-music.ca> writes:

> On Tue, Jul 10, 2012 at 01:21:38PM +0200, David Kastrup wrote:
>> I mean, we have too few categories for regressions.  I can see the
>> following:
> -snip-
>> My personal opinion is that
>
> My personal opinion is that we should not discuss major policy
> changes in the middle of a thread about dots and staff sizes.

It was in the course of changing the status to "Critical".

> There is a proposal to change the stable release policy:
> http://lists.gnu.org/archive/html/lilypond-devel/2012-06/msg00462.html
> http://lilypond.org/~graham/gop/gop_3.html
>
> That proposal is currently "under debate", although there was such
> little discussion that I'm at a loss as to what to do next.

My personal beef with the proposal is that I just can't relate to it.
So I don't see myself as being able to make any worthwhile contribution.

The proposal is to make the definition of "critical regression" depend
on the regtests and double the size of the regtests in order to catch
the same amount of regressions.  It does not change the principal
problem: if we now discover bad recently introduced behavior, we have
the choice not to create a regression test for it (in which case the
release can go forward), or the release will get blocked again once the
test has been created.

I think we can agree that refraining to create relevant regression tests
on purpose in order to make the release go forward would be
counterproductive.

There is a further proposal to reorganize the regtests, do more
programming work on them, and a "roadmap" focused on tieing things down
based on fuzzy goals like "GLISS" which is currently a random set of
proposals collected over the course of years.

Basically, this is a bunch of quite fuzzy new red tape only loosely
related to the tangle of red tape we have now holding up 2.16, and with
no view who would be motivated enough to implement the required
materials.

We are currently having a problem of people losing motivation, and so I
consider it not all too surprising that the level of excitement for
reviewing red tape is not particularly high, seeing how little
enthusiasm there is left for reviewing code.

> The whole point of GOP was to have a clear discussion with no
> surprises -- everybody would know when proposals would arise, there
> would be two weeks (or more!) of discussion, so that nobody would miss
> anything if they weren't paying attention to every little bug
> discussion email thread, etc.

Ok, here is my take on the current situation.  I'll start with a few
observations.

Releasing a stable release brings progress to LilyPond users.  LilyPond
users are the most promising clientele for recruiting future developers.
People start actively working with the versions they actually know and
use.  The less connections remain between the versions in the hand of
the users and the current development source, the less likely their own
work is suitable for eventual inclusion in LilyPond.  So we want to
avoid having stable versions that are quite outdated.

Regressions and bugs are a bad thing: we want to avoid them.

Detecting regressions and bugs is a good thing: we don't want to create
incentives to avoid detecting them.

What makes detecting bugs a good thing?  We gain the opportunity to fix
them, and we gain knowledge, the opportunity to evaluate their severity.

A stable release with severe bugs is a problem.  A stable release with
some bugs and regressions is pretty much unavoidable.

We don't differentiate the severity of regressions.  The smallest
regression discovered to occur under any circumstances will block a
stable release, which is a considerable cost.  That means that
discovering small regressions is doing the LilyPond community a
disfavor.

Policies should not turn good things into bad things.  So our knowledge
about regressions should be used for making a better qualified decision
when to release stable versions.  At the current point of time, it just
leads to the decision "no release".  A monkey could make such a
decision, and indeed, this has been a design goal of creating the
decision making procedures.  They work by following rules rather than
common sense.  There is no risk of making a bad decision, because there
is no risk of making a decision at all.  The facts make the decisions.

But facts don't have common sense.  They have no conscience.  They have
no sense of decorum.

When we design our rules for dealing with facts, we have to take this
into account.  And that requires leeway for incorporating common sense.
The rule sets you write are based on "let's assume that we don't have a
release manager at our disposal with any amount of clue and good sense".

I don't think that is a reasonable premise.  Not given the current
release managers.  And if we get others, they are not likely to follow
rules anyway.

Other large projects try to evade personal responsibility by making
timed releases.  And guess what: even though their rule sets are as
rigid as our bug-based releases, when a real whopper turns up, they
disband their rule set temporarily, and take a week or even a month
longer.  So their "facts don't affect the release date" is a white lie
overriden by common sense after all.  And I wish that we were able to do
a similar override to our "facts and rules are the only things affecting
the release date" stance when common sense makes this desirable.

If we work from the premise "users should be saved from regressions",
then we would backport any regression fix to a regression having occured
between 2.12 and 2.14 to the 2.14 stable branch.  We don't do that.  We
only fix the regressions in 2.16.  Which is of absolutely no advantage
to the user since the user does not even _have_ 2.16.

I don't see that the underlying problem is fixed by creating more rules
and policies.  So I am not overly motivated in getting involved in their
design, and I have the suspicion that I am not alone with that.

Let me quote from the News:

    @newsItem
    @subsubheading Release candidate 1 of 2.16 - LilyPond 2.15.8 released!  
@emph{Aug 01, 2011}

    LilyPond 2.15.8 is out; this is the first release candidate of
    the upcoming 2.16 stable release.  All users are invited to
    experiment with this version.  New features since 2.14.2 are
    listed in the @qq{Changes} manual on the website section about
    @ref{Development}.

    There are no known Critical issues with this release.  If no
    Critical bugs are found, then the official 2.16.0 release will be
    on 08 Aug 2011.  If you discover any problems, please send us
    @ref{Bug reports}.

    @newsEnd

What is the meaning of "release candidate"?  It is soon a full year
since this "release candidate" was announced, and the current state of
LilyPond is far removed from the state at that time.

We are obviously doing something wrong, and it is costing us users,
developers, and motivation.  And I don't see that fine-tuning the
respective GOP proposals will bring them back.

At the current point of time, I don't see that we can win much by
streamlining batch processes for turning out decisions.  They have not
arrived at a state where their output is convincing, so maybe it is time
to arrive at a few decisions manually.

I don't see how we can otherwise get back to a state where working on
bugs and regressions and other parts of LilyPond is not a punishment
and/or guilt trip, but actually rewarding.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to