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.

Plesk - friend or foe?

I’ve been working with variations of unix since 1992, so I feel very comfortable with the command-line. Indeed, one of the things I’ve always liked about unix is how everything is treated as a file and can be manipulated from the command line rather than hidden behind a GUI. Somehow, it just fits my mind better.

In some of my recent consulting work I’ve finally had to come to terms with Plesk, a Web-based tool with the aim of simplifying system administration. For the person not very experienced with unix then Plesk can be an amazing tool. For the experienced unix sys admin then Plesk can be downright annoying.

Plesk is often supplied with dedicated server accounts. I certainly understand why Web hosting provider supply Plesk. It really can do a lot without having to learn a lot of the arcane methods of command-line unix. And Plesk can be removed from a system, if one like. That would be my preference but I’m consulting in a production environment where the tech staff are not well versed in unix. So, Plesk will stay.

In future postings I will try to mention some of the differences that Plesk bring to unix that may be a surprise if you haven’t used a Plesk-managed system before. Many of the most commonly used Web applications are tightly integrated with Plesk and work somewhat differently.

An example:

Try logging into mysql as the ‘root’ user…should be easy…done that a thousand times…but a plesk mysql has no account with the name of ‘root’. The root mysql account is instead called ‘admin’ and it shares the same password as the plesk admin account. So, if you change the Plesk admin account, then that also changes the mysql admin account.

Fortunately (or not), Plesk stores its admin password in a very noticeable place if you have root access — just look at /etc/psa/.psa.shadow and there’s the password in plain text.

Also, Plesk creates a unix account with the name ‘admin’ that also has the same password.

Considering the integration of so many apps with Plesk I’m reluctant to upgrade an application, like even proftpd, for concern that it will break the configuration maintained by Plesk - sigh.

An interesting side note about Plesk from Wikipedia is that while the company selling Plesk is located in Virginia, the technical staff is in Siberia. …that’s okay…can’t say anything about that since I’m down in Argentina myself.

More adventures with Plesk to follow …..

Web developer toolbar

My favorite Firefox extension these days is the Web Developer toolbar.

I stumbled across it last week when I was looking for a way to clear the http authentication without having to close and restart my browser. The toolbar has a menu for that, plus dozens of more features.

The toolbar is great for analyzing web pages, particularly if you’re trying to figure out how a particular page is structured. The toolbar makes it easy to see all the relevant information about positioning, images, tables, etc. Definitely a fun tool to add to your firefox.