Zasady wydań
OpenClaw ma trzy publiczne ścieżki wydań:- stable: oznaczone tagami wydania, które domyślnie publikują do npm
beta, albo do npmlatest, jeśli zostanie to wyraźnie zażądane - beta: tagi wydań przedpremierowych, które publikują do npm
beta - dev: bieżący stan gałęzi
main
Nazewnictwo wersji
- Wersja wydania stable:
YYYY.M.D- Tag Git:
vYYYY.M.D
- Tag Git:
- Wersja poprawkowego wydania stable:
YYYY.M.D-N- Tag Git:
vYYYY.M.D-N
- Tag Git:
- Wersja wydania przedpremierowego beta:
YYYY.M.D-beta.N- Tag Git:
vYYYY.M.D-beta.N
- Tag Git:
- Nie dopełniaj miesiąca ani dnia zerami
latestoznacza bieżące promowane stabilne wydanie npmbetaoznacza bieżący docelowy kanał instalacji beta- Wydania stable i poprawkowe stable domyślnie publikują do npm
beta; operatorzy wydań mogą jawnie wybraćlatestalbo później promować zweryfikowane wydanie beta - Każde wydanie OpenClaw obejmuje jednocześnie pakiet npm i aplikację macOS
Cykl wydań
- Wydania najpierw trafiają do beta
- Stable pojawia się dopiero po zweryfikowaniu najnowszej bety
- Szczegółowa procedura wydania, zatwierdzenia, poświadczenia i notatki dotyczące odzyskiwania są dostępne wyłącznie dla maintainerów
Kontrola przed wydaniem
- Uruchom
pnpm build && pnpm ui:buildprzedpnpm release:check, aby oczekiwane artefakty wydaniadist/*i bundle Control UI istniały dla kroku walidacji pakietu - Uruchom
pnpm release:checkprzed każdym oznaczonym tagiem wydaniem - Kontrola przed wydaniem npm dla gałęzi main uruchamia także
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheprzed spakowaniem tarballa, używając sekretów workflowOPENAI_API_KEYiANTHROPIC_API_KEY - Uruchom
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(lub odpowiadający tag beta/poprawkowy) przed zatwierdzeniem - Po publikacji do npm uruchom
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(lub odpowiadającą wersję beta/poprawkową), aby zweryfikować opublikowaną ścieżkę instalacji z rejestru w nowym tymczasowym prefiksie - Automatyzacja wydań maintainerów używa teraz modelu kontrola-przed-wydaniem-a-potem-promocja:
- rzeczywista publikacja do npm musi przejść pomyślny
preflight_run_idnpm - stabilne wydania npm domyślnie trafiają do
beta - stabilna publikacja npm może jawnie kierować do
latestprzez parametr workflow - promocja stabilnego wydania npm z
betadolatestnadal jest dostępna jako jawny tryb ręczny w zaufanym workflowOpenClaw NPM Release - ten tryb promocji nadal wymaga prawidłowego
NPM_TOKENw środowiskunpm-release, ponieważ zarządzaniedist-tagw npm jest oddzielone od zaufanej publikacji - publiczne
macOS Releasesłuży tylko do walidacji - rzeczywista prywatna publikacja mac musi przejść pomyślne prywatne identyfikatory
preflight_run_idivalidate_run_id - rzeczywiste ścieżki publikacji promują przygotowane artefakty zamiast budować je ponownie
- rzeczywista publikacja do npm musi przejść pomyślny
- W przypadku stabilnych wydań poprawkowych, takich jak
YYYY.M.D-N, weryfikator po publikacji sprawdza także tę samą ścieżkę aktualizacji w tymczasowym prefiksie zYYYY.M.DdoYYYY.M.D-N, aby poprawki wydań nie mogły po cichu pozostawić starszych globalnych instalacji na bazowym stabilnym ładunku - Kontrola przed wydaniem npm kończy się niepowodzeniem w sposób bezpieczny, jeśli tarball nie zawiera zarówno
dist/control-ui/index.html, jak i niepustego ładunkudist/control-ui/assets/, abyśmy nie wysłali ponownie pustego panelu przeglądarkowego - Jeśli prace nad wydaniem dotyczyły planowania CI, manifestów czasu rozszerzeń lub szybkich
macierzy testowych, zregeneruj i przejrzyj zarządzane przez planner wyjścia macierzy workflow
checks-fast-extensionsz.github/workflows/ci.ymlprzed zatwierdzeniem, aby notatki do wydania nie opisywały nieaktualnego układu CI - Gotowość stabilnego wydania macOS obejmuje także powierzchnie aktualizatora:
- wydanie GitHub musi ostatecznie zawierać spakowane pliki
.zip,.dmgi.dSYM.zip appcast.xmlwmainmusi po publikacji wskazywać nowy stabilny plik zip- spakowana aplikacja musi zachować identyfikator bundle inny niż debug, niepusty URL feedu Sparkle
oraz
CFBundleVersionna poziomie co najmniej kanonicznego minimalnego progu builda Sparkle dla tej wersji wydania
- wydanie GitHub musi ostatecznie zawierać spakowane pliki
Parametry wejściowe workflow npm
OpenClaw NPM Release akceptuje następujące parametry wejściowe sterowane przez operatora:
tag: wymagany tag wydania, taki jakv2026.4.2,v2026.4.2-1lubv2026.4.2-beta.1preflight_only:truetylko dla walidacji/budowania/pakowania,falsedla rzeczywistej ścieżki publikacjipreflight_run_id: wymagane dla rzeczywistej ścieżki publikacji, aby workflow ponownie użył przygotowanego tarballa z pomyślnego uruchomienia kontroli przed wydaniemnpm_dist_tag: docelowy tag npm dla ścieżki publikacji; domyślniebetapromote_beta_to_latest:true, aby pominąć publikację i przenieść już opublikowane stabilne wydaniebetanalatest
- Tagi stable i poprawkowe mogą publikować do
betaalbolatest - Tagi wydań przedpremierowych beta mogą publikować wyłącznie do
beta - Rzeczywista ścieżka publikacji musi używać tego samego
npm_dist_tag, który był użyty podczas kontroli przed wydaniem; workflow weryfikuje te metadane, zanim publikacja będzie kontynuowana - Tryb promocji musi używać tagu stable lub poprawkowego,
preflight_only=false, pustegopreflight_run_idoraznpm_dist_tag=beta - Tryb promocji wymaga także prawidłowego
NPM_TOKENw środowiskunpm-release, ponieważnpm dist-tag addnadal wymaga zwykłego uwierzytelniania npm
Sekwencja stabilnego wydania npm
Podczas tworzenia stabilnego wydania npm:- Uruchom
OpenClaw NPM Releasezpreflight_only=true - Wybierz
npm_dist_tag=betadla zwykłego przepływu beta-first albolatesttylko wtedy, gdy celowo chcesz bezpośredniej stabilnej publikacji - Zapisz pomyślny
preflight_run_id - Uruchom
OpenClaw NPM Releaseponownie zpreflight_only=false, tym samymtag, tym samymnpm_dist_tagi zapisanympreflight_run_id - Jeśli wydanie trafiło do
beta, uruchom późniejOpenClaw NPM Releasez tym samym stabilnymtag,promote_beta_to_latest=true,preflight_only=false, pustympreflight_run_idinpm_dist_tag=beta, gdy chcesz przenieść to opublikowane wydanie dolatest
npm-release oraz
prawidłowego NPM_TOKEN w tym środowisku.
Dzięki temu zarówno ścieżka publikacji bezpośredniej, jak i ścieżka promocji beta-first
pozostają udokumentowane i widoczne dla operatora.
Publiczne odwołania
.github/workflows/openclaw-npm-release.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
jako właściwego runbooka.