bug-lilypond
[Top][All Lists]
Advanced

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

issue classification debate


From: Graham Percival
Subject: issue classification debate
Date: Sun, 13 Dec 2009 11:53:32 +0000

I wanted to wait until GOP started, but it seems there's a lot of
interest in this now.  Here's my proposed new classifications for
issues.

There are four hopefully-not-really-contradictory goals, listed in order:
1.  easy for core developers to find the type of bug they want to work on
2.  easy for new developers to find the type of bug they want to work on.
3.  easy for non-technical, non-musically-literate, inexperienced Bug
Meisters to add+classify items[*].
4.  understandable by normal users who haven't read the issue tag
descriptions in the CG.

[*] This isn't an insult directed at our current Bug Meisters; it's
just my observation that we cannot afford to require that the bug
meister know anything about lilypond programming, or even be an expert
lilypond user.  We don't have enough volunteers to be that picky.  But
that's ok; remember, I did a great job (if I may say so myself)
despite not having a clue how vocal music worked, either in printed
music or in lilypond.


%% for Type, we match the first relevant item on the list.
Type-collision: keep
Type-defect: keep.  However, this will now include all defects, not
just "minor code changes".  (see below)
Type-documentation: keep
Type-build: new type, but I think it's worth it.  Used for GUB,
makefiles, stepmake, and python scripts which are used in the build
system.
Type-scripts: convert-ly, lilypond-book, etc.
Type-enhancement: keep.  However, this will now only be for "new
features", not "large code fixes".  (see below)
Type-other: keep

Defect vs. Enhancement: historically, the idea was that a fix which
required a large amount of new code would be an enhancement.  For
example, if two grobs were colliding but it would require a new piece
of architecture to detect the collision, this would be classified as
an enhancement.

I've had any number of debates / clarifications about this over the
years, and I'm sick of it.  I'd like to say that an enhancement would
be a new user-visible feature (such as the baroque tablature stuff),
while anything that fixed the expected behaviour would be a collision
or defect.

This proposal might violate goal #1 (be convenient for core
developers).  I'm willing to drop this proposal if they speak out
against it, but I'd really like this to go through, since nobody else
understands the current distinction.



%% for now, only Critical will block a stable release.  In the future,
it would be nice
%% to consider High as also release-blocking, but that's not on the cards yet.
Priority-Critical: segfaults, or a regression within the last two
stable versions (right now, against 2.10.33)    anything currently
ranked as High would become Critical.
Priority-High: this is Werner's "really annoying" idea.
Priority-Medium: keep.  Also, any regression later against a version
less than 2.10.33 will become a medium item (unless the output is
sufficiently bad to qualify it as High).
Priority-Low: keep
Priority-Postponed: keep

At the moment I have no ideas as to how to assign any priority below
High.  If anybody could propose guidelines that inexperienced,
non-musically-literate Bug Meisters could follow, that would be great.
 The best I can think of is to say "try to have 20% postponed, 40%
low, 30% medium, and 10% high" and let them try to do relative
rankings.


%% Opsys: no change

%% Tags
Regression: new tag, taking over the old Priority-Regression.  As stated above,
   very old regressions no longer get release-blocking priority.
bounty, maintability, patch, frog, performance, security: keep
Warning: renamed from "warning-nitpick" due to the way google deals with tags.
    I'm going to add a link to "label:warning" from the CG, since these are
    AFAIK easy things for Frogs to work on.

Remove engraving and usability: these now get wrapped into the normal
issue type and priorities.


Cheers,
- Graham




reply via email to

[Prev in Thread] Current Thread [Next in Thread]