Softwareprojekte verwalten mit Trac
Guter Teamgeist
Größere Softwareprojekte bedeuten Teamarbeit - doch die will koordiniert sein. Trac, ein Python-basiertes Framework, vereinigt alle nötigen Komponenten unter einer gemeinsamen Weboberfläche.
© sxc.hu
Größere Softwareprojekte bedeuten Teamarbeit - doch die will koordiniert sein. Trac, ein Python-basiertes Framework, vereinigt alle nötigen Komponenten unter einer gemeinsamen Weboberfläche.
Viele Softwareprojekte setzen Subversion, ein Webinterface zum SVN-Repository, Bugzilla und ein Wiki-System wie Mediawiki ein, um Code zu verwalten und zu dokumentieren. Die Nachteile beim Einsatz unabhängiger Komponenten sind der hohe Administrationsaufwand und die mangelnde Integration der Einzelanwendungen: Der Bugtracker weiß nichts von den Versionen in SVN und im Wiki lassen sich keine Links auf den Bugtracker setzen.
Dieser Artikel stellt eine Alternative vor, deren einzelne Komponenten aufeinander abgestimmt sind: Trac [1] integriert ein Wiki-Modul, ein Ticketsystem, einen Sourcecode-Browser sowie eine Timeline- und eine Roadmap-Funktion. Trac lässt sich auch durch Plugins erweitern.
Die Installation von Trac erfordert einige Vorarbeit: Voraussetzungen sind Python, Subversion, die Python-Subversion-Bindings, das Templating-System Clearsilver [2] und - je nachdem, welche Datenbank eingesetzt werden soll - SQLite oder PostgreSQL mit zugehörigen Python-Bindings. Dennoch gelingt die Installation leichter als bei Bugzilla. Das Trac-Manual [3] enthält eine genaue Installationsanleitung.
Trac kann seine Dienste über vier verschiedene Methoden im Netz anbieten: über den mitgelieferten Webserver Tracd, im Apache über das »mod_python« sowie als Fast-CGI- oder herkömmliches CGI-Skript. Für den Produktiveinsatz sind »mod_python« oder Fast-CGI zu empfehlen, von der Benutzung des CGI-Interface ist aus Performancegründen abzuraten. Tracd ist performant, bietet allerdings weniger Features als der Apache-Webserver. Beispielsweise fehlt eine SSL-Unterstützung.
Neue Projekte legt der jeweilige Projektverwalter mit dem Kommandozeilentool »trac-admin« [4] an. Hier lassen sich unter anderem Zugriffsrechte für Nutzer vergeben, Konfigurationen für das Ticketmodul vornehmen, Milestones verwalten und Backups erstellen oder frühere Zustände einspielen.
Die Zugriffsrechte regelt Trac auf Komponenten-Ebene. Im Ticketsystem existieren zum Beispiel folgende Rechte: »TICKET_VIEW«, »TICKET_CREATE«, »TICKET_APPEND«, »TICKET_CHGPROP«, »TICKET_MODIFY«, »TICKET_ADMIN«. Auch die anderen Komponenten stellen auf die jeweilige Funktionalität zugeschnittene Zugriffslevel bereit. Mit »_ADMIN« steht ein Platzhalter für alle möglichen Rechte eines Moduls zur Verfügung. Benutzer, die nicht eingeloggt sind, arbeiten mit den Rechten des Users »anonymous«.
Das Wiki in Trac (Abbildung 1) unterstützt die meisten von anderen Wiki-Systemen bekannten Features. Eine Besonderheit des Trac-Wiki sind Links auf andere Trac-Komponenten: »ticket:153« verweist auf Ticket 153 im Ticketsystem. Links auf Dateien im Subversion-Repository sind mit »source:/ Pfad« leicht zu realisieren. Auch in Commitmessages des Versionskontrollsystems und in Ticketkommentaren des Bugtracker lassen sich Links zu den anderen Trac-Komponenten herstellen. Diese Verzahnung der Komponenten ist der größte Vorteil der Trac-Projektverwaltung.
Alle Rezensionen aus dem Linux-Magazin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...