Monday, November 20, 2006

Trac: More Than Just a Bug Tracker

Introducing Trac
Trac is an enhanced wiki and issue tracking system for software development projects.

Note: Click each image to see full size

Trac uses a minimalistic approach to web-based software project management. As you can see from the navigation bar above Trac includes a wiki and a bug tracker (where bugs and tasks are referred to as tickets), as well as other less obvious features:
  • Timeline - lists all Trac events that have occurred in chronological order, a brief description of each event and if applicable, the person responsible for the change.
  • Roadmap - provides a view on the ticket system that helps planning and managing the future development of a project.
  • Browse Source - Trac is fully integrated with Subversion - more on this later!
  • Lots More!

Creating a New Ticket
Entering a new ticket is simple. Just select the type, enter a description, select the relevant properties then hit "Submit Ticket".


One of the major advantages of Trac is that it's extremely easy to add new fields to the ticket system.

Integrated Wiki
A fully featured wiki is integrated into the Trac system with fully history and diff support.

Queries
Searches and queries can be done through the SQL-style reports or the more user-friendly "Custom Query" screen show here.


The query interface supports custom fields and the results can be sorted by column.

Project Management
The roadmap section provides an interactive graphical overview of progress for each milestone.

Clicking on the filled part of the bar takes you to a query showing all completed tickets and clicking on the empty part shows all active tickets.

Milestones


Clicking on a particular milestone from the Roadmap will take you to a detailed view showing more statistics, this time for various different properties. You can view tickets by owner, severity, etc.



Timeline
The timeline page shows a chronological list of all events and is a good way to see what's change since your last visit.


It includes all sorts of interesting events from wiki changes to subversion commits to milestone completions. Each event provides a link to more detailed information. For example, an svn commit links directly to a visual diff of the changeset, which neatly brings me onto the next feature...

Changesets
Trac is extremely well integrated with Subversion and provides a nifty diff viewer. Show here is the in-line viewer but you can alter it to show changes side-by-side.


Diffs aren't limited to the previous change - you can do a diff on any revision in the repository as illustrated in the next section.

Source Browser


The source browser lists all the changes in the repository and allows you to compare any two revisions - very powerful!


Links, Links, Links!
Trac provides extensive support for linking to various events and items within the system for both wiki pages and ticket comments.


Linking to source code changes is particularly powerful. When a fix is detected for a particular bug, the developer can easily link to the changeset from the ticket allowing readers to jump to a diff showing exactly what changes were required to fix the bug.

Inline Diffs
If linking to a particular changeset isn't immediate enough for you, then why not display the diff directly in the wiki page or ticket comment?


Summary

For more information on Trac refer to the website. There is also a demo project that you can checkout to evaluate and play around with Trac before downloading.