[Kdenlive-devel] Draft mantis policy - RFC

Mads Bondo Dydensborg mads at dydensborg.dk
Fri Oct 31 22:36:33 UTC 2008


Hi all

As promised a draft for a mantis/issue tracking policy/guideline. Its a bit 
wordy, I am afraid. If you can't read it all, then perhaps have a look at the 
workflow diagram. I hope you care to read it and comment. The point is not to 
get facist about this, but rather to try and use Mantis in the most effective 
way for Kdenlive.

-o-

Content:

* Why A Policy?
* A Bugs Life
* Mantis roles
* Relation To Versions

* Why A Policy? 

Mantis as an issue tracker is not particularly strict in its requirement to 
the workflow followed by the users (reporters, updaters, developers, etc). 
The reason for a policy is to get on the same level, at least among the 
updaters, developers, etc. and thereby ensure that we don't "waste our time" 
when handling issues.

The goals of the policy are many, including the following:
- ensure that all issues reported gets treated/solved, thereby confirming 
reporters in the belief that their reports matter, and ensuring the continued 
feedback from a hopefully growing userbase.
- channel feedback from the userbase into development and thereby improve the 
quality and usability of Kdenlive
- support the developers, and minimize the time they need to spend 
with "administrative" tasks, increasing instead the time they have for actual 
coding/fixing.

The policy tries to meet these goals by laying out some guidelines on how to 
use the implicit workflow in Mantis

* A Bugs Life

Mantis by default supports the following phases in a bugs life (text copied 
from the manual):

- new - new bugs
- feedback - bug requires more information, the original posters should pay 
attention
- acknowledged - bug has been looked at but not confirmed or assigned
- confirmed - confirmed and reproducible (typically set by an Updater or other 
Developer)
- assigned - assigned to a Developer
- resolved - bug should be fixed, waiting on confirmation of fix
- closed - bug is closed
 
I propose we use them slightly differently:

- new: new bugs
- feedback - bug requires more information, the original reporter should pay 
attention
- acknowledged - bug has been confirmed by someone besides the reporter, and 
the issue report principially contains enough information to reproduce the 
issue and for a developer to fix the issue
- assigned - a developer has taken responsibility for the issue and is working 
on a fix
- resolved - bug is fixed in SVN, the fix has been tested and is working
- closed - the bug is fixed in a released version of Kdenlive.

I have tried to illustrate the state transition/the workflow on the attached 
image, which I hope is self-explaining. The only thing that may need a little 
more explanation is the resolved=>close state change, which is related to 
version handling. See below.

* Mantis roles

Mantis operates with different roles. Here is a list of the three most common 
and their suggested/standard capabilities:

reporter: can report an issue. Can monitor issue, and other read-only 
operations
updater: can change the status of an issue, confirm it, review it and close it
developer: as updater, but can assign, move, delete and reopen issues

reporters: Every user that can do anything at all currently needs to be at 
least reporter. Its the basic role.

updaters: I suggest to make the updater role more used. We should have a 
number of updaters, that works as a filter against all the duplicate and 
incomplete bugs, and also as the QA for commits to SVN. For new issues, the 
updaters should see if they can reproduce, if more information is needed, if 
its a duplicate, or already fixed on SVN, or similar. When the issue is 
complete, perhaps after a period as "feedback", it gets acknowledged by an 
updater, and hopefully a developer will look at it. When the developer 
commits a fix, an updater tests the fix, or make sure that the original 
reporter tests it (both, if at all possible) and when the updater is 
satisfied it works well, the updater change the status to resolved. An 
updater can of course also be a reporter, but one should probably not 
acknowledge ones own reports - its "good style" to have someone else 
acknowledge them. (An exception may be feature requests?)

developers: Developers should only really worry about acknowledged or assigned 
issues, and fix them. When fixed, they should refer to the issue in the 
commit logs to svn. It would be nice, if we could use the assigned state as a 
volunter way to track who is doing what, but that may just be me that like 
that sort of thing. Developers can of course also operate as updaters.

Obviously not all issues can be handled like this, often the complexity is to 
high for updaters to be able to handle it. In those cases, the updater may 
just have to acknowledge the issues and have the developer look at them. 
Still, if the updaters can ensure a high quality in, say, 75% of the reports, 
it should still lighten the load on the developers.

* Relation To Versions

There are some mechanisms that one can wish to support using the version 
fields in mantis:

a) track changes to SVN in relation to issues
b) track changes to released versions (ChangeLog)
c) track plans for what to fix in which version (Radmap)

I suggest we do like this:

a) whenever a a fix to an issue has been reviewed and approved, the bug is 
resolved and "Fixed in version" is set to "current svn (KDE4)", and a note is 
added about what SVN rev number that contains a fix. Also, as mentioned 
above, commiters refers to issues, when committing fixes for them.
b) whenever a version is released, all bugs fixed since the last release, are 
closed, and their "Fixed in version" is set to the version number of the 
release (e.g. 0.7.0).
c) whenever an issue is acknowledged, its "Target version" is set appropriate. 
In between versions, the large majority is the next version (currently 
0.7.0), but some major stuff (E.g. "Implement seamless googlevideo support to 
beat imovies marketshare") could go on versions futher in the future (e.g. 
1.0.0). As we near a version release, it should get harder and harder to get 
on the next version, only critical stuff should get on, and issues instead 
goes on the next-next version (currently 0.7.1).

re c) I think this is a reasonably way to do it, but we should probably have 
some generic names, while we are working, perhaps "next-version (0.7.0)" 
and "future-version (0.7.1)" or something like that?

Also, Jean-Michel has suggested we make a special version "To-do list", that 
is a special version that only contains feature requests (Is that about 
right, Jean-Michel?) I am bit reluctant to do that, because I think feature 
requests deserves to be part of the normal roadmap, and by doing a special 
version for them, they won't be part of the roadmap. Instead I think we 
should provide a number of saved filters that show e.g. all currently 
acknowledged but not resolved feature requests. But that may just be me?

-o-

So, that was my suggestion for a Mantis policy. If it is not clear, all of the 
above is very much a suggestion. But obviously I wrote it in the hope that it 
might prove useful. I am a strong believer in issue tracking - it probably 
shows - and I hope that you will post some comments on this and that we 
eventually can agree on some sort of common understanding.

Regards

Mads

-- 
Mads Bondo Dydensborg   mads at dydensborg.dk   http://www.madsdydensborg.dk/

United States Patent 6,368,227:
A method of swing on a swing is disclosed, in which a user positioned on a
standard swing suspended by two chains from a substantially horizontal tree
branch induces side to side motion by pulling alternately on one chain and
then the other. 
            -- This is not a joke - go look it up.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mantis-workflow.png
Type: image/png
Size: 71849 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kdenlive/attachments/20081031/948f7ee0/attachment.png>


More information about the Kdenlive mailing list