Skip to content

Entries tagged "tracker".

Trac/Agilo software helps track bugs

Trac from Edgewall is very useful piece of software that try to combine Wikis with bug tracker. Let's see how we can employ this tool for Agile projects!

Wiki syntax

First of all, Trac is a wiki. It can link to other pages by using WellKnownWikiSyntax. This way you can create ad-hoc page graph structure and share information inside your team (deployment documentation, help pages for instance). You can of course add structure to your pages by creating sections, bolding, enumeration etc.

Another great feature is that you can embed wiki syntax inside comments (yeah!, wanted add emphasis to Mantis comment anytime in the past?).

Requirements gathering tool

Trac allows to collect requirements and split them into user stories and task. It allows you to add hierarchy to your documentation. Any item (requirement, user story, task) can have different workflow and those workflows could be easily customized.

Bug tracker

And last (but not least) Trac is a bugtracker. Like typical Bugzilla/Mantis it can collect problem reports and allows to create workflow to fix and verify results. You can link bugs to user stories, requirements etc. thanks to internal linking. Better - you can connect your Version Control System (SVN, Bazaar, GIT) to automatically close bugs by using bug id embeded in comments (pretty speed-up)! You can also link directly from comments/description to VCS changesets (for example to implement changeset-based code review).

And finally ...

Remember: it's just a tool. Any tool requires some time to master, but if you're patient you can achieve superb results. Of course any tool can do damage if improperly used. I believe flexible Wiki-like nature of Trac can lead to better solutions thanks to dynamic process evolution instead of a priori process definition.

Darwin rules!


My Favorite Trac plugins

In this article I'll present Trac plugins that are most valuable IMHO. Trac is very easy to extend:

  1. Download plugin code (as zip of checkout it from subversion)
  2. Call python install as root
  3. (Optional) Upgrade database schema if needed: trac-admin <trac-env-path> upgrade
  4. Add some options to ini file
  5. Restart Trac process

After above steps you should see Your plugin is working.


TracWysiwygPlugin is a must when you are going to place big tables on Your Wiki pages. It's very useful also for novice users that do not know Wiki Syntax very well.



MasterTicektsPlugin allows you to link between tickets. By default it uses as "Blocking" / "Blocked by" marker, I renamed to "Parent", "Children" to express hierarchies in tickets.


Setting up trac on Debian

Trac is an issue tracking system with integrated Wiki that is highly customisable and offers big flexibility. One can use it to handle software projects (but it's not the only application for such type of system).

Having correctly pre-packaged version for your operating system is an advantage - you can setup it more quickly by reusing predefined environment and matching software versions.

OS packages installation

First of all, let's install some basic OS packages on Debian wheezy. # apt-get install apache2

apt-get install trac

apt-get install libapache2-mod-python

apt-get install trac-wysiwyg

apt-get install trac-subtickets

We have installed the HTTP server software, the trac itself (will all dependencies handled by OS packaing system), Apache2 module to run Python scripts server-side, wysiwyg plugin (sometimes it's just easier to edit tables in WYSIWYG mode) and subtickets capability (allows to make hierarchical tickets).

Trac setup

When trac binaries are installed we can create trac workdir and add permissions for admin user:

$ trac-admin /home/www-data/mysite initenv
$ trac-admin /home/www-data/mysite permission add dcieslak TRAC_ADMIN

If some plugins have been installed in workdir:

$ trac-admin /home/www-data/mysite upgrade

Apache setup

In order to be able to authorize in track we have to create auth database with sample user "dcieslak", we will use "digest" method to encrypt passwords exchanged between browser and server (even if no https is used): $ htdigest -c /home/www-data/mysite/mysite.htpasswd mysite dcieslak

Finally, we will setup Apache config (/etc/apache2/sites-enabled/mysite-trac.conf):

<Location /mysite>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonInterpreter main
  PythonOption TracEnv /home/www-data/mysite
  PythonOption TracUriRoot /mysite

  AuthType Digest
  AuthName "mysite"
  AuthUserFile /home/www-data/mysite/mysite.htpasswd
  Require valid-user

And make changes effective:

# /etc/init.d/apache2 restart

With above setup you will be able to login to your new Trac installation by calling the following address from your browser: