Policy di release
OpenClaw ha tre canali di release pubblici:- stable: release taggate che pubblicano su npm
betaper impostazione predefinita, oppure su npmlatestquando richiesto esplicitamente - beta: tag di prerelease che pubblicano su npm
beta - dev: la testa mobile di
main
Denominazione delle versioni
- Versione di release stable:
YYYY.M.D- Tag Git:
vYYYY.M.D
- Tag Git:
- Versione di release stable correction:
YYYY.M.D-N- Tag Git:
vYYYY.M.D-N
- Tag Git:
- Versione di prerelease beta:
YYYY.M.D-beta.N- Tag Git:
vYYYY.M.D-beta.N
- Tag Git:
- Non aggiungere zeri iniziali a mese o giorno
latestindica l’attuale release npm stable promossabetaindica l’attuale target di installazione beta- Le release stable e stable correction pubblicano su npm
betaper impostazione predefinita; gli operatori di release possono indirizzare esplicitamentelatestoppure promuovere in seguito una build beta verificata - Ogni release di OpenClaw distribuisce insieme il pacchetto npm e l’app macOS
Cadenza delle release
- Le release passano prima da beta
- Stable segue solo dopo che l’ultima beta è stata validata
- Procedura dettagliata di release, approvazioni, credenziali e note di recupero sono riservate ai maintainer
Preflight della release
- Esegui
pnpm build && pnpm ui:buildprima dipnpm release:checkin modo che gli artefatti di release attesidist/*e il bundle della Control UI esistano per il passaggio di validazione del pack - Esegui
pnpm release:checkprima di ogni release taggata - I controlli di release ora vengono eseguiti in un workflow manuale separato:
OpenClaw Release Checks - Questa separazione è intenzionale: mantiene il percorso reale di release npm breve, deterministico e focalizzato sugli artefatti, mentre i controlli live più lenti restano nel proprio canale così da non rallentare o bloccare la pubblicazione
- I controlli di release devono essere avviati dal workflow ref
maincosì la logica del workflow e i segreti restano canonici - Quel workflow accetta un tag di release esistente oppure l’attuale SHA completo a 40 caratteri del commit
main - In modalità commit-SHA accetta solo l’attuale HEAD di
origin/main; usa un tag di release per commit di release più vecchi - Il preflight di sola validazione
OpenClaw NPM Releaseaccetta anch’esso l’attuale SHA completo a 40 caratteri dimainsenza richiedere un tag pubblicato - Quel percorso SHA è solo di validazione e non può essere promosso a una pubblicazione reale
- In modalità SHA il workflow sintetizza
v<package.json version>solo per il controllo dei metadati del pacchetto; la pubblicazione reale richiede comunque un vero tag di release - Entrambi i workflow mantengono il percorso reale di pubblicazione e promozione su runner GitHub-hosted, mentre il percorso di validazione non mutante può usare i runner Linux Blacksmith più grandi
- Quel workflow esegue
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheusando entrambi i segreti di workflowOPENAI_API_KEYeANTHROPIC_API_KEY - Il preflight della release npm non aspetta più il canale separato dei controlli di release
- Esegui
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(o il tag beta/correction corrispondente) prima dell’approvazione - Dopo la pubblicazione npm, esegui
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(o la versione beta/correction corrispondente) per verificare il percorso di installazione pubblicato nel registry in un prefisso temporaneo pulito - L’automazione di release dei maintainer ora usa preflight-then-promote:
- la vera pubblicazione npm deve superare con successo un
preflight_run_idnpm riuscito - le release npm stable usano
betaper impostazione predefinita - la pubblicazione npm stable può indirizzare esplicitamente
latesttramite input del workflow - la promozione npm stable da
betaalatestresta disponibile come modalità manuale esplicita nel workflow fidatoOpenClaw NPM Release - quella modalità di promozione richiede comunque un
NPM_TOKENvalido nell’ambientenpm-releaseperché la gestione didist-tagnpm è separata dal trusted publishing macOS Releasepubblico è solo di validazione- la vera pubblicazione privata mac deve superare con successo i
preflight_run_idevalidate_run_idprivati mac - i percorsi di pubblicazione reali promuovono artefatti preparati invece di ricostruirli di nuovo
- la vera pubblicazione npm deve superare con successo un
- Per release stable correction come
YYYY.M.D-N, il verificatore post-publish controlla anche lo stesso percorso di upgrade in prefisso temporaneo daYYYY.M.DaYYYY.M.D-Ncosì le release correction non possono lasciare silenziosamente installazioni globali più vecchie sul payload stable di base - Il preflight della release npm fallisce in modo chiuso se il tarball non include sia
dist/control-ui/index.htmlsia un payload non vuotodist/control-ui/assets/così da non distribuire di nuovo una dashboard browser vuota - Se il lavoro di release ha toccato la pianificazione CI, i manifest dei tempi delle estensioni o
le matrici di test delle estensioni, rigenera e rivedi gli output della matrice del workflow
checks-node-extensionsgenerati da.github/workflows/ci.ymlprima dell’approvazione, così le note di release non descrivono una disposizione CI obsoleta - La preparazione della release macOS stable include anche le superfici dell’updater:
- la release GitHub deve finire con i file pacchettizzati
.zip,.dmge.dSYM.zip appcast.xmlsumaindeve puntare al nuovo zip stable dopo la pubblicazione- l’app pacchettizzata deve mantenere un bundle id non di debug, un feed URL Sparkle non vuoto
e un
CFBundleVersionpari o superiore alla soglia canonica di build Sparkle per quella versione di release
- la release GitHub deve finire con i file pacchettizzati
Input del workflow NPM
OpenClaw NPM Release accetta questi input controllati dall’operatore:
tag: tag di release richiesto comev2026.4.2,v2026.4.2-1, oppurev2026.4.2-beta.1; quandopreflight_only=true, può anche essere l’attuale SHA completo a 40 caratteri del commitmainper un preflight di sola validazionepreflight_only:trueper sola validazione/build/package,falseper il percorso di pubblicazione realepreflight_run_id: richiesto nel percorso di pubblicazione reale così il workflow riusa il tarball preparato dall’esecuzione di preflight riuscitanpm_dist_tag: tag npm di destinazione per il percorso di pubblicazione; predefinitobetapromote_beta_to_latest:trueper saltare la pubblicazione e spostare sulatestuna build stablebetagià pubblicata
OpenClaw Release Checks accetta questi input controllati dall’operatore:
ref: tag di release esistente oppure l’attuale SHA completo a 40 caratteri del commitmainda validare
- I tag stable e correction possono pubblicare sia su
betasia sulatest - I tag di prerelease beta possono pubblicare solo su
beta - L’input SHA completo del commit è consentito solo quando
preflight_only=true - La modalità commit-SHA dei controlli di release richiede anche l’attuale HEAD di
origin/main - Il percorso di pubblicazione reale deve usare lo stesso
npm_dist_tagusato durante il preflight; il workflow verifica quei metadati prima che la pubblicazione prosegua - La modalità promozione deve usare un tag stable o correction,
preflight_only=false, unpreflight_run_idvuoto enpm_dist_tag=beta - La modalità promozione richiede anche un
NPM_TOKENvalido nell’ambientenpm-releaseperchénpm dist-tag addrichiede ancora la normale auth npm
Sequenza di release npm stable
Quando esegui una release npm stable:- Esegui
OpenClaw NPM Releaseconpreflight_only=true- Prima che esista un tag, puoi usare l’attuale SHA completo di
mainper una dry run di sola validazione del workflow di preflight
- Prima che esista un tag, puoi usare l’attuale SHA completo di
- Scegli
npm_dist_tag=betaper il normale flusso beta-first, oppurelatestsolo quando vuoi intenzionalmente una pubblicazione stable diretta - Esegui separatamente
OpenClaw Release Checkscon lo stesso tag o con lo SHA completo attuale dimainquando vuoi copertura live della prompt cache- Questo è separato di proposito così la copertura live resta disponibile senza riaccoppiare controlli lunghi o instabili al workflow di pubblicazione
- Salva il
preflight_run_idriuscito - Esegui di nuovo
OpenClaw NPM Releaseconpreflight_only=false, lo stessotag, lo stessonpm_dist_tage ilpreflight_run_idsalvato - Se la release è arrivata su
beta, esegui più tardiOpenClaw NPM Releasecon lo stessotagstable,promote_beta_to_latest=true,preflight_only=false,preflight_run_idvuoto enpm_dist_tag=betaquando vuoi spostare quella build pubblicata sulatest
npm-release e un
NPM_TOKEN valido in quell’ambiente.
Questo mantiene sia il percorso di pubblicazione diretta sia il percorso di promozione beta-first
documentati e visibili agli operatori.
Riferimenti pubblici
.github/workflows/openclaw-npm-release.yml.github/workflows/openclaw-release-checks.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
come runbook effettivo.