Fixing Bugs

Andrew Chadwick edited this page May 20, 2016 · 6 revisions
Clone this wiki locally

There are several aspects to handing bugs properly.

  • Triage new and old issues. Close stale bugs.
  • Classify issues
  • Reproduce the issue on hardware you own.
  • Diagnose bugs, and fix them if you can.
  • If we find it can't be fixed, document a workaround in the issue or update the FAQ. Then close the issue.
  • If it can be fixed, send us a patch or a pull request containing your fix. The issue should then be closed.

Triage

Triaging is the process of reviewing new and old issues to make sure they are as complete as they can be, and are still relevant to the current phase of development.

Classifying

MyPaint development happens in phases. The currently planned releases all have milestones associated with them.

We use labels extensively in the tracker:

  • General Type:
    • bug - a confirmed, reproducible software bug in MyPaint.
    • docs - an issue whose closure involved updating documentation.
    • enhancement - a feature request.
    • performance - slowdowns, excessive memory consumption, etc.
    • ux - issues especially relevant to the user experience.
    • project - relates to the MyPaint project as a whole.
    • translation - general problems with program internationalization, or reports about specific translations.
  • Platform:
    • windows - Windows-specific issues.
    • osx - issues specific to Mac OS X ports.
  • State tags:
    • user-support - user support requests. The tracker is not really for these, but they can turn into enhancement requests.
    • bitesize - small issues especially suited for new contributors.
    • needs-info - incomplete issues, ones we can't reproduce.
    • works-for-me - issues which remain unreproducible despite good information.
    • upstream - issues caused by an upstream project.
    • duplicate - duplicate issues should be closed speedily, with links to the bugs they are duplicates of.
    • stale - issues which haven't been made workable for some time. These should be closed after a reasonable period if they're not progressing.
    • wontfix - closure reason, indicates that a decision has been made not to fix an issue.

Diagnosing

See DEBUGGING.md in the code for details of how to debug MyPaint most effectively or run the profiler.

See Also