OpenClawSkills
GitHub
Referencia • 5 min de lectura

Proceso de Release

Lista de verificación paso a paso para release de npm + app macOS

Usa pnpm (Node 22+) desde la raíz del repo. Mantén el working tree limpio antes de taggear/publicar.

Tutorial.step

Disparador del operador

Cuando el operador dice "release", inmediatamente haz este preflight (sin preguntas extra a menos que esté bloqueado):

- Lee este doc y docs/platforms/mac/release.md.

- Carga env desde ~/.profile y confirma que SPARKLE_PRIVATE_KEY_FILE + vars de App Store Connect están establecidos (SPARKLE_PRIVATE_KEY_FILE debería vivir en ~/.profile).

- Usa claves Sparkle de ~/Library/CloudStorage/Dropbox/Backup/Sparkle si es necesario.

1. Versión y metadatos

- [ ] Incrementa versión en package.json (ej., 2026.1.29).

- [ ] Ejecuta pnpm plugins:sync para alinear versiones de paquetes de extensión + changelogs.

- [ ] Actualiza strings de CLI/version: src/cli/program.ts y el user agent de Baileys en src/provider-web.ts.

- [ ] Confirma metadatos del paquete (name, description, repository, keywords, license) y que el mapa bin apunta a openclaw.mjs para openclaw.

- [ ] Si cambiaron dependencias, ejecuta pnpm install para que pnpm-lock.yaml esté actualizado.

2. Build y artefactos

- [ ] Si cambiaron inputs de A2UI, ejecuta pnpm canvas:a2ui:bundle y commitea cualquier src/canvas-host/a2ui/a2ui.bundle.js actualizado.

- [ ] pnpm run build (regenera dist/).

- [ ] Verifica que files del paquete npm incluye todas las carpetas dist/* requeridas (notablemente dist/node-host/** y dist/acp/** para node headless + CLI ACP).

- [ ] Confirma que dist/build-info.json existe e incluye el hash de commit esperado (el banner del CLI usa esto para instalaciones npm).

- [ ] Opcional: npm pack --pack-destination /tmp después del build; inspecciona el contenido del tarball y tenlo a mano para el release de GitHub (no lo commitees).

3. Changelog y docs

- [ ] Actualiza CHANGELOG.md con highlights visibles para el usuario (crea el archivo si falta); mantén las entradas estrictamente descendientes por versión.

- [ ] Asegúrate que ejemplos/flags del README coinciden con comportamiento actual del CLI (notablemente nuevos comandos u opciones).

4. Validación

- [ ] pnpm build

- [ ] pnpm check

- [ ] pnpm test (o pnpm test:coverage si necesitas salida de cobertura)

- [ ] pnpm release:check (verifica contenido de npm pack)

ReferenceOthersRELEASINGPage.steps.01.p25

ReferenceOthersRELEASINGPage.steps.01.p26

ReferenceOthersRELEASINGPage.steps.01.p27

ReferenceOthersRELEASINGPage.steps.01.p28

ReferenceOthersRELEASINGPage.steps.01.p29

ReferenceOthersRELEASINGPage.steps.01.p30

ReferenceOthersRELEASINGPage.steps.01.p31

ReferenceOthersRELEASINGPage.steps.01.p32

ReferenceOthersRELEASINGPage.steps.01.p33

ReferenceOthersRELEASINGPage.steps.01.p34

ReferenceOthersRELEASINGPage.steps.01.p35

ReferenceOthersRELEASINGPage.steps.01.p36

ReferenceOthersRELEASINGPage.steps.01.p37

ReferenceOthersRELEASINGPage.steps.01.p38

ReferenceOthersRELEASINGPage.steps.01.p39

ReferenceOthersRELEASINGPage.steps.01.p40

ReferenceOthersRELEASINGPage.steps.01.p41

ReferenceOthersRELEASINGPage.steps.01.p42

ReferenceOthersRELEASINGPage.steps.01.p43

ReferenceOthersRELEASINGPage.steps.01.p44

ReferenceOthersRELEASINGPage.steps.01.p45

ReferenceOthersRELEASINGPage.steps.01.p46

ReferenceOthersRELEASINGPage.steps.01.p47

ReferenceOthersRELEASINGPage.steps.01.p48

ReferenceOthersRELEASINGPage.steps.01.p49

ReferenceOthersRELEASINGPage.steps.01.p50

ReferenceOthersRELEASINGPage.steps.01.p51

ReferenceOthersRELEASINGPage.steps.01.p52

Tutorial.step

Troubleshooting (notes from 2.0.0-beta2 release)

- npm pack/publish hangs or produces huge tarball: the macOS app bundle in dist/OpenClaw.app (and release zips) get swept into the package. Fix by whitelisting publish contents via package.json files (include dist subdirs, docs, skills; exclude app bundles). Confirm with npm pack --dry-run that dist/OpenClaw.app is not listed.

- npm auth web loop for dist-tags: use legacy auth to get an OTP prompt:

- NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add [email protected] latest

- npx verification fails with ECOMPROMISED: Lock compromised: retry with a fresh cache:

- NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y [email protected] --version

- Tag needs repointing after a late fix: force-update and push the tag, then ensure the GitHub release assets still match:

- git tag -f vX.Y.Z && git push -f origin vX.Y.Z

Tutorial.step

Plugin publish scope (npm)

We only publish existing npm plugins under the @openclaw/* scope. Bundled plugins that are not on npm stay disk-tree only (still shipped in extensions/**).

Process to derive the list:

1. npm search @openclaw --json and capture the package names.

2. Compare with extensions/*/package.json names.

3. Publish only the intersection (already on npm).

Current npm plugin list (update as needed):

- @openclaw/bluebubbles

- @openclaw/diagnostics-otel

- @openclaw/discord

- @openclaw/lobster

- @openclaw/matrix

- @openclaw/msteams

- @openclaw/nextcloud-talk

- @openclaw/nostr

- @openclaw/voice-call

- @openclaw/zalo

- @openclaw/zalouser

Release notes must also call out new optional bundled plugins that are **not on by default** (example: tlon).