CMS Plone und Zope werden Python 3 kompatibel
Vom 30. Januar bis zum 4. Februar 2017 trafen sich internationale Kern-Softwareentwickler im Büro der Klein & Partner KG, BlueDynamics Alliance, in Innsbruck zum Alpine City Strategic Sprint.
Ziel des Treffens war es den Applikationsserver Zope und das darauf basierende Enterprise CMS Plone kompatibel mit der Version 3 der Programmiersprache Python zu machen. Der Alpine City Strategic Sprint wurde von der Plone Foundation gesponsert, die für die weltweite Förderung und Sicherung von Plone verantwortlich ist.
“Wenn alles nach Plan läuft ist zumindest eine erste Plone 6 Alpha-Release auf Basis von Zope 4 für die Plone Conference in Barcelona im Oktober möglich.” meint Jens Klein vom Framework Team der Plone Community.
Es war vor allem der persönliche Austausch zwischen den Entwicklern beider Communities, der den Erfolg mitentschieden hat. „Von der Zope Community aus betrachtet, ist es schön zu sehen, dass es wieder ein starkes Interesse der Plone-Kernentwickler an Zope gibt. Wünschenswert wäre eine gewisse Verzahnung von Zope und Plone und das es ein regelmäßigen Austausch zwischen der Zope Community und der Plone Community gibt.“ sagt Michael Howitz von der Zope Community.
Die Zope- und Plone-Entwickler waren einstimmiger Meinung, dass sie besser als erwartet vorangekommen sind. “Mittlerweile laufen alle automatisierte Tests durch. Plone funktioniert nun mit Zope 4 in allen seinen Kernfunktionen.”, berichtet Philip Bauer vom Board der Plone Foundation.
Viele Kernkonzepte von Zope und Plone sind in der einen oder anderen Form in Python eingeflossen, Zope und Plone ernten nun ihre eigenen Früchte - Up-Stream-Contributing. „Sowohl in Plone als auch in Zope werden nun die Kernkomponenten leichtgewichtiger – Plone und Zope werden schneller.” freut sich Alexander Löchel vom Board der Plone Foundation.
Auf dem Zope 2 Resurrection Sprint in Halle vom 2. - 5. Mai 2017 soll der Geist vom Alpine City Sprint weiter getragen werden. Die Organisatoren erhoffen sich dann den Durchbruch und damit die erste Zope 4 Release.
In Innsbruck wurden die Weichen in Plone für Zope 4 gestellt und umgekehrt Zope 4 mit den knapp 9000 Test-Fällen des Plone Projektes gehärtet. “Am Ende des Alpine City Sprints haben bis auf sechs Tests alle Plone 6.0 Testfälle alle gegen Zope 4 bestanden, und einige Wochen Nacharbeit später bestanden dann alle.” sagt David Glick, langjähriger Plone Kernentwickler.
Plone ist nun 15 Jahre alt, Zope sogar über 20. Beide Projekte haben sich mittlerweile mehrfach neu erfunden und stellen eine sehr sichere, flexible und erwachsene Lösung in der oft unsicheren Landschaft der Webanwendungen dar.
“Für die Zukunfts von Plone ist es wichtig auf Python 3 zu laufen, weil das Python Team die Version 2 offiziell nur noch einige wenige Jahre unterstützen wird.”, warnt David Glick die Gemeinschaft. Restricted-Python ist das Kernmodul der Garanten für die Sicherheit, für die Zope und Plone bekannt ist. Die Entwickler befürchteten, dass es auf Python 3 nicht portierbar ist. Diese Nuss wurde in Innsbruck geknackt. Restricted-Python läuft, wenn auch noch in eingeschränktem Funktionsumfang, in der aktuellsten Python Version.
Neben den spektakulären Schauplätzen modernisiert Zope 4 viele kleinere Details und einige historisch gewachsene Zöpfe wurden abgeschnitten. Die ACID konforme und extrem robuste Datenbank ZODB wird für Plone 6 auf die neueste Version gehoben. Thomas Schorr hat einen Entwicklungszweig von plone.recipe.zope2instance begonnen, mit dem eine Zope Instanz mit einem modernen WSGI server started wird, anstelle des alten ZServers.
Was ist ein Sprint?
Ein Sprint, auch bekannt als Hackathon, ist eine fokussierte gemeinsames Treffen an verschiedenen Orten in der Welt um OpenSource Software zu entwickeln. Dabei formen die Teilnehmer Arbeitsgruppen um Plone mit neuen Funktionen zu erweitern oder um bestehende Aspekte zu verbessern. Beitragende können Benutzerschnittstellen- und Grafikdesigner, technische Autoren, Organisatoren, Prozess-Experten und Entwickler sein. Alle sind willkommen, auch Neulinge!
