We are evaluating Trac for a client who wants a lightweight web-based issue tracking system for one of their projects. Trac is an open source system. We are using the Trac hosting service provided by svnrepository.com, who as their name suggests also host subversion (which we also use).
By default Trac integrates with subversion and indeed their tag line is – “Integrated SCM and project management”, which is a bit of a misnomer as it certainly does not provide anything near a functional web interface to subversion. But, happily, we are mostly interested in its issue tracking functionality so that’s not a problem!
Trac manages ‘tickets’ which represent bugs or feature enhancement requests etc. Tickets can be added, edited and viewed etc. It also models a road-map, onto which milestones can be added. Tickets can be associated with milestones, product versions or components. It has a Wiki aspect too, but we’re not really bothered about that. It seems that it might do nicely as a light-weight issue tracking system, it certainly appears to take care of most of the core required bits, and it has a certain elegance and efficiency that is often missing in some of its over engineered and complex alternatives.
It is not without its quirks however – especially during setup, but hopefully these quirks won’t prove to be too problematic so as to rule out its use. Some of its admin functions still need to be accessed by command-line or by editing the Trac.ini file. For example although you can use the web interface to add a ticket, you have to use the admin command to delete it.
One of its most problematic quirks though is its use of Basic Authentication for login authorisation which can lead to all sorts of very confusing login/logout situations, for example, you can’t easily logout and then login as another user…
By default the anonymous user has all sorts of permissions, so make sure to remove them by issuing an admin command like:
trac-admin <your-path> permission remove anonymous ‘*’
Also to arrange things so that you can pick the ‘owning’ user from a combo-box on the new ticket form (rather than having to type the user name out), edit Trac.ini and in the [Ticket] section, set
restrict_owner = true
Anyway, now that it’s all setup we will evaluate it on a real project and let you know how we got on!