[Python-de] Retrospektive " Force stable trunk"

Thomas Güttler guettliml at thomas-guettler.de
Do Jun 11 10:41:23 CEST 2015


Hallo,

vor rund zwei Jahre hatte ich hier die Frage gestellt, wie man
einen stabilen git Trunk erzwingen kann:

https://mail.python.org/pipermail/python-de/2013q3/003173.html

Viel Zeit ist seit dem vergangen und ich würde gerne die Ergebnisse
hier vorstellen.

Wir nutzen Jenkins als CI (Continous Integration) Zentrale.
Das ist nicht perfekt, aber funktioniert ganz gut und man
at eine ganz nette Web-Oberfläche.

Die Frage ist eigentlich: Was ist 'stabil'?

Wir verwenden den Begriff "Projekt" wie im Django-Umfeld:
Ein Projekt besteht eigentlich hauptsächlich aus Konfiguration.

Der eigentliche Code ist in Bibliotheken (oder auch App, Lib genannt)

Zwischen Projekt und Bibliotheken besteht eine 1:N Beziehung.

Das git Repo des Projekts ist also recht klein. Hier ist die Konfig. Bei
Django ist das zB settings.py.

Es enthält möglichst wenige Conditions (if-Abfragen) oder Schleifen.

Ob nun eine Bibliotheken stabil ist oder nicht, ist das eine.

Das andere ist ob das Projekt mit den Bibliotheken zurechtkommt.

Es kann durchaus sein, dass ein Projekt nur stabile Bibliotheken
verwendet, aber das Ergebnis trotzdem nicht stabil ist.

Wichtig für uns ist darum das Gesamtergebnis, also das Projekt
zu testen. Und wenn alle Tests ok sind, dann werden die
Versionsnummer der verwendeten Bibliotheken hochgezählt.
Ein von Jenkins angeschobenes Script aktualisiert den Release-Branch
im Projekt.

Bis zum Update des Produktivsystem geht es dann in vier Stufen:

  - Entwickler testen bei sich. Der Entwickler muss vor dem commit/merge
    nicht zwingend alle Tests ausführen. Das dauert zu lange.

  - CI Alle Tests werden auf Projektebene ausgeführt.
    Enthält keine Daten aus dem Produktivsystem

  - Test auf einem Integrationssystem. Hier wird auf einer Kopie dies Produktivsystems
    gearbeitet.

  - Produktivsystem

Das Produktivsystem wird aktualisiert, wenn die vorhergehenden Stufen ok sind.

Warum ich das hier schreibe?

Ich will mich damit für die Hinweise bedanken, dich ich hier auf der Liste erhalten habe.
Sie haben geholfen die aktuellen Weg zu finden. Und der funktioniert eigentlich
ganz gut.

Gruß,
   Thomas

-- 
Thomas Guettler http://www.thomas-guettler.de/




Mehr Informationen über die Mailingliste python-de