Difference between revisions of "Moderating the bug tracker"

From Free Pascal wiki
Jump to navigationJump to search
m
(29 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
{{Moderating the bug tracker}}
 
{{Moderating the bug tracker}}
  
This document contains some guidelines for using the Lazarus [http://www.lazarus.freepascal.org/mantis/ bug tracker]. This document is written for two groups:
+
This document contains some guidelines for using the Lazarus [http://bugs.freepascal.org/view_all_bug_page.php?project_id=1 bug tracker]. This document is written for two groups:
 
* lazarus developers, who will try to fix bugs
 
* lazarus developers, who will try to fix bugs
 
* moderators, who will support the handling of issue by prioritizing them and making sure that they reproduceable.
 
* moderators, who will support the handling of issue by prioritizing them and making sure that they reproduceable.
Line 10: Line 10:
 
* new: it has entered in the bug tracker
 
* new: it has entered in the bug tracker
 
* acknowledged: the Lazarus team has seen the issue and has set its target
 
* acknowledged: the Lazarus team has seen the issue and has set its target
* assigned: the issue has been assigned to a lazarus developer, who will try to fix it
 
 
* confirmed: a member of the Lazarus team has duplicated the bug or agrees that the feature should be implemented
 
* confirmed: a member of the Lazarus team has duplicated the bug or agrees that the feature should be implemented
* resolved: the person to who the issue was assigned thinks the issue can be closed. Then he also sets the resolution, for example '''fixed''' or '''not an issue'''.
+
* assigned: the issue has been assigned to a Lazarus developer, who will try to fix it
 +
* resolved: the person to whom the issue was assigned thinks the issue can be closed. Then he also sets the resolution, for example '''fixed''' or '''not an issue'''.
 +
* closed: the reporter tested the fix and agrees with the fix. Periodically resolved issues that have not been closed by the reporter, will be a closed by the bug tracker administrator.
  
== How can moderators support the Lazarus developers ==
+
== How can moderators support the Lazarus developers? ==
  
 
=== Acknowledging issues ===
 
=== Acknowledging issues ===
 
==== Setting the target ====
 
==== Setting the target ====
The most important step when you acknowledge an issue, is that you set the target field. The target field helps the lazarus developers to prioritize their bug fixing effort. Generally there are three options: '''next release''', '''1.0''' or '''post 1.0'''. For an explanation of these options, see [[Road To 1.0#1.0 or after 1.0]].
+
The most important step when you acknowledge an issue, is that you set the target field. The target field helps the Lazarus developers to prioritize their bug fixing effort. Generally there are three options: '''next minor release''' (e.g. 1.6.2), '''post next major release''' (e.g. 1.8) or '''post next major release''' (e.g. post 1.8). For an explanation of these options, see [[Road To 1.0#1.0 or after 1.0]].
 +
 
 +
* next minor release: patches, regressions (i.e. things that work in the current release, but got broken in the svn version) and crashes that can cause data loss.
 +
* next major release: improvements, major design changes, new features.
 +
* post next major release: things that are not likely to be fixed or incuded in the next major release (e.g. new widgetset).
 +
 
 +
There are two fields for the target:
 +
* LazTarget, which can be used to select issues for several (sub-)projects at once, for example Lazarus, Lazarus/packages and Lazarus/patches.
 +
* Target version, which is used by the [http://bugs.freepascal.org/roadmap_page.php road map].
  
 
==== Removing duplicate entries ====
 
==== Removing duplicate entries ====
When looking at new issue, you can also remove duplicated that are caused, because people submitted the same issue more than once. Sometimes the bugtracker takes a long time to process the new report and the reporter gets impatients and clicks on submit again. Those issues can be deleted.
+
When looking at a 'new' issue, you may need to remove duplicates that have arisen because people submitted the same issue more than once. Sometimes the bugtracker takes a long time to process the new report and the reporter gets impatient and clicks on submit again. Such 'issues' can be deleted.
  
==== Refering questions to the mailing list and forums ====
+
==== Referring questions to the mailing list and forums ====
If an issue doesn't describe a bug, but is only question or the reporter doesn't know how to use certain feature, you can refer him to the mailing list and/or the forums to ask his question. Then you can resolve the issue with resolution "'''not an issue'''". If you wish you can provide a short answer to the question, but the bug tracker is to enter bugs and feature request, not to provide support.
+
If an issue doesn't describe a bug, but is only question (or the reporter doesn't know how to use certain feature) you can refer him to the mailing list and/or the forums to ask his question. Then you can resolve the issue with resolution "'''no change required'''". If you wish, you can provide a short answer to his question, but the bug tracker is for entering bugs and feature requests, not for providing support.
  
==== Adding relations with other issues ====
+
==== Adding relations to other issues ====
 
The bug tracker supports setting relations between issues.  
 
The bug tracker supports setting relations between issues.  
  
The weakest relation is '''Related'''. This gives just a link between the issues. This can be useful, if you fixed one issue, it may fix the related issues too.
+
The weakest relation is '''Related'''. This merely links the two issues. This can be useful since if you fixed one issue, it may fix the related issue(s) too.
 +
 
 +
If two reports decribe the same issue, then you can set '''Duplicate of''' to the newest report. The other report then receives a link to that issue with '''Has duplicate'''.
 +
 
 +
You can use the '''Parent - Child''' relation between two issues to describe dependency. In order to fix the '''Parent''' issue, the '''Child''' issue must be fixed first. Sometimes it is usefull to ''clone'' a (big) issue and describe part of it in a separate '''Child''' issue.
  
If two reports decribe the same issues, then you can set '''Duplicate of''' to the newest report. The other report gets a link to that issue with '''Has duplicate'''.
+
==== Moving to the patches subproject ====
 +
Patches can be moved to the patches subproject. Patches are more visible there and can be managed separately from other issues.
  
You can use the '''Parent - Child''' relation betweem two issues to describe dependency. In order to fix the '''Parent''' issue, first the '''Child''' issue must be fixed. Sometimes it is usefull to ''clone'' a (big) issue and describe part of it in a seperate '''Child''' issue.
+
==== Referring to the fpc bug tracker ====
 +
If a bug is not in the IDE or the LCL, but in the RTL, FCL or the compiler, you can move the issue to the FPC project in the bug tracker.
  
==== Refering to the fpc bug tracker ====
+
==== Referring to the Lazarus-CCR bug tracker ====
If a bug is not in the IDE or the LCL, but in the RTL, FCL or the compiler, you can resolving the issue with resolution "'''not an issue'''" and refer the reporter to the FPC bug tracker.
+
Some projects or components hosted on Lazarus-CCR use the Lazarus bug tracker for tracking issues. Those issues should not reside in the Lazarus project: you should move them to the Lazarus CCR bug tracker.
  
 
=== Confirming issues ===
 
=== Confirming issues ===
Most of the time, the first step in fixing an issue, is creating a small example program that shows the issue. How difficult this is depends on the effort the reporter has made, when he submitted the report. Some people test programs to their report (very nice), some people only a code snippet (better than nothing) and some people nothing at all. Not all reports have adequate steps to reproduce.
+
Most of the time, the first step in fixing an issue is creating a small example program that demonstrates the issue. Reporters vary in the effort they make when submitting their initial report. Some people add test programs to their report (very nice), some people only add a code snippet (better than nothing) and some people add nothing at all. Not all reports provide adequate steps for others to reproduce the supposed issue. Going to the length of adding a small, compilable example program speeds identification and resolution of the issue you have identified.
  
If it is not clear from the report, you can ask the reporter the give steps to reproduce this issue and/or a test project.
+
If it is not clear from the Mantis bug report, you can ask the reporter to give steps to reproduce this issue and/or a test project.
  
 
If you manage to reproduce the issue, then you can set the issue to '''Confirmed'''.
 
If you manage to reproduce the issue, then you can set the issue to '''Confirmed'''.
 +
 +
=== Assigning issues to yourself ===
 +
If you think you can fix a reported issue, you can assign the issue to yourself.<br>
 +
Other users, including the original reporter will then know the issue is under someones attention.<br>
 +
Once you have provided a patch [http://wiki.lazarus.freepascal.org/Creating_A_Patch] you then set the target to the next stable release and unassign the issue (assign to nobody). This will signal to the maintainers that a patch is being offered for review.<br>
 +
If it turns out that you are unable to fix the issue you have assigned to yourself, simply unassign it.
 +
 +
 +
=== GTK 1 issues ===
 +
The gtk (i.e. the gtk version 1) widget set is not actively supported anymore by the Lazarus team, see [http://lists.lazarus.freepascal.org/pipermail/lazarus/2009-November/047069.html announcement]. If there is no problem when the gtk2 widget set is used instead, then the issue can be resolved with state suspended.
 +
 +
==Tags==
 +
 +
Below is a table with the tags utilized to mark groups of bug reports which aren't easily defined by the other options and their description.
 +
 +
{| class="wikitable"
 +
! Tag !! Description
 +
|-
 +
|gtk2||Represents all gtk2 specific bugs and is used to track what needs to be fixed before gtk2 becomes the default Linux widgetset.
 +
|}
 +
 +
==See also==
 +
* [[How do I create a bug report]] general information on submitting bugs, what should be covered in a bug report, and using the bug tracker.

Revision as of 15:10, 5 March 2017

Deutsch (de) English (en) français (fr) português (pt) русский (ru)

This document contains some guidelines for using the Lazarus bug tracker. This document is written for two groups:

  • lazarus developers, who will try to fix bugs
  • moderators, who will support the handling of issue by prioritizing them and making sure that they reproduceable.

We will use the term Lazarus team for both groups.

Life cycle of an issue

An issue can have the following states:

  • new: it has entered in the bug tracker
  • acknowledged: the Lazarus team has seen the issue and has set its target
  • confirmed: a member of the Lazarus team has duplicated the bug or agrees that the feature should be implemented
  • assigned: the issue has been assigned to a Lazarus developer, who will try to fix it
  • resolved: the person to whom the issue was assigned thinks the issue can be closed. Then he also sets the resolution, for example fixed or not an issue.
  • closed: the reporter tested the fix and agrees with the fix. Periodically resolved issues that have not been closed by the reporter, will be a closed by the bug tracker administrator.

How can moderators support the Lazarus developers?

Acknowledging issues

Setting the target

The most important step when you acknowledge an issue, is that you set the target field. The target field helps the Lazarus developers to prioritize their bug fixing effort. Generally there are three options: next minor release (e.g. 1.6.2), post next major release (e.g. 1.8) or post next major release (e.g. post 1.8). For an explanation of these options, see Road To 1.0#1.0 or after 1.0.

  • next minor release: patches, regressions (i.e. things that work in the current release, but got broken in the svn version) and crashes that can cause data loss.
  • next major release: improvements, major design changes, new features.
  • post next major release: things that are not likely to be fixed or incuded in the next major release (e.g. new widgetset).

There are two fields for the target:

  • LazTarget, which can be used to select issues for several (sub-)projects at once, for example Lazarus, Lazarus/packages and Lazarus/patches.
  • Target version, which is used by the road map.

Removing duplicate entries

When looking at a 'new' issue, you may need to remove duplicates that have arisen because people submitted the same issue more than once. Sometimes the bugtracker takes a long time to process the new report and the reporter gets impatient and clicks on submit again. Such 'issues' can be deleted.

Referring questions to the mailing list and forums

If an issue doesn't describe a bug, but is only question (or the reporter doesn't know how to use certain feature) you can refer him to the mailing list and/or the forums to ask his question. Then you can resolve the issue with resolution "no change required". If you wish, you can provide a short answer to his question, but the bug tracker is for entering bugs and feature requests, not for providing support.

Adding relations to other issues

The bug tracker supports setting relations between issues.

The weakest relation is Related. This merely links the two issues. This can be useful since if you fixed one issue, it may fix the related issue(s) too.

If two reports decribe the same issue, then you can set Duplicate of to the newest report. The other report then receives a link to that issue with Has duplicate.

You can use the Parent - Child relation between two issues to describe dependency. In order to fix the Parent issue, the Child issue must be fixed first. Sometimes it is usefull to clone a (big) issue and describe part of it in a separate Child issue.

Moving to the patches subproject

Patches can be moved to the patches subproject. Patches are more visible there and can be managed separately from other issues.

Referring to the fpc bug tracker

If a bug is not in the IDE or the LCL, but in the RTL, FCL or the compiler, you can move the issue to the FPC project in the bug tracker.

Referring to the Lazarus-CCR bug tracker

Some projects or components hosted on Lazarus-CCR use the Lazarus bug tracker for tracking issues. Those issues should not reside in the Lazarus project: you should move them to the Lazarus CCR bug tracker.

Confirming issues

Most of the time, the first step in fixing an issue is creating a small example program that demonstrates the issue. Reporters vary in the effort they make when submitting their initial report. Some people add test programs to their report (very nice), some people only add a code snippet (better than nothing) and some people add nothing at all. Not all reports provide adequate steps for others to reproduce the supposed issue. Going to the length of adding a small, compilable example program speeds identification and resolution of the issue you have identified.

If it is not clear from the Mantis bug report, you can ask the reporter to give steps to reproduce this issue and/or a test project.

If you manage to reproduce the issue, then you can set the issue to Confirmed.

Assigning issues to yourself

If you think you can fix a reported issue, you can assign the issue to yourself.
Other users, including the original reporter will then know the issue is under someones attention.
Once you have provided a patch [1] you then set the target to the next stable release and unassign the issue (assign to nobody). This will signal to the maintainers that a patch is being offered for review.
If it turns out that you are unable to fix the issue you have assigned to yourself, simply unassign it.


GTK 1 issues

The gtk (i.e. the gtk version 1) widget set is not actively supported anymore by the Lazarus team, see announcement. If there is no problem when the gtk2 widget set is used instead, then the issue can be resolved with state suspended.

Tags

Below is a table with the tags utilized to mark groups of bug reports which aren't easily defined by the other options and their description.

Tag Description
gtk2 Represents all gtk2 specific bugs and is used to track what needs to be fixed before gtk2 becomes the default Linux widgetset.

See also