Upgrade einer dogu.json
von v1 zu v2
Dependencies und OptionalDependencies
Zum Upgraden des dogu.json-Formats von v1 zu v2 müssen die Unterpunkte "Dependencies" und "OptionalDependencies" angepasst werden. Im V1-Format bestanden die Dependencies aus einer Liste von Dogu-Namen.
Im V2-Format ist es möglich, neben Dogus auch Abhängigkeiten auf clients
und packages
zu haben, sowie eine Version anzugeben.
Ein Eintrag einer Dependency ist nun ein json-Objet mit den Attributen:
Feld: type
- Datentyp: string
- Optional: nein
- Zulässige Werte:
dogu
|package
|client
dogu
Das Dogu hat eine Abhängigkeit zu einem anderen Dogu.
package
Das Dogu hat eine Abhängigkeit zu einem installierten Debian-Package.
client
Das Dogu hat eine Abhängigkeit zu einem installierten Debian-Package.
Die Besonderheit bei einem client
ist, dass dieser nicht von jedem Tool überprüft wird.
So wird die client
-Abhängigkeit cesapp
beispielsweise nur von der Cesapp überprüft und die client
-Abhängigkeit
ces-setup
nur von dem Ces-Setup.
Dies ist notwendig, wenn der Client, der das Tool installiert in einer bestimmten Version vorhanden sein muss, es aber mehrere Alternativen gibt, dieses Dogu zu installieren.
Beispiel ces-setup:
Wird ein Dogu von dem ces-setup installiert, kann es notwendig sein, dass das ces-setup in einer bestimmten Version
installiert ist.
Wird dasselbe Dogu allerdings von der Cesapp installiert, so wird zwar eine bestimmte Cesapp-Version benötigt, die
installierte Version des Ces-Setups ist in diesem Moment aber irrelevant.
In diesem Fall hätte ein Dogu eine client
-Abhängigkeit zum ces-setup und zur cesapp mit den entsprechenden Versionen.
Feld: name
- Datentyp: string
- Optional: nein
- Zulässige Werte: Beliebiger string mit dem Namen des Dogus (z.B.:
ldap
)
Feld: version
- Datentyp: string
- Optional: ja
-
Zulässige Werte:
[Komparator]<Version>
- Komparator:
>=
: Version muss größer oder gleich sein - Komparator:
<=
: Version muss kleiner oder gleich sein - Komparator:
>
: Version muss größer sein - Komparator:
<
: Version muss kleiner sein - Komparator:
=
bzw.==
: Version muss genau gleich sein
- Komparator:
Beispiele für gültige Werte: <1.0.0
, >=1.2.0
, 2.0.0
-
V1-Format-Beispiel
{ "Dependencies": [ "nginx", "redmine" ], "OptionalDependencies": [ "postgresql" ] }
-
V2-Format-Beispiel
{ "Dependencies": [ { "type": "dogu", "name": "nginx", "version": ">1.0-1" }, { "type": "dogu", "name": "redmine" }, { "type": "client", "name": "cesapp", "version": ">=3.2.0" }, { "type": "package", "name": "ces-commons", "version": ">=1.0.0" } ], "OptionalDependencies": [ { "type": "dogu", "name": "postgresql", "version": "<=1.0-1" } ] }