Policy di rilascio
OpenClaw ha tre canali di rilascio 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 head mobile di
main
Nomenclatura delle versioni
- Versione release stable:
YYYY.M.D- Tag git:
vYYYY.M.D
- Tag git:
- Versione release stable di correzione:
YYYY.M.D-N- Tag git:
vYYYY.M.D-N
- Tag git:
- Versione 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 stable npm promossabetaindica l’attuale target di installazione beta- Le release stable e le release stable di correzione pubblicano su npm
betaper impostazione predefinita; gli operatori di rilascio possono puntare esplicitamente alatest, oppure promuovere in seguito una build beta verificata - Ogni release OpenClaw distribuisce insieme il pacchetto npm e l’app macOS
Cadenza di rilascio
- Le release passano prima da beta
- stable segue solo dopo che l’ultima beta è stata convalidata
- La procedura dettagliata di rilascio, le approvazioni, le credenziali e le note di recupero sono riservate ai maintainer
Preflight del rilascio
- Esegui
pnpm build && pnpm ui:buildprima dipnpm release:checkcosì 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 - Il preflight npm del branch main esegue anche
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheprima di creare il tarball, usando entrambi i secret di workflowOPENAI_API_KEYeANTHROPIC_API_KEY - Esegui
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(o il tag beta/correzione corrispondente) prima dell’approvazione - Dopo la pubblicazione su npm, esegui
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(o la versione beta/correzione corrispondente) per verificare il percorso di installazione dal registro pubblicato in un nuovo prefisso temporaneo - L’automazione di rilascio dei maintainer ora usa preflight-then-promote:
- la vera pubblicazione npm deve superare un
preflight_run_idnpm riuscito - le release npm stable hanno come predefinito
beta - la pubblicazione npm stable può puntare esplicitamente a
latesttramite input del workflow - la promozione npm stable da
betaalatestè ancora disponibile come modalità manuale esplicita nel workflow fidatoOpenClaw NPM Release - quella modalità di promozione richiede comunque un
NPM_TOKENvalido nell’ambientenpm-releaseperché la gestione di npmdist-tagè separata dal trusted publishing - la
macOS Releasepubblica è solo di validazione - la vera pubblicazione privata mac deve superare i
preflight_run_idevalidate_run_idprivati mac riusciti - i veri percorsi di pubblicazione promuovono artefatti preparati invece di ricompilarli di nuovo
- la vera pubblicazione npm deve superare un
- Per release stable di correzione come
YYYY.M.D-N, il verificatore post-publish controlla anche lo stesso percorso di aggiornamento con prefisso temporaneo daYYYY.M.DaYYYY.M.D-Ncosì le correzioni di rilascio non possono lasciare silenziosamente installazioni globali più vecchie sul payload stable di base - Il preflight della release npm fallisce in modo chiuso a meno che il tarball non includa sia
dist/control-ui/index.htmlsia un payloaddist/control-ui/assets/non vuoto così non distribuiamo di nuovo una dashboard browser vuota - Se il lavoro di rilascio ha toccato la pianificazione CI, i manifest di timing delle estensioni o le matrici di test veloci,
rigenera e rivedi gli output della matrice del workflow
checks-fast-extensionsgestiti dal planner da.github/workflows/ci.ymlprima dell’approvazione così le note di rilascio non descrivano un layout CI obsoleto - La prontezza della release macOS stable include anche le superfici dell’updater:
- la release GitHub deve finire con
.zip,.dmge.dSYM.zipimpacchettati appcast.xmlsumaindeve puntare al nuovo zip stable dopo la pubblicazione- l’app impacchettata deve mantenere un bundle id non-debug, un URL Sparkle feed non vuoto
e un
CFBundleVersionpari o superiore alla soglia canonica di build Sparkle per quella versione di rilascio
- la release GitHub deve finire con
Input del workflow NPM
OpenClaw NPM Release accetta questi input controllati dall’operatore:
tag: tag di rilascio obbligatorio comev2026.4.2,v2026.4.2-1, ov2026.4.2-beta.1preflight_only:trueper sola validazione/build/package,falseper il vero percorso di pubblicazionepreflight_run_id: obbligatorio nel vero percorso di pubblicazione così il workflow riusa il tarball preparato dall’esecuzione preflight riuscitanpm_dist_tag: tag npm di destinazione per il percorso di pubblicazione; il valore predefinito èbetapromote_beta_to_latest:trueper saltare la pubblicazione e spostare una build stablebetagià pubblicata sulatest
- I tag stable e di correzione possono pubblicare sia su
betasia sulatest - I tag prerelease beta possono pubblicare solo su
beta - Il vero percorso di pubblicazione deve usare lo stesso
npm_dist_tagusato durante il preflight; il workflow verifica quei metadati prima di continuare con la pubblicazione - La modalità promozione deve usare un tag stable o di correzione,
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 comunque la normale autenticazione npm
Sequenza di rilascio npm stable
Quando tagli una release npm stable:- Esegui
OpenClaw NPM Releaseconpreflight_only=true - Scegli
npm_dist_tag=betaper il normale flusso beta-first, oppurelatestsolo quando vuoi intenzionalmente una pubblicazione stable diretta - 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, eseguiOpenClaw NPM Releasepiù tardi con 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 all’operatore.
Riferimenti pubblici
.github/workflows/openclaw-npm-release.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
per il runbook effettivo.