[MODUL] Script Versionierung

Moin,

ich wollte hier mal ein Modul vorstellen.

Moduls „Versionierung“

Das Versionierungs-Modul dient zur automatisierten Versionierung von Skripten in IP-Symcon.

Es versioniert ausgewählte Skripte in:
a) selbst einstellbaren regelmäßigen Abständen als neue Versionen oder und
b) nach Änderung der Versionsnummer

Die Versionierten Scripte können an einer von 2 Stellen automatisch versioniert werden:
a) Unter dem zu versionierenden Skript. Dazu wird eine Dummy Instanz Namens Versionierung erstellt und unter dieser wird das Script in eine Variable gespeichert.
b) Die Speicherung erfolgt unter der Versionierungsinstanz. Unter dieser werden alle Variablen erstellt.

Der Name unter was die Speicherung erfolgen soll ist frei einstellbar.

Die Wiederherstellung erfolgt unter der Angabe der Versionsnummer unterhalt der Variable. Es können alle Versionierungen wiederhergestellt werden. Wiederhergestellte Scripte werden durch einen Kommentar im Script gekennzeichnet und gegen ungewolltes ausführen durch ein return geschützt. Dieser Bereich muss händisch nach der Wiederherstellung entfernt werden.

Zur Verfügung stehende Funktionen dafür:

define(‚ID_VERSIONIERUNG‘, 12345); // ID der Modul Instanz für die automatische Versionierung

Versionierung :
TBSV_Versionierung(ID_VERSIONIERUNG, $_IPS[‚SELF‘], array(„DATUM“ => date(‚Y-m-d H:00:00‘, time()), „VERSION“ => „0.0.0.10“));

Mit dieser Funktion kann durch Änderung des array Wertes „DATUM“ die Versionierung ausgelöst werden oder durch die Änderung des Wertes „VERSION“
Als Rückgabe aus der Funktion gibt es Informationen ob das erfolgreich war.

Wiederherstellung:
TBSV_Wiederherstellung(ID_VERSIONIERUNG, $_IPS[‚SELF‘], array(„VERSION“ => „0.0.0.60“));

Mit dieser Funktion wird ein Versioniertes Script wiederhergestellt. Es befindet sich unterhalb der Variable. Als Rückgabe aus der Funktion gibt es Informationen ob das erfolgreich war.

Historie :
TBSV_VersionsHistorie(ID_VERSIONIERUNG, $_IPS[‚SELF‘])

Diese Funktion liefert als Rückgabe Informationen über bereits Versionierte Zustände des Scriptes.

Funktionen und Anwendungsbereiche:

  1. Automatische Versionierung : Speichert Skripte regelmäßig ab, um Änderungen rückgängig machen zu können.
  2. VersionsHistorie : Listet alle Versionen eines Skripts chronologisch auf, sodass jede Änderung nachvollziehbar bleibt.
  3. Wiederherstellen : Ermöglicht die Rückführung eines Skripts auf eine frühere Version – ideal, um Änderungen rückgängig zu machen oder einen Zustand zu einem bestimmten Zeitpunkt / Version wiederherzustellen.

Anwendungsfälle:

Das Modul ist besonders nützlich in komplexen IP-Symcon-Projekten, bei denen Skripte regelmäßig angepasst oder optimiert werden. Die Versionierungshistorie und einfache Wiederherstellung tragen zur Fehlerreduktion und Nachvollziehbarkeit bei und erleichtern die Arbeit bei Skriptoptimierungen und -tests.

Dazu mal ein paar Bilder:
Unter der Instanz versioniert.

Unter dem Script Versioniert:

im Script:



in der Instanz:

Wiederhergestellte Scripte unter der Instanz:

Und einmal das wiederhergestellte Script:

5 „Gefällt mir“

Hallo zusammen,

ich habe mit @dzvo dvzo zusammen das Modul angeschaut und getestet.

Ich finde so vom handling her wenn man mal so eben was programmiert und testet etc. finde ich das man schneller nicht eine Kopie von seinem Script erstellen kann und sichern kann.

Vor allem man bleibt in seinem Script und muss nicht im IPS Baum das Script kopieren und umbenennen usw.
Man benötigt nur im eigenem Script sein Script mit ein paar Zeilen mehr auszuschmücken die nur auf das Execute vom Script reagieren um die Sicherung auszulösen.

