Direkt zum InhaltDirekt zur Navigation

Integration und Kompatibilität

Gemeinsame Konzepte

Beim Entwickeln von OneGov Modulen soll darauf geachtet werden, dass die Features im Sinne der Plone Standards entwickelt werden. Es müssen nach Möglichkeit bestehende Plone Komponenten verwendet und erweitert werden.

Die OneGov Module sind kompatibel mit der aktuellsten Plone-Version.

Die OneGov Module sollen ein gemeinsames Benutzungskonzept umsetzen, so dass ähnliche Funktionen über die verschiedenen Module hinweg auch gleich zu bedienen sind.

Konfigurierbar und Erweiterbar

Die OneGov Module sollen für die verschiedenen Use Cases konfigurierbar sein. Konfigurationen werden standardmässig in der Plone Registry (plone.app.registry).

Die Komponenten der Module sollen so aufgebaut sein, dass die Funktionsweise in sinnvoller Weise angepasst werden können. Dazu ist die Zope Komponenten Architektur geeignet und soll sinnvoll eingesetzt werden. Eigenständige Funktionen sollen in Adapter und Utilities ausgelagert werden. (Siehe ZopeGuideComponents).

Die einzelnen Module führen eine eigene Versionsnummer, die unabhängig von der OneGov Versionsnummer ist. Die OneGov Versionsnummer ist eine Zusammenstellung von Modul-Versionen. Die einzelnen Module können auch häufiger als Release freigegeben werden als die gesamte OneGov Box. Die Zertifizierung findet jeweils für einen bestimmten OneGov Release statt.

Die Versionen der Module orientieren sich an den Standards, die in der Plone-Welt üblich sind:

  • Für die Entwicklung werden "Alpha", "Beta" und "Release Candidate" Versionen nach Zope Standard verwendet: 1.0a1, 1.0b1, 1.0c1.
  • Versionen beginnen bei 1.0; 0.x Versionen sind zu vermeiden.
  • Schema für Versionierung: x.y.z (Major.Minor.Bugfix)
    • Major: Grosse Änderungen, sehr wahrscheinlich Inkompatibilität.
    • Minor: Neue Features, kleinere Umbauten, kompatibel zum aktuellen Major Release (z.B. durch Upgrade-Steps).
    • Bugfix: hauptsächlich Fehlerbereinigung, keine neuen Features.

Abhängigkeiten

Grundsätzlich sind alle Abhängigkeiten (Dependencies) zwischen Plone Modulen im setup.py zu deklarieren. Es muss darauf geachtet, dass die Abhängigkeiten möglichst gering gehalten werden. Die Abhängigkeiten zu Plone und Zope sind zulässig, Abhängigkeiten zu Drittprodukten in gewissem Rahmen möglich.

Abhängigkeiten zwischen verschiedenen OneGov-Modulen können auch implizit sein. Dazu wird die Abhängigkeit in einem extra_requires definiert und darauf geachtet, dass das Modul auch ohne das andere Modul funktioniert. Dies ermöglicht eine einfache Integration und Zusammenarbeit zweier Module.