Project management with Trac
Trac is a Web-based issue tracking system that has many project management features as well as support for handling revisions to software code. Trac is written in Python and uses sqlite for its database. There’s an option for using postgresql, and mysql support is available in the latest development release.
There are many features to Trac that make it suitable for project management. A wiki is built into Trac but the real star is Trac’s ticket system.
Categories (like bugs, tasks, enhancements) can be assigned to each ticket and each ticketed issue can be associated with a specific component of the software or project. A version and release number also can be tied to each ticket.
There a number of way to view reports for the ticket system, all of which generate a very nice color-coded list of tickets. The roadmap/milestones view is my favorite feature since it allows for an excellent overview of a project’s progress and future plans.
Another default report is the timeline that provides a listing of all activity within the Trac system on a daily basis.
The query tool needs some more work to make it more flexible but Trac is still in the very early stages of development.
For programmers Trac interfaces with Subversion for code management and it’s possible to browse the code of an SVN repository from within Trac. If you want to use Trac just for issue tracking then it’s possible to configure it without the SVN environment.
The documentation on using Trac could be a lot better but that should improve over time. The mailing lists at the Trac site are actually full of a lot of useful information and they’re now available through Google Groups, which mean an RSS feed.
While Trac is still in an early release the system has been under development for some time. However, Trac can be a pain to install. For now I recommend it only for the adventurous but others should keep an eye on it.
Actually, the complexity of the installation varies depending upon the platform. Oddly, I found that installing Trac on a Windows machine to be relatively easy. Installing Trac on my preferred Unix environment was very frustrating since there are a lot of dependencies that also need to be installed (Python, ClearSilver, SQLite, and a number of Python utilities) in addition to Subversion if you want to use that.
Look to see if a package is available for your platform. There’s a good Trac package for RedHat Enterprise Linux 4 that you should definitely use if that’s your system. I skipped this package the first time and tried installing everything individually only to spend a day and half with something that finally didn’t quite work. Then I went and grabbed the package and was up and running in a short time. That was my mistake, sigh.
An increasing number of plugins are being developed for Trac and some are essential, particularly for administration such as WebAdmin. See Trac Hacks for a good source of plugins. Since Trac plugins are Python eggs, those experienced with Python will have an easier time getting things setup. It’s not difficult but for someone new to Python then it’s going to take a little longer.
There are many public trac implementations out there but Trac also can be easily hidden behind http authentication. That’s how I’m using it so I can’t point you to my implementation. However, one of the best uses of Trac is by the developers of WordPress. That’s where I first learned about Trac. Head over to http://trac.wordpress.org/ and have fun browsing around all the development swirling around WordPress. (Once you’re at the site, select the roadmap or view tickets tabs).
Another public Trac that shows how the interface can be slightly customized is by the people behind CakePHP: https://trac.cakephp.org/
Finally, I just decided to check if anyone in libraryland was using Trac and via Google found this excellent use of Trac by the folks at OhioLINK for the Digital Resource Commons project: http://drc-dev.ohiolink.edu/. It looks like they’re using Trac and its wiki engine not only for issue tracking but also to maintain the project’s web site.
I’ve already seen my own productivity improve with the use of Trac. It’s going to be interesting to see how this system develops in the future.
Update: Here’s another public Trac implementation from the good folks at ibiblio.org … trac for Lyceum, a multi-blog derivative of WordPress.
Update: Another nicely done public Trac implementation: Max Media Manager, an open source ad server based on phpAdsNew. This site also uses the wiki within Trac to serve as the web site for the entire project.
