[Setools] The Q2 issue tracker

goran at krampe.se goran at krampe.se
Mon Jun 26 08:17:25 UTC 2006


Hi folks!

Colin wrote:
> So that's what I'm working on these days. What other projects are on  
> the go? Are there any concrete plans for the bug tracker?

Not only plans but *real code*. :)

I have been building a system called "Q2" (not the real name hopefully)
for a customer (full time) since january, with the help of Magnus Kling
(a collegue from Toolkit Software). It is a web based issue tracker (not
specifically bugs but issues in general) written in
Squeak3.8/Seaside/Magma.

It is designed to be a really flexible and customizable system for
advanced issue tracking - but with a very simple but smart user
interface using Seaside spiced a little bit with Scriptaculous. :)

The best part is that (I will get the definite *go or no go* this week)
it will be MIT licensed with a probability of 95%. When the license is
decided I will post again and immediately set up a website around it.

Some of the important features (from memory):

- Models different "processes" which are fully separate "systems within
the system" with separate permission models, forms, fields, workflows
etc.
- Users are given access to one or more processes and can work within
all those processes at the same time (searching across them all for
example).
- Uses a directed graph workflow model with visualization of graph using
Graphviz.
- Full email integration with creation of cases including attachments,
threaded discussion (tracking replies and so on) etc.
- Free text engine Swish-e integrated for advanced boolean free text
searching etc combined with advanced query filtering.
- Has a model of "forms" with "fields" (a la Mewa/Magritte) allowing
custom information to be "attached" to the issues in the form of "extra
tabs" in the tab book UI.
- A very good validation model following the idea that you can always
edit and save partially with validations invalid, but you are restricted
in moving the issue to another stage in the workflow. These validation
criteria can be placed upon enter or exit to a stage, or on a specific
transition.
- An advanced search/filtering mechanism with personal filters.
- An advanced subscription/notification mechanism based on listening on
low level events, filtering through personal search filters and then if
the subscription is triggered, emailing with optional digest.
- Integrated editable Swiki help (!) down to the field level. If you
switch on this help you get tons of "question marks" in the app and
clicking on them expands a little swiki page inlined into the web page.
Superb for explaining fields etc. Editable in place just like a Swiki.
- Export/reports in CSV, XML, HTML.
- Mirroring of external data into the system using ODBC to enable for
example selections in the issues (like selecting an entity from an
external system like "project" or "article" or whatever).
- A simple UI using the "left side TOC, right side currently selected
function"-style.

And finally, the killer feature for our customer:

- Full offline operation. The system can be installed in full locally on
a laptop and you "check out" a mirror of one or more processes - work
offline - and then sync your modifications with the master server. This
is enabled by the use of the "Command Pattern" for all modifications to
the domain objects in the form of a series of "transaction" objects that
are also persisted. So the system has a full, complete traceability of
all changes. :)

The system is currently 250 classes, domain model of course totally
clean of UI, and system in total about 20 kloc. It has quite a bit of
tests - even though we would want to have more. :) The system *works*
today but it has not been fully tested and we are still working on
selected parts like for example filtering, subscriptions,
exports/reports. And some parts are lacking proper UIs.

regards, Göran

PS. There is nothing preventing the Squeak community from building an
extra Morphic/Tweak UI on top of the system possibly combined with
setting Magma up in a client/server model over the Internet to get a
fully integrated issue tracker inside the Squeak image. Or simply using
the builtin "offline" mechanism to enable the same use.


More information about the Setools mailing list