Project management, wiki-style

 
14 januari 2008

Daarmee is de applicatie trac in een paar woorden te omschrijven. Om het te installeren hebben we er een paar meer nodig: apt-get install trac enscript python-setuptools libapache2-mod-python.

Net als eerder met subversion is het handig om een nieuwe gebruiker aan te maken (adduser –disabled-password trac) en die toe te voegen aan de groep svn (adduser trac svn). Ook net als bij subversion, heeft de gebruiker www-data toegang nodig tot de gegevens van een trac-project. Voeg de gebruiker www-data toe aan de groep trac (adduser www-data trac) en zorg dat de directory /home/trac/ lees- en schrijfbaar is voor de groep en dat de umask op 007 staat.

Voeg aan default-ssl het volgende toe:

Alias /trac “/usr/share/trac/htdocs”
<Location /trac >
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracUriRoot /trac
PythonOption TracEnvParentDir “/home/trac/projects”
</Location>

Mocht je een voorkeur hebben voor fastcgi (of straks ook Ruby of Ruby on Rails willen draaien via Apache), dan kun je bovenstaande vervangen door:

ScriptAlias /trac “/usr/share/trac/cgi-bin/trac.fcgi”
<Location /trac >

DefaultInitEnv TRAC_ENV_PARENT_DIR /home/trac/projects
</Location>

Vergeet niet om dan libapache2-mod-fcgid of libapache2-mod-fastcgi te installeren in plaats van libapache2-mod-python.

Ook net als bij Subversion, zorgt de TracEnvParentDir er voor dat we gelijk voor alle toekomstige projecten klaar zijn.

Als dat nog niet gedaan is, activeer dan de juiste module met a2enmod en herstart Apache om bovenstaande configuratie te laden. Test of het werkt door naar https://<server>/trac te gaan. Dat levert op dit punt nog een lege pagina op. In tegenstelling tot Subversion levert deze URI namelijk wel een lijst met aanwezige trac-sites op en daar die nog niet aangemaakt zijn is de lijst leeg.

Voor nu een trac project site aangemaakt kan worden, moet de Subversion repository van de ‘hatelijke’ 0 af door er iets in te zetten. Trac heeft namelijk de eigenschap dat een repository met revisie 0, het script doet crashen dat een project site aanmaakt. Het maakt verder niet uit wat er in de repositorry komt, als de revisie maar opgehoogd wordt.

Is dat eenmaal voor elkaar, dan is het aanmaken van een trac-site een fluitje van een cent. Voer als gebruiker trac het volgende uit trac-admin /home/trac/projects/test initenv. Zorg daarbij dat de directory projects al bestaat, maar test nog niet.

De versie van trac in Debian laat alle gebruikers nog aanpassingen maken, in latere versies is dat verbeterd. Om dat gedrag ook hier in te stellen, moeten de ingebouwde rollen anonymous en authenticated aangepast worden. Dat kan als volgt:

  • trac-admin /home/trac/projects/test permission remove anonymous TICKET_CREATE TICKET_MODIFY WIKI_CREATE WIKI_MODIFY
  • trac-admin /home/trac/projects/test permission add authenticated TICKET_CREATE TICKET_MODIFY WIKI_CREATE WIKI_MODIFY

Geef ook een gebruiker de rechten om als beheerder te fungeren:

  • trac-admin /home/trac/projects/test permission add test TRAC_ADMIN

Edit vervolgens /home/svn/conf/policies/test.conf en voeg het volgende toe:

<Location /trac/test/login >
Include “/home/svn/conf/default_auth.conf”
AuthName “Trac site for project Test”
require group test
</Location>

Hiermee kan iedereen nog wel op de trac-site komen, maar kunnen alleen gebruikers in de groep test (zoals onze testgebruiker test) pagina’s wijzigen. Als het niet de bedoeling is dat anonieme gebruikers op de site kunnen komen, verander dan de permissies met trac-admin (geef de rechten dan aan de rol authenticated in plaats van aan de rol anonymous) of pas de locatie aan naar /trac/test.

Herstart wederom Apache om dit te testen met onze test gebruiker.

Om het werken met trac nog iets gemakkelijker te maken, zijn er allerhande plugins voor beschikbaar op zowel trac.edgewall.org/wiki als op trac-hacks.org. Een van de meest handige is zondermeer de web admin plugin. Vanaf versie 0.11 van trac is deze standaard aanwezig, maar de versie die met Debian Etch geleverd wordt is nog 0.10. Installeer de plugin als root met:

  • easy-install http://svn.edgewall.com/repos/trac/sandbox/webadmin

Edit hierna /home/trac/projects/test/conf/trac.ini en voeg het volgende toe:

[components]
webadmin.* = enabled

Gebruikers met TRAC_ADMIN rechten krijgen bij het inloggen nog een extra tab Admin waarin ze (bijna) alles kunnen doen wat ook met de command-line tool trac-admin kan.

Een aantal andere interessante plugins zijn:

  • DiaViewPlugin: om diagrammen gemaakt met de tool Dia online te kunnen bekijken
  • DiscussionPlugin: voegt een discussie forum toe
  • GuestbookPlugin: voegt een gastenboek toe
  • IniAdminPlugin: om de trac.ini van een project te kunnen wijzigen.
  • TestCaseManagementPlugin: om ook testen en de status ervan bij te houden in trac

Naast plugins kun je ook scripts installeren om de functionaliteit aan te passen. Daarvan vond ik de volgende het meest interessant:

  • EmailToTracScript: om defecten te mailen, werkt naast de webinterface
  • SqliteToPgScript: om de achterliggende database te kunnen omzetten van de standaard Sqlite naar PostgreSQL

Meer info over deze plugins en scripts op de bovengenoemde sites.


Werken met ?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Development

Tags: , ,