papaya CMS / SVN Freigabe

Bei uns stand schon seit geraumer Zeit an, das SVN öffentlich zu machen – das haben wir soeben endlich nachgeholt.

Ab sofort stehen neben den „Nightlys“ also auch ein SVN Repository und ein Web-SVN für das papaya CMS zur Verfügung.

Sicherung der Codequalität mit SVN Hooks

Wir haben bei papaya mit dem Wachstum des Entwicklerteams das Problem gehabt, dass Coding Standards (unsere sind in enger Anlehnung an die PEAR Coding Standards entstanden) nicht immer von allen Kollegen exakt 1:1 eingehalten wurden. Manchmal übersah ein Mitarbeiter etwas, manchmal machte seine individuelle Entwicklungsumgebung (bei uns viel Eclipse, ein wenige VIM und anderes) die Einrückungen etwas unsauber etc.

Wir nutzen daher die „Pre-Commit-Hooks“ im SVN, um vor dem Commit ins zentrale SVN einige Tests durchzuführen. Nur wenn diese erfolgreich verlaufen, kann ein Commit erfolgen – nur dann geht der Quellcode ins SVN.

Mein Kollege Thomas Weinert hatte hierzu neulich folgende Präsentation gehalten, die das ganze im Groben erläutert:

SVN Hook

papaya CMS: Nighly builds ab sofort verfügbar!

Hinweis in eigener Sache:

Ab sofort stehen nightly builds (also jede Nacht automatisch aus dem internen papaya SVN erzeugte Exports des kompletten papaya CMS) unter folgenden URLs zur Verfügung:

Deployment mit Capistrano

Alexander machte mich auf ein recht spannendes Tool aufmerksam: Capistrano. Das ist, ganz kurz zusammengefasst, eine RubyOnRails Anwendung zur Ausführung von Tasks auf einem entfernten Server und könnte ein paar selbstgebaute Shellscripts entweder ergänzen oder ersetzen. Hier mal die Eingangsbeschreibung von deren Website: Great for automating tasks via SSH on remote servers, like software installation, application deployment, configuration management, ad hoc server monitoring, and more.”

Der Tipp von Alexander zielte vor allem auf das Deployment ab (”Dort gibt es eine Software namens Capistrano http://www.capify.org/, welche es erlaubt per Ruby aus dem SVN Projekte auf mehrere Server zu verteilen und notfalls auch ein Rollback basierend auf verschiedenen Versionsnummer zu machen.“). Und das könnte in der Tat sehr interessant sein, schaue ich mir nochmal genauer an und berichte dann.