1. Einführung
Als Kopf eines winzigen Softwareteams suchte ich schon lange nach einer Lösung für Bugtracking, Ticketsystem und zentraler Infosammlung für Dokus etc.
Ein Artikel in der iX hat mich auf Trac aufmerksam gemacht – hier kurz die Features:
- integrierte Versionsverwaltung mit Subversion, CVS u.a.
- integriertes Wiki-System zum einfachen Einpflegen von Dokus, Infos etc.
- automatische Verlinkung aller Infos
- schlankes System, braucht wenig Ressourcen, OpenSource
- sehr flexibel, stark anpassbar und erweiterbar
- trotz der kleinen Versionsnummer recht zuverlässig
Nach kurzem Vergleich mit einigen kommerziellen Systemen hab ich mich in dieser Woche an die Installation gewagt.
2. Installation
Jetzt begann der mühselige – aber nicht schwierige Teil – die Vorbereitung der Installation. Es galt, diverse abhängige Pakete zu installieren, bevor die eigentliche Installation von Trac beginnen konnte.
2.1 Voraussetzungen
Dank dem TracGuide musste man nicht lange suchen und so hab ich für Trac 0.10.4 für den SuSE Server folgende Pakete eingespielt:
- Python 2.3 (oder höher) mit Entwicklungsumgebung (python-dev, python-xml)
- PosgreSQL nebst Python-Anbindung (python-psycopg2)
- ClearSilver 0.10.4 (clearsilver) nebst Python-Anbindung (python-clearsilver)
- SWIG
- Enscript
- DocUtils (docutils)
- SetupTools (easy_setup.py)
- Subversion (für Versionsverwaltung beliebiger Dateien)
2.2 Installation von Trac
Jetzt endlich konnte ich Trac installieren – und das ging sehr flott:
1. Trac als TAR-Package runterladen trac-0.10.4.tar.gz
2. Entpacken, z.B. nach /tmp/
3. Im entpackten Ordner python ./setup.py install aufrufen
Jetzt ist Trac zwar installiert, es fehlt aber noch die Datenbank und das erste Projektverzeichnis.
2.3 Einrichtung
Der Einfachheit halber und aus Performancegründen habe ich mich auf PosgreSQL und als Standalone-Server (d.h. Trac läuft als Daemon und braucht keinen Webserver).
Datenbank einrichten:
- Als User „postgresql“ einloggen:
su – postgres- Datenbank-Benutzer anlegen:
createuser -U postgres -E -P tracuser- Datenbank erzeugen:
createdb -U postgres -O tracuser -E UTF8 trac
Jetzt können wir die Trac-Datenbank wie folgt erreichen:
postgres://tracuser:[PASSWORT]@localhost/trac
Das Versionsverwaltungssystem Subversion sollte bereits eingerichtet sein – wenn nicht, hier gibts ne deutsche Anleitung.
Projektverzeichnis einrichten:
Jedes Projekt hat ein eigenes Projektverzeichnis. Ich habe meine Umgebung unter /srv/trac/ abgelegt, hier werden die einzelnen Projektverzeichnisse erstellt.
Wir erzeugen unser erstes Projekt mit:
trac-admin /srv/trac/[PROJEKTNAME] initenvJetzt kommen Abfragen nach Projektname, Beschreibung und dem „Database connection string“.
Der database connection string lautet hier:
postgres://tracuser:[PASSWORT]@localhost/tracWeiterhin wird gefragt, wo sich das Repository von Subversion befindet – hier den Pfad zum Subversion angeben – z.B.: /home/subversion/repository.
3. Server starten
Da wir einen Standalone-Server wollen, können wir auf die mühselige Apache-Konfiguration verzichten und sofort loslegen:
tracd –port 8000 -e /srv/trac/
Und schon ist der Trac im Browser unter http://localhost:8000/ erreichbar.
Um den Server beim Booten zu laden, benötigen wir nur noch ein Startscript – ich habe mal eins für SuSE Systeme erstellt (Download: Trac init script – bitte in rctracd umbenennen und nach /etc/init.d/ kopieren).
Die Bedienung ist einfach:
rctracd start — startet den Server
rctracd stop — beendet den Server
rctracd status — teilt uns mit, ob der Server bereits läuft
Jetzt einfach im Yast Runlevel Editor den Dienst aktivieren und fertig!
Was jetzt fehlt, ist nur noch der Feinschliff 😉
4. Feinschliff – oder: Welche Plugins man braucht
Im Standard-Auslieferungszustand muss man leider alles noch von der Console administrieren – wie uncool 😉
4.1 Das WebAdmin Plugin
Daher: Erstmal das WebAdmin Plugin installieren, dann gehts auch fluffig von der Weboberfläche.
Die Installation von WebAdmin und allen anderen Plugins ist erstaunlich einfach:
Syntax: easy_install [SUBVERSION-URL]
easy_install http://trac.edgewall.org/browser/branches/0.10-stable
Jetzt nur noch folgende Zeilen in die /srv/trac/[PROJEKTNAME]/conf/trac.ini eintragen:
[components]
webadmin.* = enabled
…und anschliessend den Trac Server neustarten (rctracd restart). Et voilá: Es gibt einen neuen Menüpunkt „Admin“.
Alle weiteren Plugins installieren sich auf die gleiche Art – zu finden sind Erweiterungen jeder Art auf: trac-hacks.org
4.2 Wichtige AddOns
TracAccountManager – Nutzerverwaltung im Webinterface (sehr wichtig!)
TracDateField – Datumseingaben per schickem Kalender-Popup und Plausi-Checks
TracGantt – Gantt-Diagramm für Tickets
TracCustomFieldAdmin – Eigene Ticket-Felder komfortabel im Webinterface verwalten
NavAdd – Menüleiste um weitere Punkte ergänzen
TracWikiGoodies – Smilies, Makros und kleine Helferlein
TracRepoSearch – Suche im ganzen Subversion-Repository (ideal um Dateien zu finden)
5. Fazit
Seit der Einführung des Ticket-Systems und den autmatischen Benachrichtigungen ist die Arbeit doch wesentlich transparenter und übersichtlicher geworden. Endlich sieht man auf einen Blick, wer gerade was wo noch offen hat und bis wann das erledigt sein sollte.
Hierbei hilft vorallem das TracGantt Plugin, da es u.a. das zusätzliche Datumsfeld für „Due close“ (Fälligkeit am) einführt und die zeitlichen Abhängigkeiten grafisch darstellt.
Und seitdem wir bei Commit-Meldungen von Subversion stets die Ticketnummer eintragen (z.B.: „#2“), sind diese Meldungen in Trac automatisch mit den Tickets verlinkt – das erspart Tipparbeit und macht die Meldung nachvollziehbarer.
6. Weiterführende Links
- Homepage von Trac
- Trac init script für Standalone Server
- Artikel zu Trac im LinuxMagazin
- Artikel zu Trac in der iX
- Trac-Hacks: Umfangreicher Fundus an Plugins, Scripte, Makros und Patches für Trac
- Einführung: Versionsverwaltung mit Subversion (HTW Dresden)