DisTract

DisTract is a Distributed Bug Tracker.

We're all now familiar with working with distributed software control systems, such as Monotone, Git, Darcs, Mercurial and others, but bug trackers still seem to be fully stuck in the centralised model: Bugzilla and Trac both have single centralised servers. This is clearly wrong, as if you're able to work on the Train, off the network and still perform local commits of code then surely you should also be able to locally close bugs too.

DisTract allows you to manage bugs in a distributed manner through your webbrowser. Currently only Firefox is supported. The reason for this is that there is no local server used, and so the webbrowser must directly (via Javascript) call programs on your local system. I only know how to do this in Firefox. The distribution is achieved by making use of a distributed software control system, Monotone. Thus Monotone is used to move files across the network, perform merging operations and track the development of every bug. Finally, the glue in the middle that generates the HTML summaries and modifies the bugs is written in Haskell.

Other features include the use of Markdown markup syntax for bug descriptions and comments, with live preview via a Javascript implementation of Markdown.

Get It Now!

Go to the Downloads page. Source available along with some pre-compiled binaries.

Missing Features

There is now only one major feature missing: dealing with merging. For details of my plans regarding merging, please see the Merging page. Bug Listings (the previous major missing feature is now implemented, from version 0.2). Obviously, DisTract uses itself for tracking bugs! See the bugs page to see how to use DisTract to have a look at the bugs logged and the development plans for DisTract.

News

  • Tuesday 7th August: Release 0.2.5.
    • Support for Monotone 0.36
    • Removed some unnecessary calls to monotone, resulting in speed improvements
    • Meaningful commit messages
  • Monday 6th August: Release 0.2.4. After a 3 month break, development starts again!
    • Support for Monotone 0.35
    • Removed dependency on System.Time and System.Time.Parse and replaced with Data.Time which is a standard Haskell library.
  • Saturday 12th May 2007: Release 0.2.3. More minor bug fixes.
    • Parsing the output of Monotone does not now make assumptions about the locale. Thus DisTract should now work without hitch in non English locales.
    • Calling any of the binaries with -v or –version will cause them to output the current version of DisTract. Further, generated HTML now indicates the version of DisTract used for the generation in the footer.
    • Fixed a bug that caused the rows in the table in the bug listing to loose their even-odd classes.
  • Monday 7th May 2007: Release 0.2.2. Goodness, a week since the last release.
    • Many little bug and feature fixes: escaping of HTML in field values; creating bugs without specifying a description; every page has a footer showing when it was last generated; proper parsing of the Monotone version string.
  • Monday 30th April 2007: Release 0.2.1. The daily release cycle goes on!
    • Fixed bug in installer which was causing relative paths to Monotone databases to be misinterpreted.
    • Modified the display of dates and timestamps so that when displayed in the HTML, they are all localized to the current environment. Of course, internally, Monotone stores all dates in UTC.
  • Sunday 29th April 2007: Release 0.2. Some more new features:
    • Bug Listings are now implemented with Javascript goodness for magic sorting of bugs. There could certainly be more features in terms of being able to search for particular bugs and such — these features will probably appear between 0.2 and 0.3.
    • Pseudo Fields. Before now, every bug field had to be editable. Pseudo Fields are fields that are read-only. They get presented with the summary of the Bug but never appear in forms. Current examples of pseudo fields are Reporter: who reported the bug; and Created: when was the bug created. These rely on extra code and thus are not configurable in the same way that normal Fields are.
  • Saturday 28th April 2007: Release 0.1.5. A few new features:
    • Simplified and sorted out the links at the top of the bug HTML pages. Fixed a couple of bugs so that Rebuild This Bug and Rebuild All Bugs both do Monotone update, or a checkout if necessary, followed by rebuilding the HTML and reloading the page.
    • Some documentation on the Configuration of DisTract.
    • Added the ability to configure DisTract to log to a file rather than just stdout.
    • Added the ability to run the installer on an existing DisTract installation bug database — it'll update the installation as sensibly as it can manage and rebuild all the bugs.
  • Friday 27th April, 2007: Release 0.1.4. Two new features:
    • Internally forcibly track the version of Monotone that we're working with. This will ensure that I'm forced to update DisTract with every new version of Monotone that comes out.
    • The installer is now smart if the branch names that it's decided on already exist in the database: it will just check them out. Thus this is how you could check out the bugs from existing DisTract bugs and enjoy the distributed buggy fun!
  • Thursday 26th April, 2007: Another release: 0.1.3. This version supports monotone 0.34. Older versions supported monotone 0.31 which I didn't quite realise.
  • Thursday 26th April, 2007: I discover that inexcusably, I've been developing this for monotone 0.31 rather than a recent version. The current version is 0.34 and 0.35 is due out soon. So the bug reports that I've been getting recently are entirely due to the fact that I'm using a quite ancient version of monotone. So tonight, starting with DisTract 0.1.3 (due out later), I will be supporting monotone 0.34 or later only.
  • Wednesday 25th April, 2007: Release 0.1.2. Another day, another release. This version fixes three bugs:
    • Previous versions had bugs regarding relative paths. This manifested itself at installation time, when the installer blew up.
    • There were a couple of places where I grabbed the contents of a directory and then applied some functions to the directory contents without checking that I was operating on a file.
    • Compiling the installer which was the last compile target threw up warnings. These warnings did not affect the compilation, but they are now gone.
  • Tuesday 24th April, 2007: Release 0.1.1. This version has no new features other than the fact that it actually compiles in a sane way which no longer requires endless amounts of jiggery-pokery. This has been achieved by improving the hinstaller module which DisTract depends on. Thus for all of you who downloaded the source tarball of version 0.1 and were then deeply alarmed by the compilation instructions, fear not. The Compilation page is now, correspondingly, simpler!
  • Sunday 22nd April, 2007: Release 0.1. This is the very first release of DisTract. Some fairly major features are not implemented, such as dealing with 3-way merges nicely (well, at all, to be honest!), and listing bugs. However, it does work as far as creating and modifying bugs. See the Downloads page and the Getting Started page.

License

DisTract is licensed under the 3-clause BSD license (the one without the advertising clause). The full license can be seen on the License page.

Mailing List

There is just one mailing list currently, for all matters relating to DisTract. Feel free to subscribe (and yes, it is a self-signed SSL certificate there).

 
start.txt · Last modified: 2007/08/07 12:04 by matthew
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki