Bug Tracking Process

From Vassal

Below is the process we're following to manage VASSAL bugs.

Reporting a Bug

New bugs can be reported with our bug tracker, which is here: http://www.vassalengine.org/tracker/

Remember that "bugs" can include suggestions for improvements and even new features.

To report a bug in VASSAL, you would go to the tracker, click "File a Bug", and then click "Applications". You would then arrive at the bug reporting screen. Select a VASSAL component (usually the "Player", which is the part of VASSAL you're using when you're playing a game, but sometimes you may with to file a bug on e.g. the "Editor"). Pick the version you were running (or closest available), and then type a summary plus as much additional information as possible.

It is particularly useful if you include "Repro Steps" -- specific instructions on how to reproduce the bug you encountered, which we will usually need to do in order to fix it. An example is provided below:

Editor gets stuck thinking module isn't writeable (Repro ~90%)

REPRO steps:
1. Edit the "For the People 3.2" module.
2. Start New Game & pick any scenario
3. Click "How to Play" button on toolbar, which opens an HTML window.
4. Select "Save" from the Editor menu

EXPECTED: Module saves

ACTUAL: "Unable to write file"

A new bug arrives

Newly reported bugs will look like this:

  • Status: NEW
  • Product: VASSAL
  • Component: unknown
  • Version: unspecified
  • Platform: All
  • Importance: medium
  • Severity: normal
  • Assigned To: Joel

Note it would be very helpful if there were a way to auto-populate version and platform.

Someone triages the bug

Look at the stack trace at the bottom of the errorLog attachment. Based on what you deduce about the bug from the stack trace, change the bug as follows:

  • duplicate -> Status: RESOLVED, Resolution: DUPLICATE
  • bug in external library we cannot workaround -> Status: RESOLVED, Resolution: WONTFIX
  • bug in external library we can workaround -> Status: TRIAGED, Component: something
  • probably a bug in VASSAL -> Status: TRIAGED, Component: something
  • probably a bug in VASL -> Product: VASL
  • probably a module bug -> Product: Other modules
  • probably not a bug -> Status: RESOLVED, Resolution: INVALID (e.g. the user killed the process with the task manager)
  • can't reproduce the bug -> Status: RESOLVED, Resolution: WORKSFORME

Note that when choosing a component, have a look a few lines above the top of the stack trace. There you will see something like ...Vengine.jar VASSAL.launch.Editor or ...Vengine.jar VASSAL.launch.Player. If you see launch.Editor then set component to "Editor". If you see launch.Player above the bottom stack trace, then set component to "Player".

A developer is assigned a triaged bug

A developer decides to work on a triaged bug -> Status: ASSIGNED

The bug is fixed

Status: RESOLVED, Resolution: FIXED

The bugfix is merged into trunk

Status: VERIFIED

The trunk is released as a new version

Status: CLOSED, Target Release: (release version)