Release Engineering
Diese Seite richtet sich an Ingenieure, die Releases des Kernels oder einer Erweiterung erstellen, und an jene, die wissen müssen, was ein Release garantiert. Die Regeln stammen aus Versionsverwaltung und Releases und Kompatibilität, Releases und Bereitstellung; der Kurs für Maintainer von Erweiterungen ist Veröffentlichen.
Inhalt
- Linien und Versionen
- Bevor Sie taggen
- Eine Erweiterung veröffentlichen
- Veröffentlichung
- Wenn ein Release fehlerhaft ist
Linien und Versionen
mainist die Entwicklungslinie.composer.jsongibt ihr den Alias6.0.x-dev(extra.branch-alias), und die CI läuft darauf.- Die Kernel-Version liegt in
lib/version.php(VERSION_MAJOR,VERSION_MINOR,VERSION_RELEASE) und in der Datenbankzeileezsite_dataezpublish-version, die das Update-SQL schreibt. Diecomposer.jsonim Hauptverzeichnis hat kein Feldversion; Composer nimmt die Version aus dem Tag. - Kernel-Releases werden als
v6.0.<n>getaggt. Die Tagsv6.0.0bisv6.0.14existieren; die Linie 6.0.15 ist in Entwicklung. - Erweiterungen sind eigene Composer-Pakete mit eigenen Versionen.
Eine Nummer wählen: Versionsnummern und unveränderliche Tags.
Bevor Sie taggen
Ein Tag ist billig richtig zu machen und unmöglich zu korrigieren. Vor dem Taggen:
- To do: Der Arbeitsbaum ist sauber.
- To do: Quality und PHPUnit sind auf dem Commit grün, den Sie taggen werden (CI-Gates).
- To do: Die Versionsfelder sind in dem Commit erhöht, auf den der Tag zeigt.
- To do:
share/filelist.md5passt zu den Dateien (php bin/php/checkmanifest.php --all). - To do: Die Changelog-Seite für die Version existiert (Changelogs und Upgrade-Hinweise).
- To do: Jede für Upgrades relevante Änderung hat ihre Seite in
doc/eng-us/bc/. - To do: Im Repository committete Build-Artefakte passen zu ihren Quellen.
Eine Erweiterung veröffentlichen
Jedes Release schreibt seine Nummer in die Erweiterung, in dem Commit, auf den der Tag zeigt:
- Wählen Sie die Nummer anhand dessen, was bereits veröffentlicht ist.
- Setzen Sie
'Version'inezinfo.phpund<metadata><version>inextension.xmldarauf, ohne das Präfixv(Tagv1.8.4ergibt1.8.4). Lassen Sie nie//autogentag//oderdev-masterstehen. Beide Dateien nennen außerdem die Lizenz und eineinfo_urlauf dem öffentlichen Repository der Erweiterung. - Ändern Sie jedes weitere Versionsfeld, das das Repository führt (
versionin seinercomposer.json, den Kopf seiner eigenenshare/filelist.md5), und erneuern Sie die Prüfsummen dieses Manifests. - Prüfen Sie:
php -l ezinfo.phpundxmllint --noout extension.xml. - Committen Sie, dann taggen Sie diesen Commit, dann pushen Sie beides. Taggen Sie nie zuerst und erhöhen danach.
Erweiterungen, die im Kernel-Repository ausgeliefert werden, tragen die Version des Kernels. Die Info-Seite liest beide Dateien (Info- und Paketseiten, Metadaten von Erweiterungen).
Veröffentlichung
- GitHub-Release: aus dem Tag erstellt, mit Notes aus dem Changelog (GitHub-Releases und Release Notes).
- Packagist: Jedes
se7enxweb/*-Repository ist ein Composer-Paket. Ein Webhook am GitHub-Repository informiert Packagist über neue Tags; ein Paket ohne ihn bleibt bei einer alten Version, bis es von Hand aktualisiert wird (Der Packagist-Webhook). - Neu festlegen im Hauptprojekt: Veröffentlichen Sie die Erweiterung, sehen Sie die Version auf Packagist und committen Sie dann die neue Bedingung im Hauptprojekt. Das Push-Gate lehnt eine Bedingung ab, die Packagist noch nicht erfüllen kann, weil die Installation der CI sonst auf jedem Zweig scheitern würde.
Wenn ein Release fehlerhaft ist
Verschieben, löschen oder erstellen Sie den Tag nicht neu, und ersetzen Sie nicht die Assets des Releases. Veröffentlichen Sie die nächste Version mit der Korrektur und sagen Sie in ihren Notes klar, was an der vorherigen falsch war. Nutzer, die Bereiche festlegen, erhalten die neue Version; niemandem ist mit einem Loch in der Geschichte geholfen.
Verwandte Seiten
- Die Release-Checkliste
- Versionen und Releases, für Anwendungsentwickler
- Abhängigkeitsverwaltung mit Composer
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.