Skip to content
msinn edited this page Jun 11, 2016 · 9 revisions

SmartHomeNG Kern

Der SmartHomeNG Kern verwendet für die Versionsnummern das Schema "x.y.z". Wobei x für die major-Version und y für die minor Version stehen. z wird nur für Patches des Kerns verwendet die nach dem Release einer Version notwendig sind.

Die Änderung der major-Version bedeutet signifikante Änderungen am Programmcode. Zum Beispiel wenn sich die Kompatibilität zur Vorversion nicht erhalten ließ. Die major-Version kann aber auch aus Marketinggründen erhöht werden, wenn die Anzahl der Erweiterungen groß genug ist um dieses zu rechfertigen.

Die minor-Version bedeutet eine Erweiterung des SmartHomeNG (neue Plugins, neue Funktionen).

Die Patch-Versionen werden nur bei Bugfixes nach einem Release verwendet. (siehe Releasemanagement)

Versionsnummern in Plugins

Innerhalb der Plugins wird das gleiche Schema für die Versionsnummern verwendet wie im Kern("x.y.z"). Allerding ist hier die Bedeutung der einzelnen Zahlen eine andere: X und y stehen für die Version des SmartHomeNG mit der das Plugin getestet wurde. z ist die fortlaufende Versionsnummer des Plugins. X und y werden beim Release von SmartHomeNG auf die Version erhöht wenn das Plugin mit der neuen Version des Kerns getestet und lauffähig ist.

Beispiel:

  • Kern 1.1.
  • Plugin 1.1.42

wird nach einem Kern update zu

  • Kern 1.2.
  • Plugin 1.2.42

wird dann an dem Plugin weitergearbeitet, so erhöht sich die letzte Stelle der Versionsnummer.

  • Kern 1.2.
  • Plugin 1.2.43

Damit die Versionsnummer auslesbar ist, muss diese in einer Variable PLUGIN_VERSION der Klasse gespeichert werden:

from lib.model.smartplugin import SmartPlugin

class MyPlugin(SmartPlugin):
   ALLOW_MULTIINSTANCE = False
   PLUGIN_VERSION="1.1.22"

Diese Versionsnummer wird beim laden des Plugins automatisch ausgelesen, geprüft und in den Plugin-Items hinterlegt.