- Roundup (Bugtracker)
-
Roundup (Bugtracker) Entwickler Richard Jones Aktuelle Version 1.4.19
(15. Juli 2011)Betriebssystem Alle auf denen Python läuft. Lizenz Verschiedene Freie-Software-Lizenzen[1] Deutschsprachig ja www.roundup-tracker.org Roundup ist ein freier, webbasierter Bugtracker mit umfassender Mail-Schnittstelle. Er ist in Python implementiert und leicht erweiterbar. Von seiner Community wird Roundup als Issue-Tracker bezeichnet, da sich das Konzept nicht nur auf Bugs, sondern auf Aufgaben im Allgemeinen anwenden lässt. Roundup basiert auf einem preisgekrönten Design von Ka-Ping Yee und wird unter der Leitung von Richard Jones weiterentwickelt.
Inhaltsverzeichnis
Funktionsumfang
In der Standard-Konfiguration hat Roundup folgenden Funktionsumfang:
- eine webbasierte Oberfläche zur Bearbeitung der Aufgaben, und zur Suche nach solchen
- ein Mail-Gateway, das es erlaubt, Aufgaben zu erstellen und zu bearbeiten
- eine Datenbank-Abstraktionsschicht, die gegenwärtig u. a. PostgreSQL, MySQL und SQLite unterstützt
- aufgabenbezogene Interessentenlisten (nosy-Listen), die zur Benachrichtigung per Mail verwendet werden
- ein auf Rollen, Klassen und Objekten basierendes Berechtigungssystem
- eine interaktive Shell zum Erstellen und Einspielen von Backups sowie zum Bearbeiten der Objekte
Roundup lässt sich sowohl als eigenständiger Serverprozess betreiben als auch über mod_python oder (notfalls) als CGI-Skript.
Konzepte
Roundup ist in hohem Maße anpassbar:
Datenbankschema
Das Schema beschreibt Klassen von Objekten. In dem als Vorlage mitgelieferten Muster namens classic gibt es zum Beispiel die Klassen issue (Vorgang), msg (Nachricht), user (Benutzer), file (Dateianhang). Leicht lassen sich weitere Klassen (z.B. Kunde, Produkt, Standort) oder Beziehungen (Links) zwischen Klassen ergänzen.
Das Datenbankschema wird in einer Python-Datei im Wurzelverzeichnis der jeweiligen Bugtracker-Instanz festgelegt; dieses Schema wird von Roundup beim Start (bzw., wenn nicht als eigenständiger Serverprozess betrieben), des Apache-Servers eingelesen. Wenn dabei Änderungen festgestellt werden (z. B. in Form neuer Felder), werden die Tabellen der zugrundeliegenden relationalen Datenbank automatisch erweitert.
Seiten-Templates
Roundup verwendet die von Zope bekannte Template Attribute Language (TAL), um HTML- oder XHTML-Seiten zu erzeugen. Manche Templates (Schablonen) sind universell verwendbar, wie z. B. _generic.index.html, das (berechtigten Usern) die Bearbeitung der Einträge aller Klassen erlaubt, die über kein eigenes index-Template verfügen.
Trifft eine Anfrage für „issue123“ ein, so wird zunächst dieser Designator in die Klasse „issue“ und die ID „123“ zerlegt; als Template-Auswahl wird „item“ angenommen, sofern kein anderes angegeben wurde. Es wird zunächst nach der Template-Datei issue.item.html gesucht; ist diese nicht vorhanden, wird alternativ _generic.item.html verwendet. Ist dieses auch nicht vorhanden, tritt ein Fehler auf.
Detektoren
Viele Funktionen von Roundup, incl. mancher Standardfunktionen, werden mit Hilfe von sogenannten Detektoren realisiert, die im Unterverzeichnis „detectors“ der Tracker-Instanz abgelegt werden. Es handelt sich um Python-Funktionen, denen das zu ändernde (soweit schon vorhanden) Objekt sowie die Änderungen an den Attributwerten zur Verfügung stehen.
Detektoren werden in Auditoren und Reaktoren unterteilt. Erstere dienen in erster Linie dazu, automatisch bestimmte Änderungen vorzunehmen (so wird in der Standardkonfiguration derjenige der nosy-Liste hinzugefügt, dem ein Issue nur Bearbeitung zugewiesen wurde) sowie unerlaubte Änderungen zurückzuweisen. Die Reaktoren werden nach den Auditoren ausgeführt und dienen z. B. dazu, neue Kommentare zu einem Issue automatisch per Mail an alle Mitglieder der jeweiligen nosy-Liste zu verschicken.
Detektoren werden ausgelöst, wenn eine der Aktionen
- „create“ (erzeugen eines Objekts)
- „set“ (ändern von Attributen)
- „retire“ (deaktivieren) und
- „restore“ (reaktivieren)
ausgeführt (bzw. der Versuch unternommen) wird. Sie lassen sich verwenden, um einen komplexen Workflow abzubilden.
Erweiterungen
Im Instanz-Unterverzeichnis „extensions“ können weitere Funktionen abgelegt werden, die für erweiterte Funktionalitäten benötigt werden, die z. B. mit den Mitteln der TAL allein nicht realisierbar sind; auch neue Aktionen sind möglich.
Module mit Funktionen, die sowohl von Detektoren als auch von Erweiterungen verwendet werden können, können im Instanz-Unterverzeichnis „lib“ abgelegt werden.
Einzelnachweise
Weblinks
- www.roundup-tracker.org
- Projekt-Site bei Sourceforge
- Roundup: Einführung und Anwendungsbeispiele, von Ralf Schlatterbeck (PDF-Datei; 246 kB)
Kategorien:- Freie Projektmanagementsoftware
- Webanwendung
- Programmiersprache Python
- Bugtracker
- ERP-Software
Wikimedia Foundation.