Versionierung

In Intrexx können die verschiedenen Entwicklungsstände von Applikationen, Prozessen und Layouts auf zwei Arten versioniert werden:

1. Versionsnummer




Die Versionsnummer kann im Eigenschaftendialog von Applikationen, Prozessen und Layouts erstellt und bearbeitet werden. Sie wird nicht automatisch erstellt, sondern manuell und erleichtert damit die Identifizierung der Version, die im Einsatz ist. So kann z.B. sehr einfach geprüft werden, ob eine im Intrexx Application Store gekaufte Applikation noch auf dem aktuellsten Stand ist oder ob eine neuere Version im Store erhältlich ist.

Versionsmanager öffnen
Öffnet einen Dialog, in dem Versionsnummern angelegt und verwaltet werden können.



Bei der semantischen Versionierung werden Versionsnummern aus drei Stellen zusammengesetzt: Major, Minor und Patch. Sie hat immer das Format <Major Version>.<Minor Version>.<Patch Version>. Die einzelnen Stellen sollten wie folgt erhöht werden:


Außerdem können Vorveröffentlichungs-Versionen zusätzlich zur Versionsnummer angegeben werden.

1.1. Vergabe von Versionsnummer einschränken

Applikations-, Prozess- und Layoutentwickler haben die Möglichkeit, die Vergabe von Versionsnummern durch andere Benutzer einzuschränken. Öffnen Sie dazu die version.xml-Datei im Portalverzeichnis internal/application/store/<GUID der Applikation / des Prozesses / des Layouts> in einem Texteditor.
<?xml version="1.0" encoding="UTF-8"?>
<v:versions xmlns:v="http://schemas.unitedplanet.de/intrexx/2016/versionmanager/versioninfo/" lock="false">
    <v:version guid="83F4893FA60DD288DD89C3240B5CA70B83E0ED7E" major="1" minor="0" patch="0" creationTime="1501153173848">
        <v:property name="date">2017-07-26T22:00:00Z</v:property>
        <v:property name="minProductVersion">9000100</v:property>
        <v:property name="additionalRequirements">
            <v:text>
                <v:item lang="de"/>
                <v:item lang="en"/>
            </v:text>
        </v:property>
        <v:property name="description">
            <v:text>
                <v:item lang="de"/>
                <v:item lang="en"/>
            </v:text>
        </v:property>
    </v:version>
</v:versions>
Ersetzen Sie hier die Eigenschaft lock="false" mit lock="true" und speichern Sie die Datei.
<?xml version="1.0" encoding="UTF-8"?>
<v:versions xmlns:v="http://schemas.unitedplanet.de/intrexx/2016/versionmanager/versioninfo/" lock="true">

1.2. Callables

Für die semantische Versionierung gibt es die Callables
$Portal.getApplicationVersionInformation("<appGuid>"))
$Portal.getWorkflowVersionInformation("<wfGuid>"))
$Portal.getLayoutVersionInformation("<layoutDirName>"))
die ein Objekt vom Typ "de.uplanet.lucy.server.auxiliaries.versionmanager.VCVersionInfo" zurückliefern. "VCVersionInfo" hat folgende Methoden: "VCVersionItem" hat folgende Methoden: So kann z.B. mit Velocity die aktuelle Version einer Applikation im Browser eingeblendet werden:
$Portal.getApplicationVersionInformation("<GUID der Applikation>").getCurrentVersion().getFormattedVersion()
Weitere Informationen finden Sie hier.

2. Historie - Versionsverwaltung mit Git

2.1. Wo kann eine Historie erstellt werden?

Eine Historie kann in den Modulen erstellt werden. Grundlage für die Historie ist ein Git-Repository. Dieses wird jeweils im angelegt. Jeder Eintrag in der Historie entspricht einem Commit im Git-Repository. Wenn Sie eine Applikation, einen Prozess oder ein Layout über das Hauptmenü Datei veröffentlichen, wird ein Dialog geöffnet, in dem ein Eintrag in der Historie mit Git erstellt werden kann.



Hier sehen Sie den Dialog beim Veröffentlichen einer Applikation. Im Zuge der Versionierung von Applikationen oder Prozessen wird auch enthaltenes Skript versioniert.

2.2. Einstellungen

2.2.1. Optionen / Veröffentlichen




Im Hauptmenü Extras/Optionen finden sie pro Modul die Einstellung für das Veröffentlichen von Applikationen, Prozessen und Layouts mit oder ohne Historie. oder mit F1 bzw. Klick auf die Hilfe-Schaltlfläche, wenn Sie sich in den Optionen befinden. Die Einstellungen regeln das Standardverhalten beim Veröffentlichen. Unabhängig davon können Sie jede Variante im Hauptmenü Datei auswählen, also auch ohne Historie veröffentlichen, obwohl im Hauptmenü Extras/Optionen die Einstellung für die Veröffentlichung mit Historie gesetzt ist. Weitere Informationen finden Sie hier:

2.2.2. Portaleigenschaften / Optionen




Im Hauptmenü Portal / Portaleigenschaften kann in den Optionen eingestellt werden, dass beim Veröffentlichen von Applikationen, Prozessen und Layouts immer ein Eintrag in Historie erstellt wird. Alle Informationen zu dieser Einstellung finden Sie hier.

