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 bergerak dari
main
Penamaan versi
- Versi rilis stable:
YYYY.M.D- Git tag:
vYYYY.M.D
- Git tag:
- Versi rilis koreksi stable:
YYYY.M.D-N- Git tag:
vYYYY.M.D-N
- Git tag:
- Versi prarilis beta:
YYYY.M.D-beta.N- Git tag:
vYYYY.M.D-beta.N
- Git tag:
- Jangan tambahkan nol di depan bulan atau hari
latestberarti rilis npm stable yang dipromosikan saat inibetaberarti 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 telah diverifikasi nanti - Setiap rilis OpenClaw mengirimkan paket npm dan aplikasi macOS secara bersamaan
Ritme rilis
- Rilis bergerak beta-terlebih-dahulu
- Stable menyusul hanya setelah beta terbaru divalidasi
- Prosedur rilis terperinci, persetujuan, kredensial, dan catatan pemulihan hanya untuk maintainer
Pra-pemeriksaan 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 rilis sekarang berjalan dalam workflow manual terpisah:
OpenClaw Release Checks - Validasi runtime instalasi dan upgrade lintas OS dikirim dari workflow pemanggil privat
openclaw/releases-private/.github/workflows/openclaw-cross-os-release-checks.yml, yang memanggil workflow publik yang dapat digunakan ulang.github/workflows/openclaw-cross-os-release-checks-reusable.yml - Pemisahan ini disengaja: pertahankan jalur rilis npm yang sebenarnya tetap singkat, deterministik, dan berfokus pada artefak, sementara pemeriksaan live yang lebih lambat tetap berada di jalurnya sendiri agar tidak menunda atau memblokir publish
- Pemeriksaan rilis harus dikirim dari ref workflow
mainagar logika workflow dan secret tetap kanonis - Workflow itu menerima tag rilis yang sudah ada atau SHA commit
main40 karakter penuh saat ini - Dalam mode commit-SHA, workflow itu hanya menerima HEAD
origin/mainsaat ini; gunakan tag rilis untuk commit rilis yang lebih lama - Pra-pemeriksaan khusus validasi
OpenClaw NPM Releasejuga menerima SHA commitmain40 karakter penuh saat ini tanpa memerlukan tag yang sudah didorong - Jalur SHA tersebut hanya untuk validasi dan tidak dapat dipromosikan menjadi publish nyata
- Dalam mode SHA, workflow mensintesis
v<package.json version>hanya untuk pemeriksaan metadata paket; publish nyata tetap memerlukan tag rilis yang nyata - Kedua workflow mempertahankan jalur publish dan promosi nyata pada GitHub-hosted runners, sementara jalur validasi yang tidak memodifikasi dapat menggunakan Blacksmith Linux runners yang lebih besar
- Workflow itu menjalankan
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cachemenggunakan kedua secret workflowOPENAI_API_KEYdanANTHROPIC_API_KEY - Pra-pemeriksaan rilis npm tidak lagi menunggu jalur pemeriksaan rilis yang terpisah
- Jalankan
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(atau tag beta/koreksi yang sesuai) sebelum persetujuan - Setelah npm publish, 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 dipublikasikan dalam temp prefix baru - Otomatisasi rilis maintainer sekarang menggunakan preflight-then-promote:
- publish npm nyata harus melewati npm
preflight_run_idyang berhasil - rilis npm stable secara default menuju
beta - publish npm stable dapat menargetkan
latestsecara eksplisit melalui input workflow - mutasi npm dist-tag berbasis token sekarang berada di
openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymldemi keamanan, karenanpm dist-tag addmasih memerlukanNPM_TOKENsementara repo publik mempertahankan publish khusus OIDC macOS Releasepublik hanya untuk validasi- publish mac privat yang nyata harus melewati
preflight_run_iddanvalidate_run_idmac privat yang berhasil - jalur publish nyata mempromosikan artefak yang sudah disiapkan alih-alih membangunnya lagi
- publish npm nyata harus melewati npm
- Untuk rilis koreksi stable seperti
YYYY.M.D-N, verifier pascapublish juga memeriksa jalur upgrade temp-prefix yang sama dariYYYY.M.DkeYYYY.M.D-Nagar koreksi rilis tidak diam-diam membuat instalasi global lama tetap berada pada payload stable dasar - Pra-pemeriksaan rilis npm gagal secara fail-closed kecuali tarball menyertakan
dist/control-ui/index.htmldan payloaddist/control-ui/assets/yang tidak kosong agar kita tidak mengirimkan dashboard browser kosong lagi pnpm test:install:smokejuga menegakkan anggaranunpackedSizenpm pack pada tarball pembaruan kandidat, sehingga installer e2e menangkap pembengkakan pack yang tidak disengaja sebelum jalur publish rilis- Jika pekerjaan rilis menyentuh perencanaan CI, manifest waktu ekstensi, atau matriks pengujian ekstensi, regenerasikan dan tinjau output matriks workflow
checks-node-extensionsmilik planner dari.github/workflows/ci.ymlsebelum persetujuan agar catatan rilis tidak menjelaskan tata letak CI yang kedaluwarsa - Kesiapan rilis stable macOS juga mencakup permukaan updater:
- GitHub release harus berakhir dengan
.zip,.dmg, dan.dSYM.zipyang sudah dipaketkan appcast.xmlpadamainharus menunjuk ke zip stable baru setelah publish- aplikasi yang dipaketkan harus mempertahankan bundle id non-debug, URL feed Sparkle yang tidak kosong, dan
CFBundleVersionpada atau di atas batas build Sparkle kanonis untuk versi rilis tersebut
- GitHub release harus berakhir dengan
Input workflow NPM
OpenClaw NPM Release menerima input yang dikendalikan operator berikut:
tag: tag rilis yang wajib sepertiv2026.4.2,v2026.4.2-1, atauv2026.4.2-beta.1; ketikapreflight_only=true, ini juga dapat berupa SHA commitmain40 karakter penuh saat ini untuk pra-pemeriksaan khusus validasipreflight_only:trueuntuk validasi/build/package saja,falseuntuk jalur publish nyatapreflight_run_id: wajib pada jalur publish nyata agar workflow menggunakan kembali tarball yang sudah disiapkan dari run pra-pemeriksaan yang berhasilnpm_dist_tag: tag target npm untuk jalur publish; defaultnyabeta
OpenClaw Release Checks menerima input yang dikendalikan operator berikut:
ref: tag rilis yang sudah ada atau SHA commitmain40 karakter penuh saat ini untuk divalidasi
- Tag stable dan koreksi dapat dipublikasikan ke
betaataulatest - Tag prarilis beta hanya dapat dipublikasikan ke
beta - Input SHA commit penuh hanya diizinkan ketika
preflight_only=true - Mode commit-SHA pemeriksaan rilis juga memerlukan HEAD
origin/mainsaat ini - Jalur publish nyata harus menggunakan
npm_dist_tagyang sama seperti saat pra-pemeriksaan; workflow memverifikasi metadata tersebut sebelum publish dilanjutkan
Urutan rilis npm stable
Saat membuat rilis npm stable:- Jalankan
OpenClaw NPM Releasedenganpreflight_only=true- Sebelum tag ada, Anda dapat menggunakan SHA commit
mainpenuh saat ini untuk uji kering khusus validasi dari workflow pra-pemeriksaan
- Sebelum tag ada, Anda dapat menggunakan SHA commit
- Pilih
npm_dist_tag=betauntuk alur beta-terlebih-dahulu normal, ataulatesthanya ketika Anda memang ingin publish stable langsung - Jalankan
OpenClaw Release Checkssecara terpisah dengan tag yang sama atau SHAmainpenuh saat ini ketika Anda menginginkan cakupan cache prompt live- Ini dipisahkan dengan sengaja agar cakupan live tetap tersedia tanpa menghubungkan kembali pemeriksaan yang berjalan lama atau tidak stabil ke workflow publish
- 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, gunakan workflow privatopenclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymluntuk mempromosikan versi stable tersebut daribetakelatest - Jika rilis sengaja dipublikasikan langsung ke
latestdanbetaharus segera mengikuti build stable yang sama, gunakan workflow privat yang sama untuk mengarahkan kedua dist-tag ke versi stable tersebut, atau biarkan sinkronisasi self-healing terjadwalnya memindahkanbetananti
NPM_TOKEN, sementara repo publik mempertahankan publish khusus OIDC.
Ini menjaga agar jalur publish langsung dan jalur promosi beta-terlebih-dahulu tetap
terdokumentasi dan terlihat oleh operator.
Referensi publik
.github/workflows/openclaw-npm-release.yml.github/workflows/openclaw-release-checks.yml.github/workflows/openclaw-cross-os-release-checks-reusable.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
untuk runbook yang sebenarnya.