Release-Richtlinie
OpenClaw hat drei öffentliche Release-Kanäle:- stable: getaggte Releases, die standardmäßig auf npm
betaveröffentlichen oder auf ausdrücklichen Wunsch auf npmlatest - beta: Prerelease-Tags, die auf npm
betaveröffentlichen - dev: der fortlaufende Head von
main
Versionsbenennung
- Version eines Stable-Releases:
YYYY.M.D- Git-Tag:
vYYYY.M.D
- Git-Tag:
- Version eines Stable-Korrektur-Releases:
YYYY.M.D-N- Git-Tag:
vYYYY.M.D-N
- Git-Tag:
- Version eines Beta-Prereleases:
YYYY.M.D-beta.N- Git-Tag:
vYYYY.M.D-beta.N
- Git-Tag:
- Monat oder Tag nicht mit führenden Nullen auffüllen
latestbedeutet das aktuell promotete stabile npm-Releasebetabedeutet das aktuelle Beta-Installationsziel- Stable- und Stable-Korrektur-Releases veröffentlichen standardmäßig auf npm
beta; Release-Operatoren können explizitlatestals Ziel wählen oder später einen geprüften Beta-Build promoten - Jedes OpenClaw-Release liefert das npm-Paket und die macOS-App gemeinsam aus
Release-Taktung
- Releases gehen zuerst über beta
- Stable folgt erst, nachdem die neueste Beta validiert wurde
- Das detaillierte Release-Verfahren, Freigaben, Zugangsdaten und Hinweise zur Wiederherstellung sind nur für Maintainer bestimmt
Release-Preflight
- Führen Sie
pnpm build && pnpm ui:buildvorpnpm release:checkaus, damit die erwartetendist/*-Release-Artefakte und das Bundle der Control UI für den Schritt der Pack-Validierung vorhanden sind - Führen Sie
pnpm release:checkvor jedem getaggten Release aus - Der npm-Preflight für den Main-Branch führt außerdem
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cachevor dem Paketieren des Tarballs aus und verwendet dabei sowohl die Workflow-SecretsOPENAI_API_KEYals auchANTHROPIC_API_KEY - Führen Sie
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(oder das passende Beta-/Korrektur-Tag) vor der Freigabe aus - Führen Sie nach dem npm-Publish
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(oder die passende Beta-/Korrekturversion) aus, um den veröffentlichten Registry- Installationspfad in einem neuen temporären Präfix zu verifizieren - Die Release-Automatisierung für Maintainer verwendet jetzt Preflight-dann-Promote:
- echtes npm-Publish muss einen erfolgreichen npm-
preflight_run_idbestehen - stabile npm-Releases verwenden standardmäßig
beta - stabiles npm-Publish kann über Workflow-Eingabe explizit
latestals Ziel verwenden - die Promotion eines stabilen npm-Releases von
betanachlatestbleibt weiterhin als expliziter manueller Modus im vertrauenswürdigen WorkflowOpenClaw NPM Releaseverfügbar - dieser Promotionsmodus benötigt weiterhin ein gültiges
NPM_TOKENin der Umgebungnpm-release, da die Verwaltung von npm-dist-tagvom vertrauenswürdigen Publishing getrennt ist - öffentliches
macOS Releasedient nur der Validierung - echter privater mac-Publish muss erfolgreiche private mac-
preflight_run_idundvalidate_run_idbestehen - die echten Publish-Pfade promoten vorbereitete Artefakte, statt sie erneut zu bauen
- echtes npm-Publish muss einen erfolgreichen npm-
- Bei Stable-Korrektur-Releases wie
YYYY.M.D-Nprüft der Verifier nach dem Publish außerdem denselben Upgrade-Pfad mit temporärem Präfix vonYYYY.M.DaufYYYY.M.D-N, damit Release-Korrekturen nicht stillschweigend ältere globale Installationen auf der Basis-Payload des Stable-Releases belassen - Der npm-Release-Preflight schlägt fail-closed fehl, sofern der Tarball nicht sowohl
dist/control-ui/index.htmlals auch eine nicht leere Payload indist/control-ui/assets/enthält, damit nicht erneut ein leeres Browser-Dashboard ausgeliefert wird - Wenn die Release-Arbeit die CI-Planung, Timing-Manifeste von Erweiterungen oder schnelle
Testmatrizen berührt hat, generieren und prüfen Sie die planer-eigenen Workflow-Matrix-Ausgaben
checks-fast-extensionsaus.github/workflows/ci.ymlvor der Freigabe neu, damit Release-Notes keine veraltete CI-Struktur beschreiben - Die Bereitschaft für stabile macOS-Releases umfasst auch die Updater-Oberflächen:
- das GitHub-Release muss am Ende die paketierten Dateien
.zip,.dmgund.dSYM.zipenthalten appcast.xmlaufmainmuss nach dem Publish auf die neue stabile ZIP-Datei zeigen- die paketierte App muss eine nicht-Debug-Bundle-ID, eine nicht leere Sparkle-Feed-
URL und eine
CFBundleVersionbeibehalten, die mindestens dem kanonischen Sparkle-Build-Mindestwert für diese Release-Version entspricht
- das GitHub-Release muss am Ende die paketierten Dateien
NPM-Workflow-Eingaben
OpenClaw NPM Release akzeptiert diese operatorgesteuerten Eingaben:
tag: erforderliches Release-Tag wiev2026.4.2,v2026.4.2-1oderv2026.4.2-beta.1preflight_only:truenur für Validierung/Build/Paketierung,falsefür den echten Publish-Pfadpreflight_run_id: erforderlich auf dem echten Publish-Pfad, damit der Workflow den vorbereiteten Tarball aus dem erfolgreichen Preflight-Lauf wiederverwendetnpm_dist_tag: npm-Ziel-Tag für den Publish-Pfad; Standard istbetapromote_beta_to_latest:true, um den Publish zu überspringen und einen bereits veröffentlichten stabilenbeta-Build auflatestzu verschieben
- Stable- und Korrektur-Tags dürfen entweder auf
betaoderlatestveröffentlichen - Beta-Prerelease-Tags dürfen nur auf
betaveröffentlichen - Der echte Publish-Pfad muss denselben
npm_dist_tagverwenden, der während des Preflight verwendet wurde; der Workflow verifiziert diese Metadaten, bevor der Publish fortgesetzt wird - Der Promotionsmodus muss ein Stable- oder Korrektur-Tag,
preflight_only=false, einen leerenpreflight_run_idundnpm_dist_tag=betaverwenden - Der Promotionsmodus erfordert außerdem ein gültiges
NPM_TOKENin der Umgebungnpm-release, danpm dist-tag addweiterhin normale npm-Authentifizierung benötigt
Ablauf für stabile npm-Releases
Beim Erstellen eines stabilen npm-Releases:- Führen Sie
OpenClaw NPM Releasemitpreflight_only=trueaus - Wählen Sie
npm_dist_tag=betafür den normalen Beta-zuerst-Ablauf oderlatestnur dann, wenn Sie absichtlich direkt stabil veröffentlichen möchten - Speichern Sie die erfolgreiche
preflight_run_id - Führen Sie
OpenClaw NPM Releaseerneut mitpreflight_only=false, demselbentag, demselbennpm_dist_tagund der gespeichertenpreflight_run_idaus - Wenn das Release auf
betagelandet ist, führen SieOpenClaw NPM Releasespäter mit demselben stabilentag,promote_beta_to_latest=true,preflight_only=false, leerempreflight_run_idundnpm_dist_tag=betaaus, wenn Sie diesen veröffentlichten Build auflatestverschieben möchten
npm-release und ein
gültiges NPM_TOKEN in dieser Umgebung.
Dadurch bleiben sowohl der direkte Publish-Pfad als auch der Beta-zuerst-Promotionspfad
dokumentiert und für Operatoren sichtbar.
Öffentliche Referenzen
.github/workflows/openclaw-npm-release.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
als eigentliche Runbook-Dokumentation.