Політика релізів
OpenClaw має три публічні канали релізів:- stable: теговані релізи, які за замовчуванням публікуються в npm
beta, або в npmlatest, якщо це явно запрошено - beta: prerelease-теги, які публікуються в npm
beta - dev: рухома вершина
main
Назви версій
- Версія stable-релізу:
YYYY.M.D- Git-тег:
vYYYY.M.D
- Git-тег:
- Версія stable-коригувального релізу:
YYYY.M.D-N- Git-тег:
vYYYY.M.D-N
- Git-тег:
- Версія beta-prerelease:
YYYY.M.D-beta.N- Git-тег:
vYYYY.M.D-beta.N
- Git-тег:
- Не додавайте нулі попереду для місяця або дня
latestозначає поточний просунутий stable-реліз npmbetaозначає поточну ціль встановлення beta- Stable і stable-коригувальні релізи за замовчуванням публікуються в npm
beta; оператори релізу можуть явно вибратиlatestабо пізніше просунути перевірену beta-збірку - Кожен реліз OpenClaw постачається разом із npm-пакетом і застосунком для macOS
Періодичність релізів
- Релізи спочатку проходять через beta
- Stable іде лише після перевірки найновішої beta
- Детальна процедура релізу, затвердження, облікові дані та нотатки щодо відновлення доступні лише для мейнтейнерів
Передрелізна перевірка
- Запустіть
pnpm build && pnpm ui:buildпередpnpm release:check, щоб очікувані артефакти релізуdist/*і збірка Control UI існували для кроку перевірки пакування - Запускайте
pnpm release:checkперед кожним тегованим релізом - Передрелізна перевірка npm для main-гілки також запускає
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheперед пакуванням tarball, використовуючи обидва секрети воркфлоу:OPENAI_API_KEYіANTHROPIC_API_KEY - Перед затвердженням запустіть
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(або відповідний beta/correction-тег) - Після публікації в npm запустіть
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(або відповідну beta/correction-версію), щоб перевірити опублікований шлях встановлення з реєстру в новому тимчасовому префіксі - Автоматизація релізів для мейнтейнерів тепер використовує схему preflight-then-promote:
- справжня публікація в npm має пройти успішний npm
preflight_run_id - stable npm-релізи за замовчуванням ідуть у
beta - stable npm-публікацію можна явно націлити на
latestчерез вхідні параметри воркфлоу - stable npm-просування з
betaдоlatestусе ще доступне як явний ручний режим у довіреному воркфлоуOpenClaw NPM Release - для цього режиму просування все одно потрібен дійсний
NPM_TOKENу середовищіnpm-release, оскільки керування npmdist-tagвиконується окремо від trusted publishing - публічний
macOS Releaseпризначений лише для валідації - справжня приватна mac-публікація має пройти успішні приватні mac
preflight_run_idіvalidate_run_id - справжні шляхи публікації просувають підготовлені артефакти замість того, щоб повторно збирати їх знову
- справжня публікація в npm має пройти успішний npm
- Для stable-коригувальних релізів на кшталт
YYYY.M.D-N, post-publish verifier також перевіряє той самий шлях оновлення в тимчасовому префіксі зYYYY.M.DдоYYYY.M.D-N, щоб коригувальні релізи не могли непомітно залишити старіші глобальні встановлення на базовому stable-навантаженні - Передрелізна перевірка npm завершується з відмовою за замовчуванням, якщо tarball не містить і
dist/control-ui/index.html, і непорожній payloaddist/control-ui/assets/, щоб ми знову не випустили порожню панель браузера - Якщо робота над релізом зачіпала планування CI, маніфести таймінгу розширень або
матриці тестування розширень, перед затвердженням згенеруйте наново й перегляньте
виходи матриці воркфлоу
checks-node-extensions, якими володіє planner, з.github/workflows/ci.yml, щоб нотатки до релізу не описували застарілу структуру CI - Готовність stable-релізу macOS також включає поверхні оновлювача:
- GitHub-реліз зрештою має містити запаковані
.zip,.dmgі.dSYM.zip appcast.xmlуmainмає після публікації вказувати на новий stable zip- запакований застосунок має зберігати non-debug bundle id, непорожній Sparkle feed
URL і
CFBundleVersion, не нижчий за канонічний мінімальний рівень збірки Sparkle для цієї версії релізу
- GitHub-реліз зрештою має містити запаковані
Вхідні параметри воркфлоу NPM
OpenClaw NPM Release приймає такі вхідні параметри, якими керує оператор:
tag: обов’язковий тег релізу, наприкладv2026.4.2,v2026.4.2-1абоv2026.4.2-beta.1preflight_only:trueлише для валідації/збирання/пакування,falseдля справжнього шляху публікаціїpreflight_run_id: обов’язковий на справжньому шляху публікації, щоб воркфлоу повторно використав підготовлений tarball з успішного передрелізного запускуnpm_dist_tag: цільовий npm-тег для шляху публікації; за замовчуваннямbetapromote_beta_to_latest:true, щоб пропустити публікацію і перемістити вже опубліковану stable-збіркуbetaдоlatest
- Stable і correction-теги можуть публікуватися або в
beta, або вlatest - Beta prerelease-теги можуть публікуватися лише в
beta - Справжній шлях публікації має використовувати той самий
npm_dist_tag, який використовувався під час передрелізної перевірки; воркфлоу перевіряє ці метадані перед продовженням публікації - Режим просування має використовувати stable або correction-тег,
preflight_only=false, порожнійpreflight_run_idіnpm_dist_tag=beta - Режим просування також вимагає дійсний
NPM_TOKENу середовищіnpm-release, оскількиnpm dist-tag addусе ще потребує звичайної npm-автентифікації
Послідовність stable npm-релізу
Під час випуску stable npm-релізу:- Запустіть
OpenClaw NPM Releaseзpreflight_only=true - Виберіть
npm_dist_tag=betaдля звичайного beta-first потоку, абоlatestлише якщо ви свідомо хочете прямої stable-публікації - Збережіть успішний
preflight_run_id - Запустіть
OpenClaw NPM Releaseзнову зpreflight_only=false, тим самимtag, тим самимnpm_dist_tagі збереженимpreflight_run_id - Якщо реліз потрапив у
beta, пізніше запустітьOpenClaw NPM Releaseз тим самим stabletag,promote_beta_to_latest=true,preflight_only=false, порожнімpreflight_run_idіnpm_dist_tag=beta, коли захочете перемістити цю опубліковану збірку доlatest
npm-release і
дійсного NPM_TOKEN у цьому середовищі.
Це залишає як шлях прямої публікації, так і beta-first шлях просування
задокументованими та видимими для оператора.
Публічні посилання
.github/workflows/openclaw-npm-release.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
як фактичний runbook.