Roundup (Bugtracker)
Roundup ist ein freier, webbasierter Issuetracker mit umfassender Mail-Schnittstelle. Er ist in der Programmiersprache Python implementiert und leicht erweiterbar. Von seiner Community wird Roundup als Issue-Tracker bezeichnet, da sich das Konzept nicht nur auf Bugs, sondern auf Vorgänge bzw. Aufgaben im Allgemeinen anwenden lässt. EntwicklungRoundup basiert auf einem preisgekrönten Design von Ka-Ping Yee und wurde lange unter der Leitung von Richard Jones weiterentwickelt. Inzwischen gibt es viele weitere Entwickler wie u. a. Ezio Melotti, Berndhard Reiter, Ralf Schlatterbeck, Anatoly Techtonik und John P. Rouillard. Anatoly Techtonik gab die am 11. Januar 2016 erschienene Version 1.5.1 heraus; Rouillard die Versionen 1.6.0 (Juli 2018) – 2.3.0 (Juli 2023). FunktionsumfangIn der Standard-Konfiguration hat Roundup folgenden Funktionsumfang:
Der Funktionsumfang lässt sich leicht durch selbst programmierte Erweiterungen (sogenannte Detektoren; siehe unten) an neue Anforderungen anpassen. Roundup lässt sich sowohl als eigenständiger Serverprozess betreiben als auch über mod python oder (notfalls) als CGI-Skript mit Hilfe von z. B. dem Webserver Programm apache. KonzepteRoundup ist in hohem Maße anpassbar:[4] DatenbankschemaDas 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 (engl. link) 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-TemplatesRoundup 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. Nur falls dieses auch fehlt, tritt ein Fehler auf. DetektorenViele 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. Die Auditoren dienen in erster Linie dazu, vor der Ausführung einer Transaktion automatisch bestimmte Änderungen vorzunehmen. Zum Beispiel wird in der Standardkonfiguration ein Anwender (engl. user) zur Interessenten-Liste (engl. nosy list) hinzugefügt, wenn ihm ein Vorgang bzw. eine Aufgabe (engl. issue) zur Bearbeitung zugewiesen wird. Es können auch unerlaubte Änderungen zurückgewiesen und (zumindest in der Web-Oberfläche) der Anwender zur Korrektur seiner Eingaben aufgefordert werden. Die Reaktoren werden nach den Auditoren ausgeführt und dienen z. B. dazu, neue Nachrichten bzw. Kommentare in einem Vorgang automatisch per E-Mail an alle Mitglieder der jeweiligen Interessenten-Liste zu verschicken. Detektoren werden ausgelöst, wenn eine der Aktionen
ausgeführt (bzw. der Versuch unternommen) wird. Sie lassen sich verwenden, um auch komplexe Verwaltungsarbeitsabläufe (engl. workflow) abzubilden. ErweiterungenIm 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. Weblinks
Einzelnachweise
|
Portal di Ensiklopedia Dunia