Bug Tracking Process

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)