Subversion und trac im Living Reviews Projekt

Robert Forkel

Heinz Nixdorf Zentrum für Informationsmanagement in der Max-Planck-Gesellschaft

In der folgenden Presentation werden Subversion und trac als zentrale Bestandteile der software Infrastruktur im Living Reviews Projekt vorgestellt. Dabei gehen wir insbesondere auch auf ungewöhnliche Verwendungsarten ein und weisen auf die resultierenden Synergieeffekte hin.

Living Reviews ...

Das Living Reviews Projekt stellt eine Publikationsplattform zur Verfügung, bestehend aus

  • einem Journal Konzept - nälich die online Publikation von eingeladenen review Artikeln, die regelmässig aktualisiert werden sollen (siehe auch http://www.livingreviews.org/faq.html),
  • zentraler technischer Infrastruktur für online Journals (Produktions- und Testserver, mailing lists, ...),
  • der ePublishing Toolkit software, die Werkzeuge zum Betrieb von Living Reviews Journals enthält.

Weitergehende Informationen sind auf folgenden Seiten zu finden:

Subversion ...

... ist ein version control system, das einen überzeugenden CVS Ersatz darstellen soll.

Weitere Informationen unter http://subversion.tigris.org/. Subversion ist mittlerweile in allen großen Linux Distributionen enthalten. Für subversion gibt es exzellente kostenlose Dokumentation.

trac ...

Weitere Informationen unter http://www.edgewall.com/trac/. trac kann als cgi Skript laufen, oder unter mod_python in Apache. Als backend steht mittlerweile neben sqlite auch PostgreSQL zur Auswahl.

Softwareentwicklung

Die ePubTk Projektseite finden sie unter https://dev.livingreviews.org/sec-cgi-bin/epubtktrac.
Momentan ist die Entwicklung auf die Living Reviews Standorte AEI Golm, Wien, Muencheberg und Garching verteilt.

Manuskript Management

Bei den bisherigen Living Reviews journals werden Artikel in LaTeX (und BibTeX) eingereicht. Diese files (und zusätzliches Material) wird in ein subversion repository eingecheckt. Das allein ermöglicht bereits gleichzeitiges, verteiltes Arbeiten an diesen sources. Im Gegensatz zu CVS, das vorher im Einsatz war, wird aber jetzt auch das Umbennen von files versioniert und ein Aufblähen des repository durch wiederholte commits von binären Daten wie Bilder oder Videos wird begrenzt.

In trac wird für jeden artikel ein Milestone angelegt, dem dann tickets zugeordnet werden, die die einzelnen Bearbeitungsschritte beschreiben. Die Flexibilität dieses Modells genenüber einem festgeschriebenen workflow kommt der Realität unserer Arbeit sehr entgegen.

Ein Beispiel

Der screenshot zeigt ein typisches revision log für das LaTeX source file eines Living Reviews Artikels.

Web Content Repository

Der web content unserer Journals wird in subversion repositories aufbewahrt.

Synergien

Mit subversion und trac hat jeder in unserem Projekt zu tun, vom technical editor über managing editors zu Entwicklern. Dadurch ist es leicht, gemeinsames know-how aufzubauen.

Verschiedene Dienste in unserem Projekt sind zugangsbeschränkt - z.B. der upload von web content, das Bearbeiten von Manuskripten von Artikeln, etc. Die beschriebene Verwendung von trac und subversion ermoglicht es uns, für alle diese Dienste denselben persönlichen Apache user account zu benutzen.

Da python die Programmiersprache der Wahl im Living Reviews Projekt ist, kommt es uns entgegen, daß subversion per python bindings auch programmatisch benutzt werden kann - etwa als versioniertes file system backend für unser Editorial Information Management System. trac ist sogar komplett in python geschrieben, was es uns erleichtert, mit immer wieder einmal auftretenden sicherheitsrelevanten bugs umzugehen.

Die Tatsache, daß trac open source und liberal lizensiert ist, erlaubt es uns, das user interface - mit dem in unserem Projekt ja alle vertraut sind - auch für Eigenentwicklungen zu verwenden. Auch der plugin Mechanismus von trac könnte in Zukunft ein Kandidat für eine "Übernahme" sein.

EIMS als trac-Klon

Die Benutzeroberfläche von trac gefällt uns so gut, dass wir sie für eine unserer Applikationen übernommen haben.

Der screenshot zeigt das von trac "inspirierte" user interface der EIMS Komponente unserer ePubTk software. Insbesondere die Aufteilung der Navigation in die drei horizontalen Bereiche Metanavigation, Hauptnavigation und kontextspezifische Navigation sollte jedem trac-Nutzer sofort vertraut sein.

Vielen Dank für Ihre Aufmerksamkeit!

Fragen?