Release and CI
Sürüm politikası
OpenClaw'ın üç herkese açık yayın hattı vardır:
- stable: varsayılan olarak npm
betakanalına, açıkça istendiğinde ise npmlatestkanalına yayımlanan etiketli sürümler - beta: npm
betakanalına yayımlanan ön sürüm etiketleri - dev:
maindalının hareketli en güncel başı
Sürüm adlandırması
- Kararlı yayın sürümü:
YYYY.M.D- Git etiketi:
vYYYY.M.D
- Git etiketi:
- Eski kararlı düzeltme yayın sürümü:
YYYY.M.D-N- Git etiketi:
vYYYY.M.D-N
- Git etiketi:
- Beta ön sürüm sürümü:
YYYY.M.D-beta.N- Git etiketi:
vYYYY.M.D-beta.N
- Git etiketi:
- Ay veya günü sıfırla doldurmayın
latest, mevcut öne çıkarılmış kararlı npm yayını anlamına gelirbeta, mevcut beta kurulum hedefi anlamına gelir- Kararlı ve eski düzeltme sürümleri varsayılan olarak npm
betakanalına yayımlanır; yayın operatörleri açıkçalatesthedefleyebilir veya incelenmiş bir beta derlemesini daha sonra öne çıkarabilir - Her kararlı OpenClaw sürümü npm paketini ve macOS uygulamasını birlikte sunar; beta sürümleri normalde önce npm/paket yolunu doğrular ve yayımlar, mac uygulamasının derleme/imzalama/noter onayı ise açıkça istenmedikçe kararlı sürüme ayrılır
Planlanan aylık destek sürümlendirmesi
OpenClaw henüz LTS veya aylık destek kanalına sahip değildir. Bakımcılar
SemVer uyumlu aylık destek hatlarına doğru çalışıyor, ancak bugün sunulan
güncelleme kanalları hâlâ stable, beta ve dev kanallarıdır.
Planlanan sürüm biçimi YYYY.M.PATCH şeklindedir:
YYYYyıldır.M, başında sıfır olmadan aylık yayın hattıdır.PATCH, o aylık hat içinde artar ve gerektiği kadar yükselebilir.
Örneğin, 2026.6.0, 2026.6.1 ve 2026.6.2 sürümlerinin tümü Haziran
2026 hattında olurdu. stable-2026-6 veya lts-2026-6 gibi gelecekteki bir
aylık destek dist-tag'i o hattı gösterebilirken, latest hızlı hareket etmeye devam eder.
Bu gelecek model, yeni YYYY.M.D-N düzeltme sürümlerine duyulan ihtiyacı ortadan kaldırır.
Mevcut eski düzeltme sürümleri tanınmaya devam eder, böylece eski paketler ve
yükseltme yolları çalışmayı sürdürür.
Yayın sıklığı
- Yayınlar önce beta olarak ilerler
- Kararlı sürüm yalnızca en son beta doğrulandıktan sonra gelir
- Bakımcılar normalde yayınları mevcut
maindalından oluşturulan birrelease/YYYY.M.Ddalından çıkarır; böylece yayın doğrulaması ve düzeltmelerimainüzerindeki yeni geliştirmeleri engellemez - Bir beta etiketi gönderilmiş veya yayımlanmışsa ve düzeltme gerekiyorsa,
bakımcılar eski beta etiketini silmek veya yeniden oluşturmak yerine
bir sonraki
-beta.Netiketini çıkarır - Ayrıntılı yayın prosedürü, onaylar, kimlik bilgileri ve kurtarma notları yalnızca bakımcılara özeldir
Yayın operatörü kontrol listesi
Bu kontrol listesi, yayın akışının herkese açık biçimidir. Özel kimlik bilgileri, imzalama, noter onayı, dist-tag kurtarma ve acil geri alma ayrıntıları yalnızca bakımcılara özel yayın runbook'unda kalır.
- Mevcut
maindalından başlayın: en son değişiklikleri çekin, hedef commit'in gönderildiğini onaylayın ve mevcutmainCI'ın ondan dal oluşturmak için yeterince yeşil olduğunu doğrulayın. - En üstteki
CHANGELOG.mdbölümünü gerçek commit geçmişinden/changelogile yeniden yazın, girdileri kullanıcıya yönelik tutun, commit'leyin, gönderin ve dal oluşturmadan önce bir kez daha rebase/pull yapın. - Yayın uyumluluğu kayıtlarını
src/plugins/compat/registry.tsvesrc/commands/doctor/shared/deprecation-compat.tsiçinde gözden geçirin. Süresi dolmuş uyumluluğu yalnızca yükseltme yolu kapsanmaya devam ettiğinde kaldırın veya neden kasıtlı olarak taşındığını kaydedin. - Mevcut
mainüzerindenrelease/YYYY.M.Doluşturun; normal yayın işini doğrudanmainüzerinde yapmayın. - Amaçlanan etiket için gerekli her sürüm konumunu yükseltin, yayımlanabilir Plugin paketlerinin yayın
sürümünü ve uyumluluk metaverilerini paylaşması için
pnpm plugins:syncçalıştırın, ardından yerel deterministik ön kontrolü çalıştırın:pnpm check:test-types,pnpm check:architecture,pnpm build && pnpm ui:build,pnpm plugins:sync:checkvepnpm release:check. preflight_only=trueileOpenClaw NPM Releaseçalıştırın. Etiket var olmadan önce, yalnızca doğrulama amaçlı ön kontrol için tam 40 karakterlik yayın dalı SHA'sına izin verilir. Başarılıpreflight_run_iddeğerini kaydedin.- Yayın dalı, etiketi veya tam commit SHA'sı için
Full Release Validationile tüm yayın öncesi testleri başlatın. Bu, dört büyük yayın test kutusu için tek manuel giriş noktasıdır: Vitest, Docker, QA Lab ve Package. - Doğrulama başarısız olursa, yayın dalında düzeltin ve düzeltmeyi kanıtlayan en küçük başarısız dosyayı, hattı, iş akışı işini, paket profilini, sağlayıcıyı veya model izin listesini yeniden çalıştırın. Tam şemsiyeyi yalnızca değişen yüzey önceki kanıtı bayatlattığında yeniden çalıştırın.
- Beta için
vYYYY.M.D-beta.Netiketini oluşturun, ardından eşleşenrelease/YYYY.M.DdalındanOpenClaw Release Publishçalıştırın. Bu,pnpm plugins:sync:checkdoğrulaması yapar, tüm yayımlanabilir Plugin paketlerini paralel olarak npm'e ve aynı kümeyi ClawHub'a gönderir, ardından Plugin npm yayımı başarılı olur olmaz hazırlanan OpenClaw npm ön kontrol artefaktını eşleşen dist-tag ile öne çıkarır. ClawHub yayımı OpenClaw npm yayımlanırken hâlâ çalışıyor olabilir, ancak yayın yayımlama iş akışı hem Plugin yayımlama yolları hem de OpenClaw npm yayımlama yolu başarıyla tamamlanmadan bitmez. Yayımdan sonra, yayımlanan[email protected]veyaopenclaw@betapaketine karşı yayım sonrası paket kabulünü çalıştırın. Gönderilmiş veya yayımlanmış bir ön sürüm düzeltme gerektirirse, bir sonraki eşleşen ön sürüm numarasını çıkarın; eski ön sürümü silmeyin veya yeniden yazmayın. - Kararlı sürüm için yalnızca incelenmiş beta veya yayın adayı gerekli
doğrulama kanıtına sahip olduktan sonra devam edin. Kararlı npm yayımı da
OpenClaw Release Publishüzerinden gider ve başarılı ön kontrol artefaktınıpreflight_run_idaracılığıyla yeniden kullanır; kararlı macOS yayın hazır oluşu ayrıca paketlenmiş.zip,.dmg,.dSYM.zipve güncellenmişappcast.xmldosyasınınmainüzerinde olmasını gerektirir. - Yayımdan sonra npm yayım sonrası doğrulayıcıyı, yayım sonrası kanal kanıtına ihtiyaç duyduğunuzda isteğe bağlı bağımsız
yayımlanmış-npm Telegram E2E'yi,
gerektiğinde dist-tag öne çıkarmayı, eksiksiz eşleşen
CHANGELOG.mdbölümünden GitHub yayın/ön sürüm notlarını ve yayın duyurusu adımlarını çalıştırın.
Yayın ön kontrolü
- Daha hızlı yerel
pnpm checkkapısı dışında test TypeScript kapsamının korunması için sürüm ön kontrolünden öncepnpm check:test-typesçalıştırın - Daha hızlı yerel kapı dışında daha geniş import döngüsü ve mimari sınır kontrollerinin yeşil olması için sürüm ön kontrolünden önce
pnpm check:architectureçalıştırın - Paket doğrulama adımı için beklenen
dist/*sürüm yapıtları ve Control UI paketi mevcut olsun diyepnpm release:checköncesindepnpm build && pnpm ui:buildçalıştırın - Kök sürüm artışından sonra ve etiketlemeden önce
pnpm plugins:syncçalıştırın. Bu komut yayınlanabilir Plugin paket sürümlerini, OpenClaw peer/API uyumluluk metadatasını, derleme metadatasını ve Plugin değişiklik günlüğü taslaklarını çekirdek sürümle eşleşecek şekilde günceller.pnpm plugins:sync:check, değişiklik yapmayan sürüm korumasıdır; bu adım unutulursa yayın iş akışı herhangi bir registry mutasyonundan önce başarısız olur. - Sürüm onayından önce tüm sürüm öncesi test kutularını tek giriş noktasından başlatmak için manuel
Full Release Validationiş akışını çalıştırın. Bir branch, tag veya tam commit SHA kabul eder, manuelCIgönderir ve kurulum smoke testi, paket kabulü, çapraz işletim sistemi paket kontrolleri, QA Lab parity, Matrix ve Telegram hatları içinOpenClaw Release Checksgönderir. Kararlı/varsayılan çalıştırmalar, kapsamlı canlı/E2E ve Docker sürüm yolu bekletmesinirun_release_soak=truearkasında tutar;release_profile=fullbekletmeyi zorlar.release_profile=fullvererun_group=allile, sürüm kontrollerinden gelenrelease-package-under-testyapıtına karşı paket Telegram E2E de çalıştırır. Aynı Telegram E2E'nin yayımlanan npm paketini de doğrulaması gerektiğinde yayından sonranpm_telegram_package_specsağlayın. Package Acceptance'ın paket/güncelleme matrisini SHA ile derlenmiş yapıt yerine gönderilmiş npm paketine karşı çalıştırması gerektiğinde yayından sonrapackage_acceptance_package_specsağlayın. Özel kanıt raporunun, Telegram E2E'yi zorlamadan doğrulamanın yayımlanmış bir npm paketiyle eşleştiğini kanıtlaması gerektiğindeevidence_package_specsağlayın. Örnek:gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D - Sürüm çalışması devam ederken bir paket adayı için yan kanal kanıtı istediğinizde manuel
Package Acceptanceiş akışını çalıştırın.openclaw@beta,openclaw@latestveya tam bir sürüm içinsource=npm; mevcutworkflow_reftest düzeneğiyle güvenilir birpackage_refbranch/tag/SHA paketlemek içinsource=ref; zorunlu SHA-256 içeren bir HTTPS tarball içinsource=url; ya da başka bir GitHub Actions çalıştırması tarafından yüklenen tarball içinsource=artifactkullanın. İş akışı adayıpackage-under-testolarak çözümler, Docker E2E sürüm zamanlayıcısını bu tarball'a karşı yeniden kullanır ve aynı tarball'a karşıtelegram_mode=mock-openaiveyatelegram_mode=live-frontierile Telegram QA çalıştırabilir. Seçilen Docker hatlarıpublished-upgrade-survivoriçerdiğinde, paket yapıtı adaydır vepublished_upgrade_survivor_baselineyayımlanmış temeli seçer.update-restart-auth, aday paketi hem kurulu CLI hem de package-under-test olarak kullanır; böylece aday güncelleme komutunun yönetilen yeniden başlatma yolunu test eder. Örnek:gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=openclaw@beta -f suite_profile=product -f [email protected] -f telegram_mode=mock-openaiYaygın profiller:smoke: kurulum/kanal/agent, gateway ağı ve config reload hatlarıpackage: OpenWebUI veya canlı ClawHub olmadan yapıt yerelinde paket/güncelleme/yeniden başlatma/Plugin hatlarıproduct: paket profiline ek olarak MCP kanalları, cron/subagent temizliği, OpenAI web araması ve OpenWebUIfull: OpenWebUI ile Docker sürüm yolu parçalarıcustom: odaklı yeniden çalıştırma için tamdocker_lanesseçimi
- Sürüm adayı için yalnızca tam normal CI kapsamına ihtiyacınız olduğunda manuel
CIiş akışını doğrudan çalıştırın. Manuel CI gönderimleri değişiklik kapsamını atlar ve Linux Node parçalarını, paketlenmiş Plugin parçalarını, kanal contract'larını, Node 22 uyumluluğunu,check,check-additional, build smoke testini, doküman kontrollerini, Python Skills'i, Windows, macOS, Android ve Control UI i18n hatlarını zorlar. Örnek:gh workflow run ci.yml --ref release/YYYY.M.D - Sürüm telemetrisini doğrularken
pnpm qa:otel:smokeçalıştırın. QA-lab'i yerel bir OTLP/HTTP receiver üzerinden çalıştırır ve dışa aktarılan trace span adlarını, sınırlı attribute'ları ve içerik/tanımlayıcı redaksiyonunu Opik, Langfuse veya başka bir harici collector gerektirmeden doğrular. - Her etiketli sürümden önce
pnpm release:checkçalıştırın - Etiket mevcut olduktan sonra mutasyon yapan yayın dizisi için
OpenClaw Release Publishçalıştırın. Bunurelease/YYYY.M.Düzerinden gönderin (veya main üzerinden erişilebilir bir tag yayımlıyorsanızmain), sürüm tag'ini ve başarılı OpenClaw npmpreflight_run_iddeğerini geçin ve odaklı bir onarımı bilerek çalıştırmadığınız sürece varsayılan Plugin yayın kapsamınıall-publishableolarak tutun. İş akışı Plugin npm yayını, Plugin ClawHub yayını ve OpenClaw npm yayınını sıraya koyar; böylece çekirdek paket dışsallaştırılmış Plugin'lerinden önce yayımlanmaz. - Sürüm kontrolleri artık ayrı bir manuel iş akışında çalışır:
OpenClaw Release Checks OpenClaw Release Checks, sürüm onayından önce QA Lab mock parity hattını ve hızlı canlı Matrix profili ile Telegram QA hattını da çalıştırır. Canlı hatlarqa-live-sharedenvironment'ını kullanır; Telegram ayrıca Convex CI kimlik bilgisi kiralamalarını kullanır. Tam Matrix taşıma, medya ve E2EE envanterini paralel istediğinizde manuelQA-Lab - All Lanesiş akışınımatrix_profile=allvematrix_shards=trueile çalıştırın.- Çapraz işletim sistemi kurulum ve yükseltme runtime doğrulaması, yeniden kullanılabilir iş akışını doğrudan çağıran herkese açık
OpenClaw Release ChecksveFull Release Validationkapsamındadır:.github/workflows/openclaw-cross-os-release-checks-reusable.yml - Bu ayrım bilinçlidir: gerçek npm sürüm yolunu kısa, deterministik ve yapıt odaklı tutarken daha yavaş canlı kontrollerin kendi hattında kalmasını sağlar; böylece publish sürecini duraklatmaz veya engellemez
- Secret taşıyan sürüm kontrolleri
Full Release Validationüzerinden ya damain/release workflow ref üzerinden gönderilmelidir; böylece iş akışı mantığı ve secret'lar kontrollü kalır OpenClaw Release Checks, çözümlenen commit bir OpenClaw branch'inden veya release tag'inden erişilebilir olduğu sürece bir branch, tag veya tam commit SHA kabul ederOpenClaw NPM Releaseyalnızca doğrulama amaçlı ön kontrolü, push edilmiş bir tag gerektirmeden mevcut tam 40 karakterlik workflow-branch commit SHA değerini de kabul eder- Bu SHA yolu yalnızca doğrulama içindir ve gerçek bir yayına yükseltilemez
- SHA modunda iş akışı yalnızca paket metadata kontrolü için
v<package.json version>üretir; gerçek publish yine gerçek bir release tag gerektirir - Her iki iş akışı da gerçek publish ve promotion yolunu GitHub-hosted runner'larda tutarken, mutasyon yapmayan doğrulama yolu daha büyük Blacksmith Linux runner'larını kullanabilir
- Bu iş akışı hem
OPENAI_API_KEYhem deANTHROPIC_API_KEYworkflow secret'larını kullanarakOPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheçalıştırır - npm sürüm ön kontrolü artık ayrı sürüm kontrolleri hattını beklemez
- Onaydan önce
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(veya eşleşen beta/düzeltme tag'i) çalıştırın - npm publish sonrasında yayımlanan registry kurulum yolunu temiz bir geçici prefix içinde doğrulamak için
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(veya eşleşen beta/düzeltme sürümü) çalıştırın - Bir beta publish sonrasında, paylaşılan kiralık Telegram kimlik bilgisi havuzunu kullanarak yayımlanan npm paketine karşı kurulu paket onboarding'ini, Telegram kurulumunu ve gerçek Telegram E2E'yi doğrulamak için
[email protected] OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex OPENCLAW_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-liveçalıştırın. Yerel maintainer tek seferlik çalıştırmaları Convex değişkenlerini atlayabilir ve üçOPENCLAW_QA_TELEGRAM_*env kimlik bilgisini doğrudan geçebilir. - Tam yayın sonrası beta smoke testini bir maintainer makinesinden çalıştırmak için
pnpm release:beta-smoke -- --beta betaNkullanın. Yardımcı komut Parallels npm update/fresh-target doğrulamasını çalıştırır,NPM Telegram Beta E2Egönderir, tam workflow run'ı poll eder, yapıtı indirir ve Telegram raporunu yazdırır. - Maintainer'lar aynı yayın sonrası kontrolü GitHub Actions üzerinden manuel
NPM Telegram Beta E2Eiş akışıyla çalıştırabilir. Bilerek yalnızca manuel tutulur ve her merge'de çalışmaz. - Maintainer sürüm otomasyonu artık preflight-then-promote kullanır:
- gerçek npm publish başarılı bir npm
preflight_run_idgeçmelidir - gerçek npm publish, başarılı ön kontrol çalıştırmasıyla aynı
mainveyarelease/YYYY.M.Dbranch'inden gönderilmelidir - kararlı npm sürümleri varsayılan olarak
betakullanır - kararlı npm publish workflow input üzerinden açıkça
latesthedefleyebilir - token tabanlı npm dist-tag mutasyonu artık güvenlik nedeniyle
openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymliçindedir; çünkünpm dist-tag addhâlâNPM_TOKENgerektirirken public repo OIDC-only publish'i korur - public
macOS Releaseyalnızca doğrulama içindir; bir tag yalnızca release branch'inde bulunuyorsa ama workflowmainüzerinden gönderiliyorsapublic_release_branch=release/YYYY.M.Dayarlayın - gerçek private mac publish başarılı private mac
preflight_run_idvevalidate_run_idgeçmelidir - gerçek publish yolları hazırlanmış yapıtları yeniden derlemek yerine promote eder
- gerçek npm publish başarılı bir npm
YYYY.M.D-Ngibi eski kararlı düzeltme sürümleri için, post-publish doğrulayıcı aynı geçici prefix yükseltme yolunuYYYY.M.DsürümündenYYYY.M.D-Nsürümüne de kontrol eder; böylece sürüm düzeltmeleri eski global kurulumları sessizce temel kararlı payload'da bırakamaz- npm sürüm ön kontrolü, tarball hem
dist/control-ui/index.htmlhem de boş olmayan birdist/control-ui/assets/payload içermedikçe kapalı başarısız olur; böylece tekrar boş bir tarayıcı panosu göndermeyiz - Post-publish doğrulaması, yayımlanmış Plugin entrypoint'lerinin ve paket metadatasının kurulu registry layout'unda mevcut olduğunu da kontrol eder. Eksik Plugin runtime payload'larıyla çıkan bir sürüm postpublish doğrulayıcıda başarısız olur ve
latestsürümüne promote edilemez. pnpm test:install:smoke, aday güncelleme tarball'ında npm packunpackedSizebütçesini de zorunlu kılar; böylece installer e2e, sürüm publish yolundan önce yanlışlıkla oluşan paket şişmesini yakalar- Sürüm çalışması CI planlamasına, extension timing manifest'lerine veya extension test matrislerine dokunduysa, onaydan önce
.github/workflows/plugin-prerelease.ymliçinden planner-ownedplugin-prerelease-extension-shardmatris çıktılarını yeniden üretip gözden geçirin; böylece sürüm notları eski bir CI layout'unu tarif etmez - Kararlı macOS sürüm hazırlığı updater yüzeylerini de içerir:
- GitHub release sonunda paketlenmiş
.zip,.dmgve.dSYM.zipiçermelidir mainüzerindekiappcast.xml, publish sonrasında yeni kararlı zip'e işaret etmelidir- paketlenmiş app, debug olmayan bundle id, boş olmayan Sparkle feed URL'si ve ilgili sürüm için canonical Sparkle build tabanına eşit veya üzerinde bir
CFBundleVersionkorumalıdır
- GitHub release sonunda paketlenmiş
Sürüm test kutuları
Full Release Validation, operatörlerin tüm sürüm öncesi testleri tek giriş noktasından başlatma yoludur. Hızlı hareket eden bir branch üzerinde sabitlenmiş commit kanıtı için, her child workflow'un hedef SHA'ya sabitlenmiş geçici bir branch üzerinden çalışmasını sağlayan yardımcıyı kullanın:
pnpm ci:full-release --sha <full-sha>
Yardımcı release-ci/<sha>-... push eder, bu branch üzerinden ref=<sha> ile Full Release Validation gönderir, her child workflow headSha değerinin hedefle eşleştiğini doğrular, ardından geçici branch'i siler. Bu, yanlışlıkla daha yeni bir main child run'ını kanıtlamayı önler.
Release branch veya tag doğrulaması için, bunu güvenilir main workflow ref üzerinden çalıştırın ve release branch veya tag'i ref olarak geçin:
gh workflow run full-release-validation.yml \
--ref main \
-f ref=release/YYYY.M.D \
-f provider=openai \
-f mode=both \
-f release_profile=stable \
-f [email protected]
İş akışı hedef ref'i çözümler, target_ref=<release-ref> ile manuel CI çalıştırmasını başlatır, OpenClaw Release Checks çalıştırmasını başlatır, paket odaklı kontroller için üst release-package-under-test artefaktını hazırlar ve release_profile=full olup rerun_group=all ayarlandığında ya da npm_telegram_package_spec ayarlandığında bağımsız paket Telegram E2E çalıştırmasını başlatır. Ardından OpenClaw Release Checks; kurulum smoke, platformlar arası sürüm kontrolleri, soak etkinleştirildiğinde canlı/E2E Docker sürüm yolu kapsamı, Telegram paket QA ile Package Acceptance, QA Lab paritesi, canlı Matrix ve canlı Telegram kapsamına yayılır. Tam bir çalıştırma yalnızca Full Release Validation özetinde normal_ci ve release_checks başarılı göründüğünde kabul edilebilir. Full/all modunda npm_telegram alt çalıştırması da başarılı olmalıdır; full/all dışında, yayımlanmış bir npm_telegram_package_spec sağlanmadığı sürece atlanır. Son doğrulayıcı özeti, her alt çalıştırma için en yavaş iş tablolarını içerir; böylece sürüm yöneticisi günlükleri indirmeden mevcut kritik yolu görebilir.
Tam aşama matrisi, kesin iş akışı iş adları, stable ve full profil farkları, artefaktlar ve odaklı yeniden çalıştırma tanıtıcıları için Tam sürüm doğrulaması bölümüne bakın.
Alt iş akışları, hedef ref daha eski bir sürüm dalını veya etiketini gösterse bile Full Release Validation çalıştıran güvenilir ref'ten, normalde --ref main üzerinden başlatılır. Ayrı bir Full Release Validation workflow-ref girdisi yoktur; güvenilir test koşumunu iş akışı çalıştırma ref'ini seçerek belirlersiniz.
Hareketli main üzerinde kesin commit kanıtı için --ref main -f ref=<sha> kullanmayın; ham commit SHA'leri workflow dispatch ref'i olamaz, bu yüzden sabitlenmiş geçici dalı oluşturmak için pnpm ci:full-release --sha <sha> kullanın.
Canlı/sağlayıcı genişliğini seçmek için release_profile kullanın:
minimum: en hızlı sürüm açısından kritik OpenAI/core canlı ve Docker yolustable: sürüm onayı için minimuma ek olarak stable sağlayıcı/backend kapsamıfull: stable kapsamına ek olarak geniş danışma sağlayıcı/medya kapsamı
Sürümü engelleyen hatlar yeşil olduğunda ve terfi öncesinde kapsamlı canlı/E2E, Docker sürüm yolu ve sınırlı yayımlanmış yükseltme-kalıcılığı taraması istediğinizde stable ile run_release_soak=true kullanın. Bu tarama, en son dört stable paketin yanı sıra sabitlenmiş 2026.4.23 ve 2026.5.2 taban çizgilerini ve daha eski 2026.4.15 kapsamını içerir; yinelenen taban çizgileri kaldırılır ve her taban çizgisi kendi Docker runner işine shard edilir. full, run_release_soak=true anlamına gelir.
OpenClaw Release Checks, hedef ref'i bir kez release-package-under-test olarak çözümlemek için güvenilir iş akışı ref'ini kullanır ve soak çalıştığında bu artefaktı platformlar arası, Package Acceptance ve sürüm yolu Docker kontrollerinde yeniden kullanır. Bu, tüm paket odaklı kutuların aynı baytlar üzerinde kalmasını sağlar ve tekrarlanan paket derlemelerini önler. Platformlar arası OpenAI kurulum smoke, repo/kuruluş değişkeni ayarlandığında OPENCLAW_CROSS_OS_OPENAI_MODEL kullanır; aksi halde openai/gpt-5.4 kullanır, çünkü bu hat en yavaş varsayılan modeli kıyaslamaktan ziyade paket kurulumunu, onboarding'i, gateway başlangıcını ve bir canlı agent dönüşünü kanıtlar. Daha geniş canlı sağlayıcı matrisi, modele özgü kapsamın yeri olmaya devam eder.
Sürüm aşamasına bağlı olarak şu varyantları kullanın:
# Validate an unpublished release candidate branch.
gh workflow run full-release-validation.yml \
--ref main \
-f ref=release/YYYY.M.D \
-f provider=openai \
-f mode=both \
-f release_profile=stable
# Validate an exact pushed commit.
gh workflow run full-release-validation.yml \
--ref main \
-f ref=<40-char-sha> \
-f provider=openai \
-f mode=both
# After publishing a beta, add published-package Telegram E2E.
gh workflow run full-release-validation.yml \
--ref main \
-f ref=release/YYYY.M.D \
-f provider=openai \
-f mode=both \
-f release_profile=full \
-f [email protected] \
-f [email protected] \
-f npm_telegram_provider_mode=mock-openai
Odaklı bir düzeltmeden sonraki ilk yeniden çalıştırma olarak tam şemsiyeyi kullanmayın. Bir kutu başarısız olursa, sonraki kanıt için başarısız alt iş akışını, işi, Docker hattını, paket profilini, model sağlayıcısını veya QA hattını kullanın. Tam şemsiyeyi yalnızca düzeltme paylaşılan sürüm orkestrasyonunu değiştirdiğinde veya önceki tüm kutu kanıtlarını eski hale getirdiğinde yeniden çalıştırın. Şemsiyenin son doğrulayıcısı kaydedilen alt iş akışı çalıştırma kimliklerini yeniden kontrol eder; bu nedenle bir alt iş akışı başarıyla yeniden çalıştırıldıktan sonra yalnızca başarısız Verify full validation üst işini yeniden çalıştırın.
Sınırlı kurtarma için şemsiyeye rerun_group geçirin. all gerçek sürüm adayı çalıştırmasıdır, ci yalnızca normal CI alt çalıştırmasını çalıştırır, plugin-prerelease yalnızca sürüme özel Plugin alt çalıştırmasını çalıştırır, release-checks her sürüm kutusunu çalıştırır ve daha dar sürüm grupları install-smoke, cross-os, live-e2e, package, qa, qa-parity, qa-live ve npm-telegram değerleridir. Odaklı npm-telegram yeniden çalıştırmaları npm_telegram_package_spec gerektirir; release_profile=full ile full/all çalıştırmaları release-checks paket artefaktını kullanır. Odaklı platformlar arası yeniden çalıştırmalar cross_os_suite_filter=windows/packaged-upgrade veya başka bir işletim sistemi/suite filtresi ekleyebilir. QA release-check hataları tavsiye niteliğindedir; yalnızca QA hatası sürüm doğrulamasını engellemez.
Vitest
Vitest kutusu manuel CI alt iş akışıdır. Manuel CI, değişiklik kapsamını bilerek atlar ve sürüm adayı için normal test grafiğini zorlar: Linux Node shard'ları, paketle gelen Plugin shard'ları, kanal sözleşmeleri, Node 22 uyumluluğu, check, check-additional, build smoke, doküman kontrolleri, Python skills, Windows, macOS, Android ve Control UI i18n.
Bu kutuyu "kaynak ağacı tam normal test paketinden geçti mi?" sorusunu yanıtlamak için kullanın. Bu, sürüm yolu ürün doğrulamasıyla aynı değildir. Saklanacak kanıtlar:
- Başlatılan
CIçalıştırma URL'sini gösterenFull Release Validationözeti - Kesin hedef SHA üzerinde yeşil
CIçalıştırması - Regresyonları incelerken CI işlerinden başarısız veya yavaş shard adları
- Bir çalıştırmanın performans analizi gerektiğinde
.artifacts/vitest-shard-timings.jsongibi Vitest zamanlama artefaktları
Sürüm deterministik normal CI gerektiriyor ancak Docker, QA Lab, canlı, platformlar arası veya paket kutularını gerektirmiyorsa manuel CI'yı doğrudan çalıştırın:
gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
Docker
Docker kutusu, OpenClaw Release Checks içinde openclaw-live-and-e2e-checks-reusable.yml üzerinden ve sürüm modundaki install-smoke iş akışıyla yer alır. Sürüm adayını yalnızca kaynak düzeyi testler yerine paketlenmiş Docker ortamları üzerinden doğrular.
Sürüm Docker kapsamı şunları içerir:
- yavaş Bun global kurulum smoke etkinleştirilmiş tam kurulum smoke
- QR, root/gateway ve installer/Bun smoke işlerinin ayrı install-smoke shard'ları olarak çalıştığı, hedef SHA'ya göre root Dockerfile smoke imajı hazırlama/yeniden kullanım
- depo E2E hatları
- sürüm yolu Docker parçaları:
core,package-update-openai,package-update-anthropic,package-update-core,plugins-runtime-plugins,plugins-runtime-services,plugins-runtime-install-a,plugins-runtime-install-b,plugins-runtime-install-c,plugins-runtime-install-d,plugins-runtime-install-e,plugins-runtime-install-f,plugins-runtime-install-gveplugins-runtime-install-h - istendiğinde
plugins-runtime-servicesparçası içinde OpenWebUI kapsamı bundled-plugin-install-uninstall-0ilebundled-plugin-install-uninstall-23arasında bölünmüş paketle gelen Plugin kurulum/kaldırma hatları- release checks canlı suite'leri içerdiğinde canlı/E2E sağlayıcı suite'leri ve Docker canlı model kapsamı
Yeniden çalıştırmadan önce Docker artefaktlarını kullanın. Sürüm yolu zamanlayıcısı, hat günlükleri, summary.json, failures.json, aşama zamanlamaları, zamanlayıcı plan JSON'u ve yeniden çalıştırma komutlarıyla birlikte .artifacts/docker-tests/ yükler. Odaklı kurtarma için tüm sürüm parçalarını yeniden çalıştırmak yerine yeniden kullanılabilir canlı/E2E iş akışında docker_lanes=<lane[,lane]> kullanın. Oluşturulan yeniden çalıştırma komutları, mevcut olduğunda önceki package_artifact_run_id ve hazırlanmış Docker imajı girdilerini içerir; böylece başarısız bir hat aynı tarball'ı ve GHCR imajlarını yeniden kullanabilir.
QA Lab
QA Lab kutusu da OpenClaw Release Checks parçasıdır. Vitest ve Docker paket mekaniklerinden ayrı olarak agentic davranış ve kanal düzeyi sürüm kapısıdır.
Sürüm QA Lab kapsamı şunları içerir:
- agentic parity pack kullanarak OpenAI aday hattını Opus 4.6 taban çizgisiyle karşılaştıran mock parity hattı
qa-live-sharedortamını kullanan hızlı canlı Matrix QA profili- Convex CI credential lease'leri kullanan canlı Telegram QA hattı
- sürüm telemetrisinin açık yerel kanıta ihtiyaç duyması halinde
pnpm qa:otel:smoke
Bu kutuyu "sürüm QA senaryolarında ve canlı kanal akışlarında doğru davranıyor mu?" sorusunu yanıtlamak için kullanın. Sürümü onaylarken parity, Matrix ve Telegram hatları için artefakt URL'lerini saklayın. Tam Matrix kapsamı, varsayılan sürüm açısından kritik hat yerine manuel shard edilmiş QA-Lab çalıştırması olarak kullanılabilir kalır.
Paket
Package kutusu kurulabilir ürün kapısıdır. Package Acceptance ve çözümleyici scripts/resolve-openclaw-package-candidate.mjs tarafından desteklenir. Çözümleyici bir adayı Docker E2E tarafından tüketilen package-under-test tarball'ına normalleştirir, paket envanterini doğrular, paket sürümünü ve SHA-256 değerini kaydeder ve iş akışı test koşumu ref'ini paket kaynak ref'inden ayrı tutar.
Desteklenen aday kaynakları:
source=npm:openclaw@beta,openclaw@latestveya kesin bir OpenClaw sürüm versiyonusource=ref: seçilenworkflow_reftest koşumuyla güvenilir birpackage_refdalını, etiketini veya tam commit SHA'sını paketlesource=url: zorunlupackage_sha256ile bir HTTPS.tgzindirsource=artifact: başka bir GitHub Actions çalıştırması tarafından yüklenen bir.tgzdosyasını yeniden kullan
OpenClaw Release Checks, Package Acceptance'ı source=artifact, hazırlanmış sürüm paket artefaktı, suite_profile=custom, docker_lanes=doctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor update-restart-auth plugins-offline plugin-update, telegram_mode=mock-openai ile çalıştırır. Package Acceptance; migrasyon, güncelleme, yapılandırılmış auth güncelleme yeniden başlatması, eski Plugin bağımlılığı temizliği, çevrimdışı Plugin fixture'ları, Plugin güncellemesi ve Telegram paket QA'yı aynı çözümlenmiş tarball'a karşı tutar. Engelleyici release checks, varsayılan en son yayımlanmış paket taban çizgisini kullanır; run_release_soak=true veya release_profile=full, 2026.4.23 ile latest arasındaki her stable npm-yayımlı taban çizgisine ve bildirilen sorun fixture'larına genişler. Zaten gönderilmiş bir aday için Package Acceptance'ı source=npm ile; yayımdan önce SHA destekli yerel npm tarball'ı için source=ref/source=artifact ile kullanın. Bu, daha önce Parallels gerektiren paket/güncelleme kapsamının çoğu için GitHub'a özgü yedektir. Platformlar arası release checks, işletim sistemine özgü onboarding, installer ve platform davranışı için hâlâ önemlidir; ancak paket/güncelleme ürün doğrulaması Package Acceptance'ı tercih etmelidir.
Güncelleme ve Plugin doğrulaması için kanonik kontrol listesi Güncellemeleri ve Plugin'leri test etme bölümüdür. Bir Plugin kurulumu/güncellemesi, doctor temizliği veya yayımlanmış paket migrasyonu değişikliğini hangi yerel, Docker, Package Acceptance veya release-check hattının kanıtladığına karar verirken bunu kullanın. Her stable 2026.4.23+ paketten kapsamlı yayımlanmış güncelleme migrasyonu ayrı bir manuel Update Migration iş akışıdır, Full Release CI'nın parçası değildir.
Eski paket kabul gevşekliği bilinçli olarak zamanla sınırlandırılmıştır. 2026.4.25 sürümüne kadar olan paketler, npm’e halihazırda yayımlanmış meta veri eksikleri için uyumluluk yolunu kullanabilir: tarball’da eksik olan özel QA envanter girdileri, eksik gateway install --wrapper, tarball’dan türetilmiş git fixture’ında eksik yama dosyaları, eksik kalıcı update.channel, eski plugin install-record konumları, eksik marketplace install-record kalıcılığı ve plugins update sırasında config meta veri migrasyonu. Yayımlanmış 2026.4.26 paketi, halihazırda gönderilmiş yerel derleme meta veri damga dosyaları için uyarı verebilir. Daha sonraki paketler modern paket sözleşmelerini karşılamalıdır; aynı eksikler sürüm doğrulamasını başarısız kılar.
Sürüm sorusu gerçekten kurulabilir bir paketle ilgili olduğunda daha geniş Paket Kabul profillerini kullanın:
gh workflow run package-acceptance.yml \
--ref main \
-f workflow_ref=main \
-f source=npm \
-f package_spec=openclaw@beta \
-f suite_profile=product \
-f [email protected]
Yaygın paket profilleri:
smoke: hızlı paket kurulum/kanal/agent, gateway ağ ve config yeniden yükleme şeritleripackage: canlı ClawHub olmadan install/update/restart/plugin paket sözleşmeleri; bu sürüm kontrolü varsayılanıdırproduct:packageartı MCP kanalları, cron/subagent temizliği, OpenAI web araması ve OpenWebUIfull: OpenWebUI ile Docker sürüm yolu parçalarıcustom: odaklı yeniden çalıştırmalar için tamdocker_laneslistesi
Paket adayı Telegram kanıtı için Paket Kabul üzerinde telegram_mode=mock-openai veya telegram_mode=live-frontier etkinleştirin. Workflow, çözümlenen package-under-test tarball’ını Telegram şeridine geçirir; bağımsız Telegram workflow’u yayımlama sonrası kontroller için hâlâ yayımlanmış bir npm spesifikasyonunu kabul eder.
Sürüm yayımlama otomasyonu
OpenClaw Release Publish normal mutasyon yapan yayımlama giriş noktasıdır. Güvenilir yayımlayıcı workflow’larını sürümün ihtiyaç duyduğu sırayla orkestre eder:
- Sürüm etiketini checkout et ve commit SHA’sını çözümle.
- Etiketin
mainveyarelease/*üzerinden erişilebilir olduğunu doğrula. pnpm plugins:sync:checkçalıştır.publish_scope=all-publishableveref=<release-sha>ilePlugin NPM Releasedispatch et.- Aynı kapsam ve SHA ile
Plugin ClawHub Releasedispatch et. - Sürüm etiketi, npm dist-tag’i ve kaydedilmiş
preflight_run_idileOpenClaw NPM Releasedispatch et.
Beta yayımlama örneği:
gh workflow run openclaw-release-publish.yml \
--ref release/YYYY.M.D \
-f tag=vYYYY.M.D-beta.N \
-f preflight_run_id=<successful-openclaw-npm-preflight-run-id> \
-f npm_dist_tag=beta
Varsayılan beta dist-tag’ine kararlı yayımlama:
gh workflow run openclaw-release-publish.yml \
--ref release/YYYY.M.D \
-f tag=vYYYY.M.D \
-f preflight_run_id=<successful-openclaw-npm-preflight-run-id> \
-f npm_dist_tag=beta
Doğrudan latest için kararlı promosyon açıktır:
gh workflow run openclaw-release-publish.yml \
--ref release/YYYY.M.D \
-f tag=vYYYY.M.D \
-f preflight_run_id=<successful-openclaw-npm-preflight-run-id> \
-f npm_dist_tag=latest
Daha düşük seviyeli Plugin NPM Release ve Plugin ClawHub Release workflow’larını yalnızca odaklı onarım veya yeniden yayımlama işleri için kullanın. Seçilmiş bir plugin onarımı için OpenClaw Release Publish öğesine plugin_publish_scope=selected ve plugins=@openclaw/name geçirin veya OpenClaw paketinin yayımlanmaması gerektiğinde alt workflow’u doğrudan dispatch edin.
NPM workflow girdileri
OpenClaw NPM Release şu operatör kontrollü girdileri kabul eder:
tag:v2026.4.2,v2026.4.2-1veyav2026.4.2-beta.1gibi zorunlu sürüm etiketi;preflight_only=trueolduğunda yalnızca doğrulama amaçlı preflight için geçerli tam 40 karakterlik workflow dalı commit SHA’sı da olabilirpreflight_only: yalnızca doğrulama/derleme/paket içintrue, gerçek yayımlama yolu içinfalsepreflight_run_id: workflow’un başarılı preflight çalıştırmasından hazırlanmış tarball’ı yeniden kullanması için gerçek yayımlama yolunda zorunludurnpm_dist_tag: yayımlama yolu için npm hedef etiketi; varsayılan olarakbeta
OpenClaw Release Publish şu operatör kontrollü girdileri kabul eder:
tag: zorunlu sürüm etiketi; zaten mevcut olmalıdırpreflight_run_id: başarılıOpenClaw NPM Releasepreflight çalıştırma kimliği;publish_openclaw_npm=trueolduğunda zorunludurnpm_dist_tag: OpenClaw paketi için npm hedef etiketiplugin_publish_scope: varsayılan olarakall-publishable;selecteddeğerini yalnızca odaklı onarım işleri için kullanınplugins:plugin_publish_scope=selectedolduğunda virgülle ayrılmış@openclaw/*paket adlarıpublish_openclaw_npm: varsayılan olaraktrue; yalnızca workflow’u plugin’e özel onarım orkestratörü olarak kullanırkenfalseayarlayın
OpenClaw Release Checks şu operatör kontrollü girdileri kabul eder:
ref: doğrulanacak dal, etiket veya tam commit SHA. Gizli bilgi içeren kontroller, çözümlenen commit’in bir OpenClaw dalından veya sürüm etiketinden erişilebilir olmasını gerektirir.run_release_soak: kararlı/varsayılan sürüm kontrollerinde kapsamlı canlı/E2E, Docker sürüm yolu ve tümünden beri upgrade-survivor soak için seçimi etkinleştirir.release_profile=fulltarafından zorla etkinleştirilir.
Kurallar:
- Kararlı ve düzeltme etiketleri
betaveyalatestiçin yayımlanabilir - Beta ön sürüm etiketleri yalnızca
betaiçin yayımlanabilir OpenClaw NPM Releaseiçin tam commit SHA girdisine yalnızcapreflight_only=trueolduğunda izin verilirOpenClaw Release ChecksveFull Release Validationher zaman yalnızca doğrulama amaçlıdır- Gerçek yayımlama yolu, preflight sırasında kullanılan aynı
npm_dist_tagdeğerini kullanmalıdır; workflow yayımlama devam etmeden önce bu meta veriyi doğrular
Kararlı npm sürüm sırası
Kararlı bir npm sürümü çıkarırken:
preflight_only=trueileOpenClaw NPM Releaseçalıştırın- Etiket mevcut olmadan önce, preflight workflow’unun yalnızca doğrulama amaçlı deneme çalıştırması için geçerli tam workflow dalı commit SHA’sını kullanabilirsiniz
- Normal önce-beta akışı için
npm_dist_tag=betaseçin veya yalnızca bilinçli olarak doğrudan kararlı yayımlama istediğinizdelatestkullanın - Tek bir manuel workflow’dan normal CI artı canlı prompt cache, Docker, QA Lab, Matrix ve Telegram kapsamı istediğinizde sürüm dalı, sürüm etiketi veya tam commit SHA üzerinde
Full Release Validationçalıştırın - Bilinçli olarak yalnızca belirleyici normal test grafiğine ihtiyaç duyuyorsanız bunun yerine sürüm ref’i üzerinde manuel
CIworkflow’unu çalıştırın - Başarılı
preflight_run_iddeğerini kaydedin - Aynı
tag, aynınpm_dist_tagve kaydedilmişpreflight_run_idileOpenClaw Release Publishçalıştırın; OpenClaw npm paketini yükseltmeden önce dışsallaştırılmış plugin’leri npm’e ve ClawHub’a yayımlar - Sürüm
betaüzerinde yayımlandıysa, bu kararlı sürümübetadeğerindenlatestdeğerine yükseltmek için özelopenclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymlworkflow’unu kullanın - Sürüm bilinçli olarak doğrudan
latestiçin yayımlandıysa vebetahemen aynı kararlı derlemeyi izlemeliyse, her iki dist-tag’i de kararlı sürüme yönlendirmek için aynı özel workflow’u kullanın veya zamanlanmış kendi kendini iyileştiren eşitlemesininbetadeğerini daha sonra taşımasına izin verin
Dist-tag mutasyonu güvenlik için özel depoda bulunur çünkü hâlâ NPM_TOKEN gerektirir; herkese açık depo ise yalnızca OIDC yayımlamayı korur.
Bu, doğrudan yayımlama yolunu ve önce-beta promosyon yolunu hem belgelenmiş hem de operatör tarafından görünür tutar.
Bir maintainer yerel npm kimlik doğrulamasına geri dönmek zorundaysa, tüm 1Password CLI (op) komutlarını yalnızca ayrılmış bir tmux oturumu içinde çalıştırın. op komutunu ana agent shell’den doğrudan çağırmayın; tmux içinde tutmak prompt’ları, uyarıları ve OTP işlemeyi gözlemlenebilir kılar ve yinelenen host uyarılarını önler.
Herkese açık referanslar
.github/workflows/full-release-validation.yml.github/workflows/package-acceptance.yml.github/workflows/openclaw-npm-release.yml.github/workflows/openclaw-release-checks.yml.github/workflows/openclaw-cross-os-release-checks-reusable.ymlscripts/resolve-openclaw-package-candidate.mjsscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
Maintainer’lar gerçek runbook için
openclaw/maintainers/release/README.md
içindeki özel sürüm belgelerini kullanır.