Política de lanzamientos
OpenClaw tiene tres canales públicos de lanzamiento:- stable: lanzamientos etiquetados que se publican en npm
betade forma predeterminada, o en npmlatestcuando se solicita explícitamente - beta: etiquetas de prelanzamiento que se publican en npm
beta - dev: la cabecera móvil de
main
Nomenclatura de versiones
- Versión de lanzamiento estable:
YYYY.M.D- Etiqueta de Git:
vYYYY.M.D
- Etiqueta de Git:
- Versión de lanzamiento de corrección estable:
YYYY.M.D-N- Etiqueta de Git:
vYYYY.M.D-N
- Etiqueta de Git:
- Versión de prelanzamiento beta:
YYYY.M.D-beta.N- Etiqueta de Git:
vYYYY.M.D-beta.N
- Etiqueta de Git:
- No añadas ceros a la izquierda al mes ni al día
latestsignifica la versión estable actual promovida en npmbetasignifica el destino de instalación beta actual- Los lanzamientos estables y las correcciones estables se publican en npm
betade forma predeterminada; los operadores de lanzamiento pueden apuntar explícitamente alatest, o promover más adelante una compilación beta validada - Cada lanzamiento de OpenClaw distribuye juntos el paquete npm y la app de macOS
Cadencia de lanzamientos
- Los lanzamientos pasan primero por beta
- Stable llega solo después de que se valide la beta más reciente
- El procedimiento detallado de lanzamiento, las aprobaciones, las credenciales y las notas de recuperación son solo para maintainers
Verificación previa al lanzamiento
- Ejecuta
pnpm build && pnpm ui:buildantes depnpm release:checkpara que existan los artefactos de lanzamientodist/*esperados y el bundle de la Control UI para el paso de validación del pack - Ejecuta
pnpm release:checkantes de cada lanzamiento etiquetado - La verificación previa de npm de la rama main también ejecuta
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheantes de empaquetar el tarball, usando tanto los secrets de workflowOPENAI_API_KEYcomoANTHROPIC_API_KEY - Ejecuta
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(o la etiqueta beta/corrección correspondiente) antes de la aprobación - Después de publicar en npm, ejecuta
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(o la versión beta/corrección correspondiente) para verificar la ruta de instalación publicada del registro en un prefijo temporal nuevo - La automatización de lanzamiento de maintainers ahora usa verificación previa y luego promoción:
- la publicación real en npm debe pasar con un
preflight_run_idde npm exitoso - los lanzamientos estables de npm usan
betade forma predeterminada - la publicación estable en npm puede apuntar explícitamente a
latestmediante una entrada del workflow - la promoción estable de npm de
betaalatestsigue estando disponible como un modo manual explícito en el workflow de confianzaOpenClaw NPM Release - ese modo de promoción sigue necesitando un
NPM_TOKENválido en el entornonpm-releaseporque la administración dedist-tagde npm es independiente de la publicación de confianza - el
macOS Releasepúblico es solo de validación - la publicación real privada de mac debe pasar una validación previa privada de mac exitosa
preflight_run_idyvalidate_run_id - las rutas de publicación reales promueven artefactos preparados en lugar de reconstruirlos otra vez
- la publicación real en npm debe pasar con un
- Para lanzamientos de corrección estables como
YYYY.M.D-N, el verificador posterior a la publicación también comprueba la misma ruta de actualización con prefijo temporal desdeYYYY.M.DhastaYYYY.M.D-Npara que las correcciones de lanzamiento no puedan dejar silenciosamente instalaciones globales más antiguas en la carga útil estable base - La verificación previa del lanzamiento de npm falla de forma cerrada a menos que el tarball incluya tanto
dist/control-ui/index.htmlcomo una carga útil no vacía endist/control-ui/assets/para que no volvamos a distribuir un panel del navegador vacío - Si el trabajo de lanzamiento tocó la planificación de CI, los manifiestos de tiempos de extensiones o las matrices
rápidas de pruebas, regenera y revisa las salidas de matriz del workflow
checks-fast-extensionspropiedad del planificador desde.github/workflows/ci.ymlantes de la aprobación para que las notas de lanzamiento no describan una disposición de CI obsoleta - La preparación de lanzamiento estable de macOS también incluye las superficies del actualizador:
- el lanzamiento de GitHub debe terminar con los archivos empaquetados
.zip,.dmgy.dSYM.zip appcast.xmlenmaindebe apuntar al nuevo zip estable después de la publicación- la app empaquetada debe conservar un bundle id no de depuración, una URL de feed de Sparkle no vacía
y un
CFBundleVersionigual o superior al umbral canónico de compilación de Sparkle para esa versión de lanzamiento
- el lanzamiento de GitHub debe terminar con los archivos empaquetados
Entradas del workflow de NPM
OpenClaw NPM Release acepta estas entradas controladas por el operador:
tag: etiqueta de lanzamiento obligatoria comov2026.4.2,v2026.4.2-1, ov2026.4.2-beta.1preflight_only:truepara solo validación/compilación/empaquetado,falsepara la ruta de publicación realpreflight_run_id: obligatorio en la ruta de publicación real para que el workflow reutilice el tarball preparado de la ejecución de verificación previa exitosanpm_dist_tag: etiqueta de destino de npm para la ruta de publicación; el valor predeterminado esbetapromote_beta_to_latest:truepara omitir la publicación y mover una compilación establebetaya publicada alatest
- Las etiquetas estables y de corrección pueden publicarse en
betao enlatest - Las etiquetas de prelanzamiento beta pueden publicarse solo en
beta - La ruta de publicación real debe usar el mismo
npm_dist_tagusado durante la verificación previa; el workflow verifica esos metadatos antes de que continúe la publicación - El modo de promoción debe usar una etiqueta estable o de corrección,
preflight_only=false, unpreflight_run_idvacío ynpm_dist_tag=beta - El modo de promoción también requiere un
NPM_TOKENválido en el entornonpm-releaseporquenpm dist-tag addsigue necesitando autenticación normal de npm
Secuencia de lanzamiento estable de npm
Al crear un lanzamiento estable de npm:- Ejecuta
OpenClaw NPM Releaseconpreflight_only=true - Elige
npm_dist_tag=betapara el flujo normal primero-beta, olatestsolo cuando intencionalmente quieras una publicación estable directa - Guarda el
preflight_run_idexitoso - Ejecuta
OpenClaw NPM Releasede nuevo conpreflight_only=false, la mismatag, el mismonpm_dist_tagy elpreflight_run_idguardado - Si el lanzamiento terminó en
beta, ejecutaOpenClaw NPM Releasemás adelante con la mismatagestable,promote_beta_to_latest=true,preflight_only=false,preflight_run_idvacío ynpm_dist_tag=betacuando quieras mover esa compilación publicada alatest
npm-release y un
NPM_TOKEN válido en ese entorno.
Eso mantiene documentadas y visibles para el operador tanto la ruta de publicación directa
como la ruta de promoción primero-beta.
Referencias públicas
.github/workflows/openclaw-npm-release.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
para el runbook real.