Latest Posts

Changes in TriagingBugs

Editor Comment

added description for expired and opinion statuses


Revision Differences of Revision 7

#Triaging (working with) bugs ¶

This section will describe how to triage bugs, or in other words help out with bug reports. This is in a nutshell the process of checking if a reported bug is reproducible (i.e. following a set of instructions will always demonstrate the issue), adding extra information, changing status or adding tags etc. The purpose of triaging bugs is to help the developers and make it easier for them to fix the problem. All you need to get started is to register on [Launchpad](https://launchpad.net/), where the [Widelands bug tracker](https://bugs.launchpad.net/widelands) is. ¶

[TOC] ¶

###Note ¶
Please note that this can be considered work in progress, so more information may be added, edited or split out if it makes sense to create a new page. ¶


##How you can help ¶

To contribute with bug triaging, there are some fairly easy things you can do. This will mostly consist of confirming or improving bug reports. For some options you need to be a member of the Widelands dev team, but most actions are available to anyone. ¶

##Tips, tricks and useful links ¶
As mentioned above, you can find the bug tracker https://bugs.launchpad.net/widelands). This page will great you with a selection of what it considers the "hottest" bugs. Bug heat is affected by how many people are affected by the issue and number of duplicates (among others, see [this](https://bugs.launchpad.net/+help/bug-heat.html) for a full description). Bugs affecting large numbers of users will be listed first to give some suggestion of which issues should be fixed next. ¶

While this is interesting, for day to day work on bugs, it may be more useful to stay up to date on which issues have recently been commented or changed in other ways. One way of doing this is to take a look at [all bugs not marked Fix Released, sorted the most recently changed ones](https://bugs.launchpad.net/widelands/+bugs?field.searchtext=&orderby=-date_last_updated&search=Search&field.status%3Alist=NEW&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&field.status%3Alist=OPINION&field.status%3Alist=INVALID&field.status%3Alist=WONTFIX&field.status%3Alist=EXPIRED&field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.status%3Alist=FIXCOMMITTED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_supervisor=&field.bug_commenter=&field.subscriber=&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&field.has_blueprints.used=&field.has_blueprints=on&field.has_no_blueprints.used=&field.has_no_blueprints=on). If someones comments or in other ways changes a bug report, you will be able to see something has changed as soon as you refresh the page. (This can of course been done instead or in addition to subscribing to all bug mail. ¶

On the right side of the list of bugs, there are links to show specific selections of bugs, where [new bugs](https://bugs.launchpad.net/widelands/+bugs?search=Search&field.status=New) may be one of the more interesting ones. Below the various selections, the official bug tags are displayed. These will each link to all bugs marked with that particular tag. See further down for descriptions of the different tags. ¶

Launchpad allows projects to set milestones with specific goals. This means bugs can be targeted to a specific milestone. This allows people to see which bugs and blueprints are targeted for the next release, or later. Currently [build17-rc1](https://launchpad.net/widelands/+milestone/build17-rc1) is the only milestone Widelands has planned. ¶


##Bug status ¶

This is perhaps one of the most important element about bugs; the current status. Different bugs will have different statuses, and they can be changed when information is added, or a fix is created. The descriptions of the various statuses is based on [comment #3 here](https://answers.launchpad.net/widelands/+question/103964), but has been slightly elaborated in some places. ¶

- New: All bugs reported will initially have this status. This means these bugs may not even have been looked at by someone other than the reporter!) ¶
- Incomplete: These reports are missing information or discussion before it can be categorized
. If no information is provided, the bug will eventually expire. ¶
- Expired: When an Incomplete bug report does not receive any new comments or other changes for some time (60 days), it will be closed as expired. (Note: you cannot actually change the bug status to Expired manually, this only happens automatically.) ¶
- Opinion: The bug is considered closed, but discussion may continue. In the past this was used to mark issues which had an ongoing discussion, but due to the intended use bugs with this status did not show up in the list of open bugs.

- Invalid: Doesn't belong to Widelands. ¶
- Won't fixed: Won't fixed for some reason ¶
- Confirmed: The bug can be reproduced (by someone other than the person who reported the issue). No idea how to solve this yet. ¶
- Triaged: A comment should be added that describes were or how this can be fixed. Work on the bug can start immediately. ¶
- In progress: Someone is working on this **or** the fix is committed in another branch then trunk. (These bugs should also be assigned to the person or team working on it) ¶
- Fix committed: Fix is in trunk (development version of Widelands) ¶
- Fix released: Fix is in a released build or build candidate. A note should be added that states the package that contains the fix. All bugs fixed in build 16 or earlier have this status. ¶

##Confirming bugs ¶

When a bug is reported, the status defaults to new. Currently, this means only the reporter is known to experience this problem. It is not sure what is causing it nor if others are affected by it. A bug is considered confirmed if more than one person is experiencing the same problem. To confirm a bug, read through the description of the bug and see if you can reproduce the problem. Most good bug reports leaves instructions for how to trigger the problem. For instance: ¶
1. Start the game. ¶

2. Click the button marked "New game" ¶

3. The game crashed. ¶

All you need to do is follow the instructions, and see if you have the same result. If you do, you can mark the bug as confirmed. You can do this by clicking the yellow exclamation mark next to the current status and select "Confirmed" from the list. As always when you change status, you should leave a message stating why you changed it. In this case, something like "By following your instructions, the game crashed here as well." should be sufficient. You can also add additional information such as which operating system you are running, in case the crash is limited to certain platforms or post error messages if you saw any. ¶


##Tags ¶

Tags are a nice way to mark bug reports which covers the same area. By having some way to collect all the bugs affecting, for instance the editor it gets easier to find these bugs later on. This can be a developer who wants to work on the editor and want to know what needs to be done, when you want to reference an older bug in discussion because it deals with the same issue, or if you want to mark a new bug as a duplicate of an older one. ¶

Widelands has some official tags which should be used, and some unoffical ones in addition. You can see the current tags for a bug report just beneath the bug description (above the first comment). To add a new comment, click on the yellow exclamation mark and type in the tag you want to add. If you want to add more than one, add a space between them, for instance "crash editor" which will make it available for people searching for crash and editor, while "crasheditor" would only be found by people searching for that exact phrase. ¶

Most of the tags are straight-forward and easy to understand. Below are a list of the tags and a short description for each. Note that there may be some overlap between the different tags, and more than one may be relevant for a particular report. ¶

###Official Widelands bug tags ¶
[atlanteans](https://bugs.launchpad.net/widelands/+bugs?field.tag=atlanteans) - affects the Atlantean tribe, buildings or workers ¶

[balancing](https://bugs.launchpad.net/widelands/+bugs?field.tag=balancing) - deals with balance issue, issues which may give one tribe an advantage over the others ¶

[barbarians](https://bugs.launchpad.net/widelands/+bugs?field.tag=barbarians) - affects the Barbarian tribe, buildings or workers ¶

[buildsystem](https://bugs.launchpad.net/widelands/+bugs?field.tag=buildsystem) - related to the compilation and build process of Widelands ¶

[campaign](https://bugs.launchpad.net/widelands/+bugs?field.tag=campaign) - affects one of the campaing maps ¶

[cmake](https://bugs.launchpad.net/widelands/+bugs?field.tag=cmake) - issues related to building Widelands with cmake. See also buildsystem ¶

[computerplayer](https://bugs.launchpad.net/widelands/+bugs?field.tag=computerplayer) - problems with the computerplayer, anything affecting the AI players. ¶

[crash](https://bugs.launchpad.net/widelands/+bugs?field.tag=crash) - this bug makes Widelands crash. Anything that triggers a crash should be marked with this. ¶

[descriptions](https://bugs.launchpad.net/widelands/+bugs?field.tag=descriptions) - ¶

[economy](https://bugs.launchpad.net/widelands/+bugs?field.tag=economy) - dealing with the economy and wares ¶

[editor](https://bugs.launchpad.net/widelands/+bugs?field.tag=editor) - any issues related to the map editor ¶

[empire](https://bugs.launchpad.net/widelands/+bugs?field.tag=empire) - affects the Empire tribe, buildings or workers ¶

[gamedata](https://bugs.launchpad.net/widelands/+bugs?field.tag=gamedata) - ¶

[gameplay](https://bugs.launchpad.net/widelands/+bugs?field.tag=gameplay) - ¶

[graphic](https://bugs.launchpad.net/widelands/+bugs?field.tag=graphic) - anything visual such as workers, buildings, immovables ¶

[internationalization](https://bugs.launchpad.net/widelands/+bugs?field.tag=internationalization) - ¶

[locales](https://bugs.launchpad.net/widelands/+bugs?field.tag=locales) - ¶

[lua](https://bugs.launchpad.net/widelands/+bugs?field.tag=lua) - anything related to lua scripts/scripting ¶

[military](https://bugs.launchpad.net/widelands/+bugs?field.tag=military) - issues with soldiers, combat or anything military-related ¶

[multiplayer](https://bugs.launchpad.net/widelands/+bugs?field.tag=multiplayer) - bugs which occured or are only triggered when playing multiplayer ¶

[network](https://bugs.launchpad.net/widelands/+bugs?field.tag=network) - ¶

[performance](https://bugs.launchpad.net/widelands/+bugs?field.tag=performance) - ¶

[savegame](https://bugs.launchpad.net/widelands/+bugs?field.tag=savegame) - anything dealing with saving and loading games OR bugs where a savegame have been attached to demonstrate a bug ¶

[scenario](https://bugs.launchpad.net/widelands/+bugs?field.tag=scenario) - ¶

[scons](https://bugs.launchpad.net/widelands/+bugs?field.tag=scons) - ¶

[statistics](https://bugs.launchpad.net/widelands/+bugs?field.tag=statistics) - ¶

[ui](https://bugs.launchpad.net/widelands/+bugs?field.tag=ui) - short for User Interface, covers anything the user interacts with such as buttons and menus ¶

[windows](https://bugs.launchpad.net/widelands/+bugs?field.tag=windows) - ¶

[worker](https://bugs.launchpad.net/widelands/+bugs?field.tag=worker) - ¶

## Other resources ¶

This section is partially inspired by some of the documentation by the [Ubuntu BugSquad](https://wiki.ubuntu.com/BugSquad). Since Ubuntu is using Launchpad as well, a lot of what their documentation may be relevant for Widelands bug triaging as well. However, keep in mind that there may be some Ubuntu-specific things which may not apply to Widelands. That said, they have a really awesome [triage guide](https://wiki.ubuntu.com/Bugs/HowToTriage/) and [knowledge base](https://wiki.ubuntu.com/BugSquad/KnowledgeBase)