Host your own project with TracIf you’re in the initial phases of setting up a new software project, one of the first things you should be thinking about is a project collaboration site. A good project site enables you to do at least two things:
If used correctly, the project site can become a focal point for everyone working on a particular project. Ideas, research and design documents can all be collected in one place and collaborated over. At the same time the site is a management tool enabling assignment and tracking of tasks to a team of workers. This is surprisingly important even for small teams: if your project is a two man thing, there is still great benefit to knowing what the other person is working on and being able to see his or her progress. A simple solution for your project site is to pick different kinds of software for different tasks. For example, you may choose to use Eventum for bug and issue tracking, with a separate MediaWiki installation set up for the documentation and design collaboration. But wouldn’t it be better to combine all of this functionality into a single piece of software? Trac is one such piece of software. It gives you issue tracking, complete with SVN integration and wiki functionality, built into a single application. An added bonus of having everything in a single application is that you can make linked references to tickets, milestones and wiki entries pretty much anywhere you want within the application. This changeset references ticket #3. You also get a timeline which concisely summarizes what’s happening within the project, be it wiki edits or source code commits. This can be a very popular feature for project developers - it gives everyone a chance to see what’s happening in the project, and also to get a feeling for the ‘aliveness’ of the project. Timeline showing both edits, source code commits and ticket updates. Installing TracHere’s Playing With Wire’s accelerated setup guide for Trac.
Httpd SetupHow to configure your web server depends on both what server you’re running and what method you want to use for serving trac (cgi, fast cgi or mod python). If you’re going to run trac using CGI, you’ll basically want to link to the main trac cgi file, and also set up serving of the supporting html documents. Here’s a sample config file for how it may look like with using Apache and CGI:
This is fairly straight forward. The most imporant part is,
which sets up trac as a cgi script accessible by going to the /trac address of the webhost. For performance reasons, we don’t want the CGI script to serve every trac file. The following alias will override the /trac URL for the theme related files:
This has to go before the ScriptAlias line. User AccountsTrac’s login scheme is based on basic http authentication, which is why we added a the AuthType sections in the config file above. In fact, to log in to trac you simply authenticate with the web server using a user name and password from the .htaccess file. Every user you define in the .htaccess file (using htpasswd) will be able to log in with some basic permissions. To configure the permissions more precisely, use the trac-admin command. For instance, to make the user with login ‘aljungberg’ an admin:
This assigns the user ‘aljungberg’ to an admin group and gives the admin group the TRAC_ADMIN permission set. Notice that everyone who logs in gets the ‘authenticated’ group permissions which are by default pretty useful. You can find what they are by running this command:
It’ll say something like:
To find out which permissions are available, check out the TracPermissions documentation page. Setting up the SVN hookTo allow SVN commits to close tickets using cool syntax like ‘Fixes #1′ in commit messages, an SVN hook has to be installed. Hook scripts in SVN are described in the SVN documentation. Enter a post-commit script in the
You may have to download the actual script from the repository. Make sure you get the right version. I initially accidentally got the latest version since I grabbed it from the SVN, and it wasn’t compatible with trac 0.10.3 which I had installed. Finally make sure the script can be run,
The users who run the script must also be able to read and write to the trac database. You can make sure this works by test submitting some change set for analysis:
If the database isn’t accessible you’ll get an error message similar to this one:
The hook is nice. Here’s a description of what it does, quoted from the actual script:
If you run into any trouble, take a look at the excellent Trac documentation. Good luck with your new project! |
|