Ein Release ist ein ZIP, dessen Wurzel der Anwendungsstamm des Projekts ist. Der Client rollt es über die bestehende Installation aus.
Ablauf: bauen → hochladen → als aktuell setzen → Instanzen holen es ab.
scripts/create-release-zip.sh ist die Vorlage. Sie wird einmal pro Projekt
angepasst (Produktname, Versionsdatei, Ausschlussliste), ins Projekt kopiert und
dort aufgerufen:
./scripts/create-release-zip.sh v1.3.0
Das Skript
Es warnt, wenn die Arbeitskopie ungesicherte Änderungen enthält: Weil die
Dateiliste aus git ls-files stammt, landen nicht eingecheckte Änderungen sonst
still nicht im Paket.
Ausführlich – Aufbau des Pakets, Ausschlüsse, häufige Fehler: ../client-package/docs/06_UPDATE_PACKAGING.md.
Releases öffnen, Version im Format vX.Y.Z eintragen, ZIP auswählen,
hochladen.
Der Server
<MANAGE_PACKAGE_PREFIX>-<version>.zip,Die angezeigte Prüfsumme sollte mit der des Build-Skripts übereinstimmen. Tut sie das nicht, wurde eine andere Datei hochgeladen.
Schlägt der Upload ohne erkennbaren Grund fehl, ist meist das PHP-Upload-Limit kleiner als das Paket. Die geltenden Werte stehen auf der Releases-Seite und unter Einstellungen → Diagnose.
Ein Upload setzt das neue Release automatisch als aktuell. Über Als aktuell setzen kann jederzeit ein anderes gewählt werden – das ist auch der Weg, um nach einem missglückten Release wieder auf die vorherige Fassung zu zeigen.
Wichtig: Das ändert nur, was Instanzen künftig herunterladen. Bereits ausgerollte
Instanzen bleiben, wo sie sind – der Client kennt keine Rücknahme. Eine Instanz auf
die ältere Fassung zurückzubringen heißt, sie mit update --force erneut ausrollen
zu lassen; Datenänderungen aus Migrationen macht das nicht rückgängig.
Auf der Instanz:
php manage-client/bin/manage-client.php check # Exit 2 = Update verfügbar
php manage-client/bin/manage-client.php backup # vorher sichern
php manage-client/bin/manage-client.php update
Oder über die Oberfläche im Adminbereich des Projekts.
Updates laufen nicht automatisch. Sie überschreiben Dateien im laufenden Betrieb und können Migrationen auslösen; das gehört unter Aufsicht.
Löschen entfernt den Manifest-Eintrag und die ZIP-Datei. War es das aktuelle
Release, hat der Server danach keines – Instanzen melden dann Es ist kein gültiges
Release veröffentlicht. Vorher ein anderes als aktuell setzen.
Format vX.Y.Z, sonst nichts. Client und Server lehnen alles andere ab. Eine
bereits veröffentlichte Version erneut hochzuladen überschreibt das Paket – bei
einem fehlerhaften Release ist eine neue Patch-Version die sauberere Wahl, weil
Instanzen sonst je nach Zeitpunkt Unterschiedliches installiert haben.