-
Notifications
You must be signed in to change notification settings - Fork 91
ReleaseManagement
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:
- Release Dokumentation vorbereiten
- CORE Release von SmartHomeNG erzeugen
- Plugins Release von SmartHomeNG erzeugen
- Neue Version der Dokumentation bauen - passiert automatisch
- Github Release/Tag erzeugen
- Release Kommunikation
Ab Release 1.7 kommt der im folgenden beschriebene vereinfachte Workflow zum Einsatz. Dieser Workflow verzichtet auf einen extra anzulegenden Release Branch.
- 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 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 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
- master auschecken:
- PyCharm
-
develop branch mergen
- PyCharm
- Git/Branches -> (local) origin/develop - > merge develop into master
- pushen
- PyCharm
-
develop branch auschecken
- PyCharm
- develop auschecken:
- Menu Git/Branches... -> (local) origin/develop -> checkout
- develop auschecken:
- PyCharm
-
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!
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.
- 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
- 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
Die aktuellen Release Notes und die Release Notes der zurückliegenden Versionen sind in der Dokumentation im Abschnitt Release Notes zu finden.