Was ich noch sehr gut finde ist das die Scripte die man versionieren möchte, alle unter einem einstellbaren Punkt untergeordnet sind, wenn man das Modul z.B. so einstellt das man die Scripte unter der Modulinstanz haben möchte. Von dort aus ist wiederum auch möglich das wiederhergestellte Script zu benutzen zum zurück kopieren etc.

Alles in allem, finde ich das man auf die schnelle sein Script wieder sehr schnell auf was funktionsfähiges zurück bekommt.
Ich denke jeder hat bestimmt schon zu genüge mal was falsches an Scripte gelöscht oder so verdreht das es nicht mehr sauber lief. Ich finde das ist eine sehr gute alternative auch für Benutzer die sich ihr Handling im IPS noch aufbauen oder ständig weiter entwickeln.

Man geht auch ein wenig dem kopieren weiterer Objekte aus dem weg, wenn z.B. unter dem Script weitere Objekte liegen und eventuell dann zwei Scripte aktiv laufen wegen Events etc.

Das was richtig cool ist das man auch über MD5 seine Scriptsicherung ausführen kann oder halt auch der klassischen Versionsnummern Vergabe.

Gibt es schon jemand anderes der dazu ein paar Anreize hat was gut oder schlecht an der Idee sein kann ?

Gruß

Hallo,
ich finde das Themas super interessant.

Wo finde ich das Modul ?
Ist es noch im BETA Status ? Im Modul-Store mag es bei mir nicht auftauchen.

Grüße

Hallo,

das ist noch nicht veröffentlicht. Ich denke weil es das erste Modul von ihm ist möchte er erstmal auf Nummer sicher gehen um mal andere Meinungen dazu einzuholen.

Vielleicht gibt es auch noch Anreize oder Ideen ob das praktikabel ist so vorzugehen seine internen
IPS Script Sicherung vorzunehmen. Er meldet sich bestimmt nächste Woche mal dazu.

Mal sehen was er noch dazu sagt.

Gruß

Hallo,

ich bin damals über https://community.symcon.de/t/automatische-versionierung-in-skripten/131851?u=brdiver677 diese Diskussion gestolpert…

und letztendlich habe ich seit geraumer Zeit das Modul:
https://github.com/demel42/IPSymconConfigVC
dafür in Benutzung.

Ziel für mich ist es, eine Möglichkeit zu haben, wenn ich mich „vergaloppiert“ habe. Oftmals hat man ja komplexere Aufgaben und arbeitet sich schrittweise in Richtung Ziel. Manchmal würde man auch gerne zur einer vorherigen Version gehen…
Daher sehe ich schon mit Spannung dem Modul entgegen.

Grüße

Hi,

oh da gibt es irgendwie schon Ansätze.

Sogar einen Ansätze von @pitti und noch weitere andere Ideen. Ich habe mir jetzt die anderen Idee nicht angeschaut.

Ich persönlich finde die so zu sagen lokale Version und innerhalb von IPS sehr gut. Von der Idee her soll das natürlich nicht den externen Ansatz von Backups etc. ersetzen sondern eher das man sich innerhalb von Symcon beim Arbeiten schnell wieder behelfen kann.

Aber das ist natürlich für jeden seine persönliche Arbeitsweise zu sehen.

Bin gespannt was @dzvo daraus weiter macht.

Gruß

Moin,

das Modul ist noch nicht veröffentlicht, ich wollte das erst noch etwas Testen.

Entstanden ist es genau aus dem Gedanken "mal eben schnell eine Kopie / Sicherung / … " erstellen zu können, ohne sich Gedanken zu machen ob in dem Script irgendwelche Zugangsdaten usw. stecken, da es alles lokal gespeichert wird. Nicht alles muss / soll / kann in die Cloud gespeichert werden.

Daraus ist es dann weiterentwickelt worden. Versionierung unter dem Script, was auch (manchmal) nicht so gut ist, denn wenn das Script gelöscht wird ist die Dummy Instanz darunter ja auch weg, also, einstellbar gemacht das es auch unter der Modul Instanz gespeichert werden kann.

Es wird also noch ein paar Tage dauern und ich sehe mal zu das ich es als Beta beim Symcon Team als Modul anbieten kann. Ich weiß halt noch nicht wie :wink:

Dann kann das Modul mal etwas größer getestet werden.

@brdiver677, wenn Du möchtest und Du mir mal ne PM schreibst kann ich Dir ja mal das Modul zukommen lassen und Du kannst es ja mal lokal Testen.

Sollte es Fragen oder weitere Ideen zum Funktion Umfang geben, gerne hier schreiben.

Gruß
Thomas