Skip to content
msinn edited this page Jan 29, 2024 · 87 revisions

Release Management

Auf dieser Seite werden die notwendigen Schritte zur Erstellung eines neuen Releases von SmartHomeNG beschrieben. Diese Schritte setzen auf dem Git Workflow Git-flow auf.

Bei einem Release sind die folgenden Schritte durchzuführen. Es sind grundsätzlich 3 Releasetypen möglich (Komplett Release, CORE Release und Plugins Release). Abhängig davon ist einer der beiden ersten Schritte (oder beide) auszuführen, gefolgt von den 3 weiteren Schritten.

Die Vergabeweise für Versionsnummern ist unter Versionsnummern beschrieben.

Das Release wird in folgenden Schritten vorgenommen:

Git Workflow für das Release Management

Ab Release 1.7 kommt der im folgenden beschriebene vereinfachte Workflow zum Einsatz. Dieser Workflow verzichtet auf einen extra anzulegenden Release Branch.

Release Dokumentation vorbereiten

  • Release Notes für die Anwender Dokumentation schreiben/komplettieren (Text: Deutsch, Listen: Englisch)
  • Bemerkungs-Block "Arbeitsstand" und Blöcke mit '...' entfernen
  • Release Datum in den Release Notes setzen
  • release_notes Anker mit richtiger Version versehen: .. _releasenotes_1_10_x_updates_plugins: -> .. _releasenotes_1_10_1_updates_plugins:

CORE Release von SmartHomeNG erzeugen

  • Core repository (develop): In bin/shngversion.py Version auf die Release-Version & branch auf 'master' setzen:

    # Update auf 1.9.4    wg. Release
    
    shNG_version = '1.9.4'
    shNG_branch = 'master'
    shNG_releasedate = '14. März 2023'   # Muss beim Release für den master branch auf das Release Datum gesetzt werden
    
  • committen & pushen

    • Message: "Set repo version to 1.9.4-master"
  • master branch auschecken

    • Menü Git/Branches... -> (local Branches) origin/master -> checkout
  • develop branch mergen

    • Git/Branches -> (local) origin/develop - > merge develop into master
    • pushen
  • develop branch auschecken

  • Core repository (develop): In bin/shngversion.py Version auf 'nach Release' Version & branch auf 'develop' setzen:

    # Update auf 1.9.4 wg. Release
    # Update auf 1.9.4.1 wg. Kennzeichnung des Stands als "nach dem v1.9.4 Release"
    
    shNG_version = '1.9.4.1'
    shNG_branch = 'develop'
    
  • committen & pushen

    • Message: "Set repo version to post 1.9.4 release"

Damit ist das Core Release erfolgt und anschließend kann im develop Branch des Core bereits weiterentwickelt werden!

Plugins Release von SmartHomeNG erzeugen

  • Plugins repository (develop): In __init__.py Version auf die Release-Version & branch auf 'master' setzen:

      def plugin_release():
          return '1.9.4'
    
      def plugin_branch():
          return 'master'
    
  • Commiten (& pushen)

    • Message: "Set repo version to 1.9.4-master"
  • master branch auschecken

    • PyCharm
      • master auschecken:
        • Menü Git/Branches... -> (local Branches) origin/master -> checkout
  • develop branch mergen

    • PyCharm
      • Git/Branches -> (local) origin/develop - > merge develop into master
    • pushen
  • develop branch auschecken

    • PyCharm
      • develop auschecken:
        • Menu Git/Branches... -> (local) origin/develop -> checkout
  • Plugins repository (develop): In __init__.py Version auf 'nach Release' Version & branch auf 'develop' setzen:

      def plugin_release():
          return '1.9.4.1'
    
      def plugin_branch():
          return 'develop'
    
  • committen & pushen

    • Message: "Set repo version to post 1.9.4 release"

Damit ist das Plugin Release erfolgt und anschließend kann im develop Branch der Plugins bereits weiterentwickelt werden!

Neue Version der Dokumentation bauen (erfolgt nun automatisch)

NEU: Seit v1.9.3 wird die Dokumentation automatisch beim Commit der Änderungen aus dem develop in den master branch neu gebaut. Die Doku steht dann unter docs.smarthomeng.de zur Verfügung.

Github Release/Tag erzeugen

  • Release/Tag für den Core
    • Auf https://github.com/smarthomeNG/smarthome auf 'tags' klicken. Dort auf 'releases' und den Button 'Draft a new Release' klicken
    • Als 'Tag version' die Version (z.B. v1.9 @ Target: master) eintragen
    • als 'Release title' SmartHomeNG Release v1.9 eintragen
    • als Beschreibung einen Hinweis auf die Release Notes eintragen: Release notes are in the user documentation at https://www.smarthomeng.de/user/release/1_9.html
    • 'Publish Release' klicken
  • Release/Tag für die Plugins
    • Auf https://github.com/smarthomeNG/plugins auf 'tags' klicken. Dort auf 'releases' anschießend Button 'Draft a new Release' klicken
    • Als 'Tag version' die Version (z.B. v1.9 @ Target: master) eintragen
    • als 'Release title' Plugin Release for SmartHomeNG v1.9 eintragen
    • als Beschreibung einen Hinweis auf die Release Notes eintragen: Release notes are in the user documentation at https://www.smarthomeng.de/user/release/1_9.html
    • 'Publish Release' klicken

Release Kommunikation

  • Blog:
    • Release Notes für das Blog (Verweis auf Anwender Doku) erstellen und mit Datum versehen (Bild + Kategorien setzen)
    • Vorletzte Release Notes: "Wichtig" entfernen
    • Blog Artikel veröffentlichen/freischalten
  • Kurzen Artikel für das Forum mit Hinweisen zum Update Prozess und Verweis auf die Release Notes erstellen
    • Artikel im Forum veröffentlichen (und "pinnen")
  • Release Info auf gitter posten

Ältere Artikel zu Items

Ältere Logik Beispiele


Release Notes

Die aktuellen Release Notes und die Release Notes der zurückliegenden Versionen sind in der Dokumentation im Abschnitt Release Notes zu finden.

Updates

Work in Progress und Planungen


Clone this wiki locally