2.3. Neuer Eintrag in Historie

Ein neuer Eintrag in der Historie kann auf folgenden Wegen erstellt werden: Neue Einträge in der Historie werden über Benutzer- oder Systemaktionen erstellt.

2.3.1. Benutzeraktionen

In den folgenden Fällen wird ein Eintrag erstellt:

2.3.2. Systemaktionen

Bei bestimmten Aktionen wird durch das System automatisch ein neuer Eintrag in der Historie erstellt, wenn die entsprechende Einstellung in den Portaleigenschaften gesetzt ist. Falls es dabei noch kein Repository gibt, wird dieses erstellt. Neue Einträge erhalten jeweils einen statischen englischsprachigen Kommentar mit dem Präfix Intrexx:. Der Benutzer, der im Historien-Eintrag hinterlegt wird, ist abhängig von der Aktion (s.u.). Es werden folgende Systemaktionen unterstützt:

2.4. Wo finde ich die gesamte Historie?

Die gesamte Historie finden Sie hier:


Diese Menüs öffnen jeweils einen Dialog, in dem Sie die Liste der Historien-Einträge finden.



Außerdem finden Sie in den Modulen Applikationen, Prozesse und Design den Reiter Historie im unteren Bereich. Auch hier wird die gesamte Historie der aktuell geöffneten Applikation, des Prozesses oder Layouts angezeigt.

2.5. Tags verwenden

Mit einem Tag kann man Einträge in der Historie als wichtig markieren, so dass man diese in der Historie einfach erkennen kann. Oft wird ein Tag dafür verwendet, um eine neue Version zu markieren. Es kann prinzipiell jeder Eintrag, der für die Entwicklung wichtig ist, mit einem Tag markiert werden. Intrexx verknüpft die Intrexx-Versionsnummern automatisch mit Tags in der Historie. Wird z.B. in einer Applikation eine neue Versionsnummer angelegt und die Applikation anschließend veröffentlicht, so wird für diesen Commit ein Tag mit dieser Versionsnummer angelegt.

Tags können für die Historie von Applikationen, Prozessen und Layouts in dem Dialog angelegt werden, der die gesamte Historie anzeigt. Pro Eintrag in der Historie kann eine beliebige Anzahl von Tags vergeben werden. Tags können auch gelöscht werden. Jeder Tag ist wie folgt aufgebaut: Der Name eines Tags muss eindeutig sein, d.h. er darf nur einmal pro Historie vorkommen. Außerdem muss der Tagname Git-konform sein - er darf z.B. keine Leerzeichen enthalten. Regeln für Tagnamen finden Sie hier. Optional kann ein Kommentar pro Tag vergeben werden. Wird kein Kommentar gesetzt, dann bleibt der Kommentar leer. Ein Tag wird automatisch erstellt, wenn beim Veröffentlichen ermittelt wird, dass sich die semantische Versionsnummer geändert hat. Der Tagname entspricht der semantischen Versionsnummer und wird zur Verhinderung von Duplikaten ggfs. mit einem Suffix ergänzt.

2.6. Vergleichen

Historien-Einträge können über den Dialog verglichen werden, der die gesamte Historie anzeigt.



Vergleichen
Öffnet einen Dialog, in dem die Versionen, die verglichen werden sollen, ausgewählt werden können.



Außerdem können hier Dateien über den Dateien-Reiter verglichen werden.

Dateihistorie anzeigen
Zeigt die Historie der ausgewählten Datei im selben Dialog an, der dabei erneut geöffnet wird. Anschließend kann der Vergleich ausgeführt werden. Erreichbar ist der Vergleich auch direkt über die Hauptmenüs Vergleich mit letztem Eintrag in der Applikationshistorie und Vergleich mit Eintrag in der Applikationshistorie. Der aktuell geöffnete Stand kann auch beim Veröffentlichen in dem Dialog, in dem der Historien-Eintrag erstellt werden kann, mit dem letzten Stand eines Eintrags in der Historie verglichen werden. Dasselbe gilt für Prozesse und Layouts.

2.7. Anzeige von Informationen zum aktuellen Stand

Welche Version aktuell in den verschiedenen Modulen geöffnet ist, wird an den folgenden Stellen angezeigt:

2.8. Externe Tools

Für die Versionierung mit Git können auch externe Tools, die Sie hier in Intrexx einbinden können, verwendet werden.

2.9. Export und Import

2.10. Sonstiges

Über das Hauptmenü Datei können Applikationen, Prozesse und Layouts lokal gespeichert werden. Eine lokal gespeicherte Applikation enthält keine Git-Informationen. Dies gilt auch für lokal gespeicherte Prozesse und Layouts. Öffnet man ein lokal gespeichertes Objekt im entsprechenden Modul, so kann man die Historie des Objekts anzeigen, wenn auf dem Server eine Applikation oder ein Prozess mit derselben GUID bzw. ein Layout mit demselben Verzeichnisnamen veröffentlicht ist.

2.11. Git-Konfigurationsdateien

Beim Anlegen eines Git-Repositories werden Konfigurationsdateien angelegt. Je nach Objekttyp (Applikation, Prozess, Layout) kann es sein, dass nicht alle Konfigurationsdateien benötigt werden.