How do I create a bug report

From Free Pascal wiki
Revision as of 15:37, 31 July 2014 by Jdlinke (talk | contribs)

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

This document contains some guidelines for using the Lazarus bug tracker as a reporter. This document is written for Lazarus users, who identify bugs, have recommendations, want to submit patches, or find other issues and want to report these to the Lazarus development team.

The FreePascal bug reporting procedure is similar to the one described here.

Lazarus code compilation errors

If you have errors when compiling code from latest SVN revision, please contact the Mailing list or better join #lazarus-ide IRC channel on irc.freenode.net. Then the problem should be solved more promptly.

Check if the bug is not already reported

  1. Use the search field in View Issues. Hint: The searching is not smart: e.g. if you have a problem using TEdit.SelStart, search for "SelStart".

If the issue is already reported:

  • reopen it, if the bug report has been resolved or closed - use Reopen Issue button
  • add a note, if you have reproduced this bug in a different situation than reported
  • you can set the system to monitor changes in this bug report - use Monitor Issue button

Note: you need to be logged in to perform these operations, see section #Logging/Creating new account.

Enter the bug in the Lazarus Bug Tracker

  1. Go to Lazarus bug tracker
  2. You need to be logged in, see section #Logging/Creating new account
  3. Go to the Report Issue page. Fill in as much as you can and know. The more specific, the better.
    • Important fields are the OS and Product fields and the steps to reproduce this issue. If an issue cannot be reproduced by the developers, they cannot start to fix it! Do not forget to mention your specific architecture/configuration (32 or 64 bit, little or big endian if both are possible on your platform, version of your operating system).
    • If possible, please upload a small test application that shows the bug. This will likely speed up a fix.
    • If there is some graphical error, it is useful to upload a (partial) screenshot (in png or jpeg, not bmp format).
    • If it is a crash, try to create a backtrace. See Creating a Backtrace with GDB for more info.
    • You can try to reproduce the bug on as many different platforms as you can - it helps to determine if it is widget specific issue.
    • If you have a possible solution, you can add a patch - see Creating A Patch, which will speed up the process.
    • You can boost fixing the bug by submitting a bounty, see Bounties.

The following page contains good tips about How to Report Bugs Effectively.

Logging in / Creating new account

You need to be logged in to edit or submit bug reports. If you are logged in as guest, you need to log out first (Guests cannot make reports, only watch them). If you already have an account, go to the login page, otherwise create a new account on the sign up page.

What should be submitted via the Bug Tracker?

  • Bugs: If you identify errors, glitches, or other faults in FPC, Lazarus, fpGUI, etc
  • Suggestions: If you have identified a better way to do something
  • Improvements: If you can make something work better

Please note: The Bug Tracker is not designed to field questions. These should be directed toward the Forums [1].

Submitting Bugs

As when submitting any report, please be sure to include as much useful information as possible. In addition to the various prompts and text boxes available on the "Report Issue" page [2], if may be helpful to upload a sample of code or a project that demonstrates the bug you are experiencing so that others can replicate, identify, and fix it.

If you are able to correct the problem, you should Submit a patch (Creating A Patch).

Submitting Suggestions

(I will work on this shortly, or feel free to add to it yourself -jdlinke)


Submitting Improvements

(I will work on this shortly, or feel free to add to it yourself -jdlinke)


Attachments

If you add source code or project sample attachments for the bug report (strongly recommended, see Tips on writing bug reports), please compress them using preferably these formats:

  • zip (.zip)
  • gzip (.gz)
  • tar.gzip (.tgz/.tar.gz)

Other formats like 7zip, Bzip and RAR are ok, too. Nowadays tools for them are easily available.

Undertanding the Report Status

An issue can have the following states:

  • New: it has entered in the bug tracker, but hasn't been assigned, acknowledged, confirmed or resolved.
  • Acknowledged: the Lazarus team has seen the issue and has set its target, though they have not necessarily verified that the bug is valid
  • 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/implement 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.
  • Feedback: the reporter should provide feedback to answer any questions posed by the Lazarus team, or to confirm that the issue is fixed satisfactorily.
  • 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.

See also

  • Creating A Patch If you have modified the source code to implement a solution, this article helps you to add it to your bug report in the most efficient way, so that developers can add it to the main code as fast as possible
  • Database bug reporting Specific info and sample programs for database bugs
  • Moderating the bug tracker