The Technology Stack of the Living Reviews Project

Robert Forkel

dev.livingreviews.org

In this presentation we give an insight into the technical environment of the Living Reviews project.

Things we do ...

... and tools we use

subversion ...

... is a version control system, intended as THE replacement for cvs.

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.

Use Cases

Everybody likes use cases! Well how do we use our tools?

Software development

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

Manuscript 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.

An Example

The screenshot shows a typical revision log for the LaTeX source of a Living Reviews article.

Web Content Repository

The web content of each journal is stored in a subversion repository, too.

ePubTk

Why Python?

Why XSLT?

Synergies

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 - a trac-clone

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.

Thanx for listening!

Any questions?