Kebijakan Rilis
OpenClaw memiliki tiga jalur rilis publik:- stable: rilis bertag yang dipublikasikan ke npm
betasecara default, atau ke npmlatestjika diminta secara eksplisit - beta: tag prarilis yang dipublikasikan ke npm
beta - dev: head
mainyang terus bergerak
Penamaan versi
- Versi rilis stable:
YYYY.M.D- Tag Git:
vYYYY.M.D
- Tag Git:
- Versi rilis koreksi stable:
YYYY.M.D-N- Tag Git:
vYYYY.M.D-N
- Tag Git:
- Versi prarilis beta:
YYYY.M.D-beta.N- Tag Git:
vYYYY.M.D-beta.N
- Tag Git:
- Jangan tambahkan nol di depan bulan atau hari
latestberarti rilis npm stable yang saat ini dipromosikanbetaberarti target instalasi beta saat ini- Rilis stable dan rilis koreksi stable dipublikasikan ke npm
betasecara default; operator rilis dapat menargetkanlatestsecara eksplisit, atau mempromosikan build beta yang sudah divalidasi nanti - Setiap rilis OpenClaw mengirimkan paket npm dan aplikasi macOS secara bersamaan
Frekuensi rilis
- Rilis bergerak beta-first
- Stable hanya menyusul setelah beta terbaru divalidasi
- Prosedur rilis terperinci, persetujuan, kredensial, dan catatan pemulihan hanya untuk maintainer
Pemeriksaan awal rilis
- Jalankan
pnpm build && pnpm ui:buildsebelumpnpm release:checkagar artefak rilisdist/*yang diharapkan dan bundle UI Control tersedia untuk langkah validasi pack - Jalankan
pnpm release:checksebelum setiap rilis bertag - Pemeriksaan awal npm untuk branch main juga menjalankan
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cachesebelum membuat paket tarball, dengan menggunakan kedua secret workflowOPENAI_API_KEYdanANTHROPIC_API_KEY - Jalankan
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(atau tag beta/koreksi yang sesuai) sebelum persetujuan - Setelah publish npm, jalankan
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(atau versi beta/koreksi yang sesuai) untuk memverifikasi jalur instalasi registry yang sudah dipublikasikan dalam prefix temp yang baru - Otomatisasi rilis maintainer sekarang menggunakan preflight-then-promote:
- publish npm nyata harus lolos dengan
preflight_run_idnpm yang berhasil - rilis npm stable secara default menuju
beta - publish npm stable dapat menargetkan
latestsecara eksplisit melalui input workflow - promosi npm stable dari
betakelatestmasih tersedia sebagai mode manual eksplisit pada workflow tepercayaOpenClaw NPM Release - mode promosi tersebut tetap memerlukan
NPM_TOKENyang valid di environmentnpm-releasekarena pengelolaan npmdist-tagterpisah dari trusted publishing macOS Releasepublik hanya untuk validasi- publish mac privat nyata harus lolos dengan
preflight_run_idmac privat danvalidate_run_idyang berhasil - jalur publish nyata mempromosikan artefak yang sudah disiapkan alih-alih membangunnya kembali
- publish npm nyata harus lolos dengan
- Untuk rilis koreksi stable seperti
YYYY.M.D-N, verifier pascapublish juga memeriksa jalur upgrade prefix temp yang sama dariYYYY.M.DkeYYYY.M.D-Nagar koreksi rilis tidak diam-diam meninggalkan instalasi global lama pada payload stable dasar - Pemeriksaan awal rilis npm gagal tertutup kecuali tarball menyertakan kedua
dist/control-ui/index.htmldan payloaddist/control-ui/assets/yang tidak kosong agar kita tidak mengirim dashboard browser kosong lagi - Jika pekerjaan rilis menyentuh perencanaan CI, manifest timing extension, atau fast
test matrix, buat ulang dan tinjau output matriks workflow
checks-fast-extensionsmilik planner dari.github/workflows/ci.ymlsebelum persetujuan agar catatan rilis tidak menjelaskan tata letak CI yang usang - Kesiapan rilis stable macOS juga mencakup permukaan updater:
- rilis GitHub harus berakhir dengan
.zip,.dmg, dan.dSYM.zipyang sudah dipaketkan appcast.xmldimainharus menunjuk ke zip stable baru setelah publish- aplikasi yang sudah dipaketkan harus mempertahankan bundle id non-debug, Sparkle feed
URL yang tidak kosong, dan
CFBundleVersionpada atau di atas lantai build Sparkle kanonis untuk versi rilis tersebut
- rilis GitHub harus berakhir dengan
Input workflow NPM
OpenClaw NPM Release menerima input yang dikendalikan operator berikut:
tag: tag rilis wajib sepertiv2026.4.2,v2026.4.2-1, atauv2026.4.2-beta.1preflight_only:truehanya untuk validasi/build/package,falseuntuk jalur publish nyatapreflight_run_id: wajib pada jalur publish nyata agar workflow menggunakan kembali tarball yang sudah disiapkan dari preflight run yang berhasilnpm_dist_tag: tag target npm untuk jalur publish; default-nyabetapromote_beta_to_latest:trueuntuk melewati publish dan memindahkan build stablebetayang sudah dipublikasikan kelatest
- Tag stable dan koreksi dapat dipublikasikan ke
betaataulatest - Tag prarilis beta hanya boleh dipublikasikan ke
beta - Jalur publish nyata harus menggunakan
npm_dist_tagyang sama seperti saat preflight; workflow memverifikasi metadata itu sebelum publish dilanjutkan - Mode promosi harus menggunakan tag stable atau koreksi,
preflight_only=false,preflight_run_idkosong, dannpm_dist_tag=beta - Mode promosi juga memerlukan
NPM_TOKENyang valid di environmentnpm-releasekarenanpm dist-tag addmasih memerlukan autentikasi npm biasa
Urutan rilis npm stable
Saat membuat rilis npm stable:- Jalankan
OpenClaw NPM Releasedenganpreflight_only=true - Pilih
npm_dist_tag=betauntuk alur beta-first normal, ataulatesthanya jika Anda memang ingin publish stable langsung - Simpan
preflight_run_idyang berhasil - Jalankan
OpenClaw NPM Releaselagi denganpreflight_only=false,tagyang sama,npm_dist_tagyang sama, danpreflight_run_idyang disimpan - Jika rilis mendarat di
beta, jalankanOpenClaw NPM Releasenanti dengantagstable yang sama,promote_beta_to_latest=true,preflight_only=false,preflight_run_idkosong, dannpm_dist_tag=betasaat Anda ingin memindahkan build yang sudah dipublikasikan itu kelatest
npm-release dan
NPM_TOKEN yang valid di environment tersebut.
Itu menjaga agar jalur publish langsung dan jalur promosi beta-first keduanya
tetap terdokumentasi dan terlihat oleh operator.
Referensi publik
.github/workflows/openclaw-npm-release.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
untuk runbook yang sebenarnya.