Release process
Sürüm politikası
OpenClaw, kullanıcıya yönelik dört güncelleme kanalı sunar:
- stable: npm'de öne çıkarılan normal sürüm
latest - extended-stable: tamamlanan önceki ayın npm'deki
.33+bakım hattıextended-stable - beta: npm'deki ön sürüm etiketleri
beta - dev:
maindalının ilerleyen en son ucu
Extended-stable, normal latest veya main seçicilerini değiştirmeden önceki ayın Gateway'ini, resmî npm pluginlerini ve
Docker imajlarını yayımlar.
Tideclaw alfa derlemeleri ayrı bir dâhilî ön sürüm hattıdır (npm dist-tag alpha); NPM iş akışı girdileri ve Sürüm test kutuları altında ele alınır.
Sürüm adlandırması
- Aylık Gateway extended-stable sürüm versiyonu:
YYYY.M.PATCH;PATCH >= 33ile, git etiketivYYYY.M.PATCH - Günlük/normal nihai sürüm versiyonu:
YYYY.M.PATCH;PATCH < 33ile, git etiketivYYYY.M.PATCH - Normal geri dönüş düzeltme sürümü versiyonu:
YYYY.M.PATCH-N, git etiketivYYYY.M.PATCH-N - Beta ön sürüm versiyonu:
YYYY.M.PATCH-beta.N, git etiketivYYYY.M.PATCH-beta.N - Alfa ön sürüm versiyonu:
YYYY.M.PATCH-alpha.N, git etiketivYYYY.M.PATCH-alpha.N - Ay veya yama numarasını hiçbir zaman başına sıfır ekleyerek yazmayın
PATCHbir takvim günü değil, sıralı aylık sürüm treni numarasıdır. Normal nihai ve beta sürümleri mevcut treni ilerletir; yalnızca alfa etiketleri beta/normal yama numarasını hiçbir zaman tüketmez veya ilerletmez. Bu nedenle bir beta ya da normal tren seçerken daha yüksek yama numaralarına sahip eski, yalnızca alfa etiketlerini yok sayın.- Alfa/gecelik derlemeler, yayımlanmamış bir sonraki yama trenini kullanır ve yinelenen derlemelerde yalnızca
alpha.Ndeğerini artırır. Bu yamanın beta sürümü çıktığında yeni alfa derlemeleri sonraki yamaya geçer. - npm sürümleri değiştirilemez: yayımlanmış bir etiketi hiçbir zaman silmeyin, yeniden yayımlamayın veya tekrar kullanmayın. Bunun yerine bir sonraki ön sürüm numarasını ya da aylık yamayı çıkarın.
latestmevcut normal/günlük npm hattını izlemeye devam eder;betamevcut beta kurulum hedefidirextended-stable,33yamasından başlayarak desteklenen önceki ay Gateway dağıtımı anlamına gelir;34ve sonraki yamalar bu aylık hattın bakım sürümleridir- Normal nihai ve normal düzeltme sürümleri varsayılan olarak npm
betahedefine yayımlanır; sürüm operatörleri açıkçalatesthedefini seçebilir veya daha sonra incelenmiş bir beta derlemesini öne çıkarabilir - Gateway extended-stable; çekirdeği, npm'de yayımlanabilen tüm resmî pluginleri ve Docker imajlarını aynı kesin sürümle yayımlar; aşağıdaki özel iş akışına bakın.
- Her normal nihai sürüm; npm paketini, macOS uygulamasını, imzalı bağımsız Android APK'sını ve imzalı Windows Hub yükleyicilerini birlikte yayımlar. Beta sürümleri normalde önce npm/paket yolunu doğrular ve yayımlar; yerel uygulamaların derlenmesi/imzalanması/noter tasdiki/öne çıkarılması, açıkça istenmediği sürece normal nihai sürüme ayrılır.
Sürüm sıklığı
- Sürümler önce beta olarak ilerler; stable ancak en son beta doğrulandıktan sonra gelir
- Bakımcılar, sürüm doğrulaması ve düzeltmelerin
mainüzerindeki yeni geliştirmeleri engellememesi için normalde mevcutmaindalından oluşturulan birrelease/YYYY.M.PATCHdalından sürüm çıkarır - Bir beta etiketi gönderilmiş veya yayımlanmışsa ve düzeltilmesi gerekiyorsa bakımcılar eski etiketi silmek ya da yeniden oluşturmak yerine sonraki
-beta.Netiketini çıkarır - Ayrıntılı sürüm prosedürü, onaylar, kimlik bilgileri ve kurtarma notları yalnızca bakımcılara özeldir
Aylık Gateway extended-stable yayını
Tamamlanan YYYY.M ayı için extended-stable/YYYY.M.33 oluşturun ve
bu daldan .33+ yayımlayın. Etiket, dal, çalışma kopyası, paket sürümü, ön kontrol ve
doğrulama aynı commit'i belirtmelidir. .33 öncesinde korumalı main, yama
33 değerinden düşük olan sonraki bir ayın nihai sürümünü içermelidir; sonraki bakım yamaları
uygun olmaya devam eder.
Adayı hazırlama ve kararlı hâle getirme
Denetlenmemiş ana geliştirme hattı aralığını denetleyin, özel güvenlik çalışmalarını uzlaştırın, sınırlı bir geri taşıma kümesini onaylayın ve eş güdümlü tek bir PR'ı birleştirin. Standart dalı doğrudan göndermeyin.
Standart dalda YYYY.M.P ayarlayın, pnpm release:prep çalıştırın ve
yayımlanabilir tüm resmî pluginlerde bu sürümü zorunlu kılın. Onaylanmış kayıt defterinden,
eş değer geri taşımalar için özgün birleştirilmiş main PR'larına atıfta bulunarak ### Highlights,
### Changes ve ### Fixes içeren eksiksiz bir ## YYYY.M.P bölümü oluşturup commit edin.
Ön kontrol, eksik veya boş bir bölümü reddeder.
Mevcut ana dalın Docker sürüm kanalı biriminin tamamını taşıyın: iş akışı, öne çıkarıcı, politika, paylaşılan sınıflandırıcı, testler ve iş akışı doğrulaması. GitHub, etiket iş akışlarını etiketlenmiş commit'ten yükler; eksik bir kopya derlemeden sonra başarısız olabilir veya normal takma adları taşıyabilir. Odaklanmış kontrolleri çalıştırın.
Tam dal ucu SHA'sını dondurun. Etiketlemeden önce tam npm baytlarını ön kontrolden geçirin ve bu SHA'ya karşı Tam Sürüm Doğrulamasını çalıştırın:
RELEASE_SHA="$(git rev-parse HEAD)" gh workflow run openclaw-npm-release.yml \ --ref extended-stable/YYYY.M.33 \ -f tag="$RELEASE_SHA" \ -f preflight_only=true \ -f npm_dist_tag=extended-stable gh workflow run full-release-validation.yml \ --ref extended-stable/YYYY.M.33 \ -f ref=extended-stable/YYYY.M.33 \ -f release_profile=stableSHA biçimi yalnızca ön kontrol içindir. Doğrulamayı standart dalda çalıştırın; yayımlama,
iş akışı ref'ini, head/hedef SHA'sını, çalıştırma kimliğini ve denemeyi bağlar. Her iki kimliği ve
başarılı run_attempt değerini kaydedin; release-ci/* kanıtını reddedin.
Düzenleme yapmadan önce hataları sınıflandırın:
- Ürün: onaylanmış başka bir geri taşıma PR'ını birleştirin.
- Dondurulmuş hedef araçları: yalnızca eski ürünü değiştirmeden test eden en küçük uyumluluk onarımını geri taşıyın.
- Sağlayıcı, onay, çalıştırıcı veya hizmet: adayı değiştirmeyin ve sınırlı yeniden deneme yolunu kullanın.
Her dal değişikliği iki geçidi de geçersiz kılar. Geçtikten sonra ucun hâlâ
RELEASE_SHA değerine eşit olmasını zorunlu kılın, ardından imzalı vYYYY.M.P etiketini gönderin. Sonraki değişiklikler için
bir sonraki yama gerekir; etiketi hiçbir zaman taşımayın veya silmeyin. Etiketin gönderilmesi Docker Release sürecini başlatır.
npm paketlerini yayımlama
npm'de yayımlanabilen tüm resmî pluginleri aynı SHA'dan yayımlayın ve başarılı çalıştırma kimliğini kaydedin:
RELEASE_SHA="$(git rev-parse HEAD)"gh workflow run plugin-npm-release.yml \ --ref extended-stable/YYYY.M.33 \ -f publish_scope=all-publishable \ -f ref="$RELEASE_SHA" \ -f npm_dist_tag=extended-stableİş akışı, değişmemiş olanlar dâhil tüm all-publishable paketlerini kapsar
ve her kesin sürümü ve seçiciyi doğrular. Yeniden çalıştırmalar yayımlanmış sürümleri yeniden kullanır.
Ardından hazırlanmış çekirdek tarball'ını kaydedilmiş üç çalıştırma kimliğinin tümüyle yayımlayın:
gh workflow run openclaw-npm-release.yml \ --ref extended-stable/YYYY.M.33 \ -f tag=vYYYY.M.P \ -f preflight_only=false \ -f npm_dist_tag=extended-stable \ -f preflight_run_id=<npm-preflight-run-id> \ -f full_release_validation_run_id=<full-validation-run-id> \ -f full_release_validation_run_attempt=<full-validation-run-attempt> \ -f plugin_npm_run_id=<plugin-npm-run-id>Yalnızca üretim dışı prova için ön kontrole ve yayımlamaya
-f bypass_extended_stable_guard=true ekleyin. Bu yalnızca ay korumasını atlar;
standart ref, SHA/etiket/sürüm eşitliği, kaynak kanıtı,
onay veya geri okuma kontrollerini asla atlamaz. Üretimde hiçbir zaman kullanmayın.
Doğrulama ve kurtarma
Dondurulmuş daldan değil, ayrı ve temiz bir güncel main çalışma kopyasından şunu çalıştırın:
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.Pnpm view openclaw@YYYY.M.P version --userconfig "$(mktemp)"npm view openclaw@extended-stable version --userconfig "$(mktemp)"Standart dal için imzaları ve npm kaynak kanıtını; ayrıca yayımlama,
ön kontrol ve tarball özeti bağının sürüm SHA'sına bağlı olmasını zorunlu kılın. Her iki komut da
YYYY.M.P döndürmelidir. Hazırlanmış her çekirdek paketini ve all-publishable
resmî plugini kesin sürümü ve seçicisiyle doğrulayın.
Yalnızca kök seçici başarısız olursa iş akışı özetinde yazdırılan, oluşturulmuş
npm dist-tag add openclaw@YYYY.M.P extended-stable onarım komutunu kullanın.
Mevcut plugin veya diğer hazırlanmış çekirdek seçicilerini,
onaylanmış ve kimlik bilgilerinden yalıtılmış araçlarla onarın; OIDC kaynağı bunları değiştiremez.
Değiştirilemez bir sürümü hiçbir zaman yeniden yayımlamayın.
Docker Release işleminin GHCR ve Docker Hub'daki kesin varsayılan, slim, tarayıcı ve mimari
imajlarını; tasdikler ve platform sürümleri dâhil olmak üzere doğrulamasını zorunlu kılın. İşlem,
özet aracılığıyla yalnızca
extended-stable, extended-stable-slim ve extended-stable-browser değerlerini
ilerletmelidir; normal takma adlar değişmeden kalır ve otomatik geri alma reddedilir.
Takma ad onarımı için onay geçitli Docker Channel Promotion işlemini, etiketi kullanarak güncel
main dalından çalıştırın. Özet, tasdik ve platform kontrollerini yineler, açık bir geri almaya
izin verir ve imajları hiçbir zaman yeniden derlemez.
Slack, Discord ve Codex ilk belgelenmiş destek yüzeyleridir; bir
sürüm izin listesi değildir: npm'de yayımlanabilen tüm resmî pluginler yayımlanır. Beta/latest, GitHub Releases, ClawHub, yerel uygulamalar, mobil,
web sitesi ve özel dist-tag'ler yalnızca normal
kontrol listesinin sorumluluğundadır; bu Gateway yolu için bu adımları çalıştırmayın.
Normal sürüm operatörü kontrol listesi
Bu kontrol listesi sürüm akışının herkese açık biçimidir. Özel kimlik bilgileri, imzalama, noter tasdiki, dist-tag kurtarma ve acil geri alma ayrıntıları yalnızca bakımcılara açık sürüm çalıştırma kitabında kalır.
-
Güncel
maindalından başlayın: en son değişiklikleri çekin, hedef commit'in gönderildiğini doğrulayın vemainCI'ın dallanmak için yeterince yeşil olduğunu doğrulayın. -
Bu commit'ten
release/YYYY.M.PATCHoluşturun. Geri taşımalar isteğe bağlıdır; yalnızca operatörün seçtiği kümeyi uygulayın. Gerekli tüm sürüm konumlarını artırın,pnpm release:prepçalıştırın, sürüm düzeltmelerini ve gerekli ileri taşımaları tamamlayın vesrc/plugins/compat/registry.tsilesrc/commands/doctor/shared/deprecation-compat.tsöğelerini inceleyin. -
Ürün açısından tamamlanmış, değişiklik günlüğü öncesi commit'i Kod SHA'sı olarak dondurun. Belirlenimci kaynak ön kontrolünü çalıştırın, ardından
node scripts/full-release-validation-at-sha.mjs --sha <code-sha> --target-ref release/YYYY.M.PATCHkullanın. Bu işlem güvenilir iş akışı araçlarını sabitlerken tam Vitest, Docker, QA, paket ve performans matrisi tam Kod SHA'sını hedefler. -
Düzenleme yapmadan önce hataları sınıflandırın. Bir ürün/kod hatası yeni bir Kod SHA'sı oluşturur ve bu SHA için yeşil tam doğrulama gerektirir. Bir iş akışı, test düzeneği, kimlik bilgisi, onay veya altyapı hatası kendi sorumluluk yüzeyinde onarılır ve aynı Kod SHA'sına karşı yeniden çalıştırılır.
-
Yalnızca Kod SHA'sı yeşil olduktan sonra, erişilebilen son yayımlanmış etiketten bu yana birleştirilen PR'lardan ve doğrudan commit'lerden en üstteki
CHANGELOG.mdbölümünü oluşturun. Girdileri kullanıcıya yönelik ve yinelenmeyen biçimde tutun. Ayrışmış bir yayımlanmış etiket veya sonraki ileri taşıma, daha önce yayımlanmış PR'ları yeniden ilişkilendirirse bunu açıkça--shipped-refolarak geçirin. -
Yalnızca
CHANGELOG.mdöğesini commit edin. Bu commit Sürüm SHA'sıdır. Kod SHA'sından Sürüm SHA'sına kadar olan eksiksiz fark tam olarakCHANGELOG.mdolmalıdır; değişen başka bir yol sürümü 2. adıma döndürür. -
Kanıtın yeniden kullanımı etkin olarak Sürüm SHA'sı için SHA'ya sabitlenmiş Tam Sürüm Doğrulamasını çalıştırın. Hafif üst iş akışı
changelog-only-release-v1değerini kaydetmeli, yeşil Kod SHA'sını göstermeli ve hiçbir ürün alt hattını tetiklememelidir. Bu, ürün kanıtını yeniden kullanır; paket baytlarını yeniden kullanmaz. -
Sürüm SHA'sına/etiketine karşı
preflight_only=trueileOpenClaw NPM Releaseçalıştırın. Başarılıpreflight_run_iddeğerini kaydedin. Bu işlem, nihai değişiklik günlüğünü içeren tam paket baytlarını derler ve denetler. -
Sürüm SHA'sını etiketleyin, ardından ikisini de yeniden tetiklemek yerine başarılı Sürüm SHA'sı doğrulama üst iş akışı ve npm ön kontrolüyle aday yardımcısını çalıştırın:
bash pnpm release:candidate -- \ --tag vYYYY.M.PATCH-beta.N \ --full-release-run <release-sha-validation-run-id> \ --npm-preflight-run <preflight-run-id> \ --skip-dispatchKararlı sürüm için ayrıca
--windows-node-tag vX.Y.Zparametresini geçirin. Yardımcı; sürüm notu kaynağını, npm ön kontrol baytlarını, Parallels kurulum/güncelleme kanıtını, Telegram paket kanıtını ve plugin yayımlama planlarını doğrular, ardından yayımlama komutunu yazdırır.OpenClaw Release Publish, seçilen veya yayımlanabilir tüm plugin paketlerini paralel olarak npm'e ve aynı kümedekileri ClawHub'a gönderir; ardından plugin'in npm'de yayımlanması başarıyla tamamlandığında, hazırlanmış OpenClaw npm ön kontrol yapıtını eşleşen dist-tag ile yükseltir. Sürüm checkout'u ürün/veri kökü olarak kalırken planlama ve son doğrulama, eski bir sürüm commit'inin güncelliğini yitirmiş sürüm araçlarını sessizce kullanamaması için tam olarak güvenilen iş akışı kaynağı checkout'undan yürütülür. Herhangi bir yayımlama alt süreci başlamadan önce tam GitHub sürüm gövdesini oluşturur ve önbelleğe alır. EşleşenCHANGELOG.mdbölümünün tamamı GitHub'ın 125,000 karakter sınırına ve oluşturucunun eşleşen 125,000 baytlık güvenlik tavanına sığdığında sayfa, başlığıyla birlikte tam olarak bu## YYYY.M.PATCHbölümünü içerir. Kaynak bölüm sığmadığında sayfa, gruplandırılmış editoryal notları aynen korur ve aşırı büyük katkı kaydını, etikete sabitlenmişCHANGELOG.mdiçindeki tam kayda yönlendiren kararlı bir bağlantıyla değiştirir; kısmi kayıtlar ve kesilmiş madde işaretleri hiçbir zaman yayımlanmaz. İş akışı,### Release verificationeklenmeden önce tam veya kompakt gövdeyi seçer; kanıt kuyruğu sınırı aşacaksa kurallı gövdeyi korur ve bunun yerine değiştirilemez ekli kanıta dayanır. npm'delatestolarak yayımlanan kararlı sürümler en son GitHub sürümü olurken npm'debetaolarak tutulan kararlı bakım sürümleri GitHublatest=falseile oluşturulur. İş akışı ayrıca sürüm sonrası olay müdahalesi için ön kontrol bağımlılık kanıtını, tam doğrulama manifestini ve yayımlama sonrası kayıt defteri doğrulama kanıtını GitHub sürümüne yükler. Alt çalışma kimliklerini hemen yazdırır, iş akışı token'ının onaylamasına izin verilen sürüm ortamı kapılarını otomatik olarak onaylar, başarısız alt işleri günlük sonlarıyla özetler, taslak GitHub sürüm sayfasını en başta oluşturur ve Windows ile Android varlıklarını OpenClaw npm yayınıyla eşzamanlı olarak yükseltir, bu aşamalar başarıyla tamamlandığında sürüm sayfasını ve bağımlılık kanıtını sonuçlandırır, OpenClaw npm'de yayımlanırken ClawHub'ı bekler, ardından güvenilen-main beta doğrulayıcısını çalıştırır ve GitHub sürümü, npm paketi, seçilen plugin npm paketleri, seçilen ClawHub paketleri, alt iş akışı çalışma kimlikleri ve isteğe bağlı NPM Telegram çalışma kimliği için yayımlama sonrası kanıtı yükler. ClawHub önyükleme doğrulayıcısı; tam güvenilen-main iş akışı yolunu ve SHA'yı, üretici ve terminal çalışma denemelerini, sürüm SHA'sını, istenen paket kümesini, değiştirilemez paket yapıtı demetini ve terminal kayıt defteri geri okuma yapıtını gerektirir; başarılı bir eski sürüm-ref çalışması kabul edilmez.Ardından yayımlanan
openclaw@YYYY.M.PATCH-beta.Nveyaopenclaw@betapaketine karşı yayımlama sonrası paket kabulünü çalıştırın. Gönderilmiş veya yayımlanmış bir ön sürüm düzeltme gerektiriyorsa eşleşen bir sonraki ön sürüm numarasını oluşturun; eskisini hiçbir zaman silmeyin veya yeniden yazmayın. -
Başarısız bir yayımlama denemesinde, hata bir ürün veya değişiklik günlüğü kusurunu kanıtlamadığı sürece Sürüm SHA'sını değiştirmeyin. Başarılı değiştirilemez alt süreçleri ve yapıtları devam ettirin; zaten başarıyla tamamlanmış bir paket sürümünü hiçbir zaman yeniden oluşturmayın veya yayımlamayın.
-
Kararlı sürüm için yalnızca incelenmiş beta veya sürüm adayı gerekli doğrulama kanıtına sahip olduktan sonra devam edin. Kararlı npm yayını da başarılı ön kontrol yapıtını
preflight_run_idaracılığıyla yeniden kullanarakOpenClaw Release Publishüzerinden gerçekleştirilir. Kararlı macOS sürüm hazırlığı ayrıca paketlenmiş.zip,.dmg,.dSYM.zipvemainüzerindeki güncellenmişappcast.xmlgerektirir; macOS yayımlama iş akışı, sürüm varlıkları doğrulandıktan sonra imzalı appcast'i herkese açıkmainhedefine otomatik olarak yayımlar veya dal koruması doğrudan göndermeyi engelliyorsa bir appcast PR'ı açar/günceller. Kararlı Windows Hub hazırlığı, OpenClaw GitHub sürümünde imzalıOpenClawCompanion-Setup-x64.exe,OpenClawCompanion-Setup-arm64.exeveOpenClawCompanion-SHA256SUMS.txtvarlıklarını gerektirir. Tam imzalıopenclaw/openclaw-windows-nodesürüm etiketiniwindows_node_tagolarak ve aday tarafından onaylanmış yükleyici özet eşlemesiniwindows_node_installer_digestsolarak geçirin;OpenClaw Release Publishsürüm taslağını korur,Windows Node Releasegönderimini yapar ve yayımlamadan önce üç varlığın tümünü doğrular. -
Yayımlamadan sonra npm yayımlama sonrası doğrulayıcısını, yayımlama sonrası kanal kanıtına ihtiyaç duyulduğunda isteğe bağlı bağımsız yayımlanmış-npm Telegram E2E'sini ve gerektiğinde dist-tag yükseltmesini çalıştırın; oluşturulan GitHub sürüm sayfasını doğrulayın, sürüm duyurusu adımlarını çalıştırın ve ardından kararlı sürümü tamamlanmış olarak kabul etmeden önce Kararlı main sonuçlandırması işlemini tamamlayın.
Kararlı main sonuçlandırması
main gerçek yayımlanmış sürüm durumunu taşımadıkça kararlı yayımlama tamamlanmış değildir.
- Güncel en son
mainile başlayın.release/YYYY.M.PATCHiçeriğini buna göre denetleyin vemainiçinde bulunmayan gerçek düzeltmeleri ileri taşıyın. Yalnızca sürüme özgü uyumluluk, test veya doğrulama bağdaştırıcılarını daha yenimainiçine körü körüne birleştirmeyin. - Normal yol için
maindeğerini yayımlanmış kararlı sürüme ayarlayın. Geç yapılan bir sonuçlandırma, daha sonraki bir kararlı OpenClaw CalVer sürümüne ilerledikten sonramainkullanabilir; yalnızca önceki sürümü sonuçlandırmak için başlamış bir sürüm sürecini eski sürüme düşürmeyin. Doğrulayıcı yine de tam yayımlanmış değişiklik günlüğü bölümünü ve appcast girdisini gerektirir ve gerçekmainsürümünü ve SHA'sını kaydeder. Herhangi bir kök sürüm değişikliğinden sonrapnpm release:prep, ardındanpnpm deps:shrinkwrap:generateçalıştırın. CHANGELOG.mddosyasınınmainüzerindeki## YYYY.M.PATCHbölümünü etiketlenmiş sürüm dalıyla tam olarak eşleştirin. Mac sürümü bir tane yayımladıysa kararlıappcast.xmlgüncellemesini ekleyin.- Operatör ilgili sürüm sürecini açıkça başlatana kadar
mainiçineYYYY.M.PATCH+1, bir beta sürümü veya boş bir gelecek değişiklik günlüğü bölümü eklemeyin. pnpm release:generated:check,pnpm deps:shrinkwrap:checkveOPENCLAW_TESTBOX=1 pnpm check:changedçalıştırın. Gönderin, ardından kararlı sürümü tamamlanmış olarak kabul etmeden önceorigin/mainöğesinin yayımlanmış sürümü ve değişiklik günlüğünü içerdiğini doğrulayın.- Her özel geri alma tatbikatından sonra
RELEASE_ROLLBACK_DRILL_IDveRELEASE_ROLLBACK_DRILL_DATEdepo değişkenlerini güncel tutun.
OpenClaw Stable Main Closeout, kararlı yayımlamadan sonra yayımlanmış sürümü, değişiklik günlüğünü ve appcast'i taşıyan main gönderiminden başlar. Yayımlanmış etiketi Tam Sürüm Doğrulaması ve Yayımlama çalışmalarıyla ilişkilendirmek için değiştirilemez yayımlama sonrası kanıtı okur; ardından kararlı main durumunu, sürümü, zorunlu kararlı bekleme süresini ve engelleyici performans kanıtını doğrular. GitHub sürümüne değiştirilemez bir sonuçlandırma manifesti ve sağlama toplamı ekler. Otomatik gönderim tetikleyicisi, değiştirilemez yayımlama sonrası kanıttan önceki eski sürümleri atlar ve bu atlamayı hiçbir zaman tamamlanmış sonuçlandırma olarak değerlendirmez.
Tam bir sonuçlandırma, hem varlıkları hem de eşleşen bir sağlama toplamını gerektirir. Kısmi bir manifest, aynı baytları yeniden oluşturmak için kaydedilmiş main SHA'sını ve geri alma tatbikatını yeniden oynatır, ardından eksik sağlama toplamını ekler; geçersiz bir çift veya manifestsiz bir sağlama toplamı engelleyici olmaya devam eder. Geri alma tatbikatı depo değişkenleri olmayan gönderim tetiklemeli bir çalışma, sonuçlandırmayı tamamlamadan atlanır; eksik veya 90 günden eski bir tatbikat kaydı da manuel, kanıta dayalı sonuçlandırmayı engellemeye devam eder. Özel kurtarma komutları yalnızca bakımcıya açık çalışma kılavuzunda kalır. Manuel gönderimi yalnızca kanıta dayalı kararlı sonuçlandırmayı onarmak veya yeniden oynatmak için kullanın.
Sürüm Yayımlama üst süreci yalnızca değiştirilemez npm/plugin kanıtı eklendikten sonra başarısız olduysa önce tüm kararlı platform varlıklarını onarın ve yayımlayın. Ardından bir bakımcı, allow_failed_publish_recovery=true ile sonuçlandırmayı manuel olarak gönderebilir; bu mod yalnızca tamamlanmış başarısız bir üst süreci kabul eder ve normal macOS/appcast kontrollerinin yanı sıra tam Android ve Windows varlık sözleşmelerini, GitHub SHA-256 özetlerini, sağlama toplamı doğrulamasını, Android kaynağını ve Authenticode kontrolleri ile aday tarafından onaylanmış özetleri yayımlanmış yükleyicilerle eşleşen, üst süreç tarafından gönderilmiş başarılı bir Windows yükseltmesini ek olarak gerektirir. Otomatik gönderim sonuçlandırması bu kurtarma modunu hiçbir zaman etkinleştirmez.
Eski bir geri dönüş düzeltme etiketi, yalnızca düzeltme etiketi temel kararlı etiketle aynı kaynak commit'ine çözümleniyorsa temel paket kanıtını yeniden kullanabilir. Android sürümü, temel etiketin doğrulanmış APK'sını yeniden kullanır ve düzeltme etiketi için kaynak kanıtı ekler. Farklı kaynak içeren bir düzeltme kendi paket kanıtını yayımlayıp doğrulamalı ve daha yüksek bir Android versionCode kullanmalıdır.
Sürüm ön kontrolü
-
Test TypeScript'inin daha hızlı yerel
pnpm checkkapısının dışında da kapsanması için sürüm ön kontrolünden öncepnpm check:test-typesçalıştırın. -
Daha kapsamlı içe aktarma döngüsü ve mimari sınır kontrollerinin daha hızlı yerel kapının dışında başarılı 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ının ve Control UI paketinin mevcut olması amacıylapnpm release:checköncesindepnpm build && pnpm ui:buildçalıştırın. -
Kök sürüm yükseltmesinden sonra ve etiketlemeden önce
pnpm release:prepçalıştırın. Sürüm/yapılandırma/API değişikliğinden sonra sıkça farklılaşan tüm belirlenimci sürüm oluşturucularını çalıştırır: plugin sürümleri, npm shrinkwrap'ları, plugin envanteri, temel yapılandırma şeması, paketlenmiş kanal yapılandırma meta verileri, yapılandırma belgeleri temel çizgisi, plugin SDK dışa aktarımları, Plugin SDK API sözleşmesi manifesti ve Control UI yerel ayar paketleri. Ayrıca yerel uygulama çevirileri ve platform tarafından oluşturulan yerel ayar kaynakları kaynak envanteriyle eşleşene kadar engeller; geride kalmışlarsa Kod SHA'sını dondurmadan önceNative App Locale Refreshçalışmasını bekleyin veya gönderin.pnpm release:check, bu korumaları kontrol modunda yeniden çalıştırır (katı yerel ayar kapıları ve plugin SDK yüzey bütçesi dâhil) ve paket sürüm kontrollerini çalıştırmadan önce oluşturulan tüm farklılaşma hatalarını tek geçişte bildirir. -
Plugin sürüm eşitlemesi, yayımlanabilir
@openclaw/aiçalışma zamanı paketini, resmî plugin paket sürümlerini ve mevcutopenclaw.compat.pluginApialt sınırlarını varsayılan olarak OpenClaw sürümüne günceller. Bu alanı yalnızca paket sürümünün bir kopyası olarak değil, plugin SDK/çalışma zamanı API alt sınırı olarak değerlendirin: eski OpenClaw ana makineleriyle kasıtlı olarak uyumlu kalan yalnızca plugin sürümlerinde alt sınırı desteklenen en eski ana makine API'sinde tutun ve bu seçimi plugin sürüm kanıtında belgeleyin. -
Tüm ön sürüm test kutularını tek bir giriş noktasından başlatmak için sürüm onayından önce manuel
Full Release Validationiş akışını çalıştırın. Bir dalı, etiketi veya tam commit SHA'sını kabul eder; manuelCIgönderimini ve kurulum duman testi, paket kabulü, işletim sistemleri arası paket kontrolleri, QA Lab eşliği, Matrix ve Telegram hatları içinOpenClaw Release Checksgönderimini yapar. Kararlı ve tam çalışmalar her zaman kapsamlı canlı/E2E ve Docker sürüm yolu bekleme testini içerir;run_release_soak=trueaçık bir beta bekleme testi için korunur. Paket Kabulü, aday doğrulaması sırasında kurallı paket Telegram E2E'sini sağlayarak eşzamanlı ikinci bir canlı yoklayıcıya duyulan ihtiyacı ortadan kaldırır.Sürüm tarball'unu yeniden oluşturmadan yayımlanmış npm paketini sürüm kontrolleri, Paket Kabulü ve paket Telegram E2E'si genelinde yeniden kullanmak için bir beta yayımladıktan sonra
release_package_specsağlayın. Yalnızca Telegram'ın sürüm doğrulamasının geri kalanından farklı bir yayımlanmış paket kullanması gerektiğindenpm_telegram_package_specsağlayın. Paket Kabulünün sürüm paketi belirtiminden farklı bir yayımlanmış paket kullanması gerektiğindepackage_acceptance_package_specsağlayın. Sürüm kanıtı raporunun Telegram E2E'sini zorunlu kılmadan doğrulamanın yayımlanmış bir npm paketiyle eşleştiğini kanıtlaması gerektiğindeevidence_package_specsağlayın.bash node scripts/full-release-validation-at-sha.mjs \ --sha <code-sha> \ --target-ref release/YYYY.M.PATCH -
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 versiyonu içinsource=npm; mevcutworkflow_refdüzeneğiyle güvenilir birpackage_refdalını/etiketini/SHA'sını paketlemek içinsource=ref; gerekli bir SHA-256 ve katı genel URL politikası bulunan genel bir HTTPS tar arşivi içinsource=url; gereklitrusted_source_idve SHA-256'yı kullanan, adlandırılmış bir güvenilir kaynak politikası içinsource=trusted-url; başka bir GitHub Actions çalıştırması tarafından yüklenen bir tar arşivi için isesource=artifactkullanın.İş akışı adayı
package-under-testolarak çözümler, bu tar arşivine karşı Docker E2E sürüm zamanlayıcısını yeniden kullanır vetelegram_mode=mock-openaiveyatelegram_mode=live-frontierile aynı tar arşivine karşı Telegram QA çalıştırabilir. Seçilen Docker hatlarıpublished-upgrade-survivoröğesini içerdiğinde paket yapıtı adaydır ve yayımlanmış temel çizgiyipublished_upgrade_survivor_baselineseçer.update-restart-auth, aday güncelleme komutunun yönetilen yeniden başlatma yolunu sınaması için aday paketi hem kurulu CLI hem de test edilen paket olarak kullanır.Örnek:
bash 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 published_upgrade_survivor_baseline=openclaw@2026.4.26 -f telegram_mode=mock-openaiYaygın profiller:
smoke: kurulum/kanal/agent, Gateway ağı ve yapılandırmayı yeniden yükleme hatlarıpackage: OpenWebUI veya canlı ClawHub olmadan yapıta özgü paket/güncelleme/yeniden başlatma/plugin hatlarıproduct: paket profiline ek olarak MCP kanalları, cron/alt agent temizliği, OpenAI web araması ve OpenWebUIfull: OpenWebUI içeren Docker sürüm yolu parçalarıcustom: odaklı bir yeniden çalıştırma için tamdocker_lanesseçimi
-
Yalnızca sürüm adayı için belirlenimci normal CI kapsamına ihtiyacınız olduğunda manuel
CIiş akışını doğrudan çalıştırın. Manuel CI tetiklemeleri, değişiklik kapsamlandırmasını atlar ve Linux Node parçalarını, paketlenmiş plugin parçalarını, plugin ve kanal sözleşmesi parçalarını, Node 22 uyumluluğunu,check-*,check-additional-*, derlenmiş yapıt duman kontrollerini, dokümantasyon kontrollerini, Python Skills'ı, Windows'u, macOS'i ve Control UI i18n hatlarını zorunlu kılar. Bağımsız manuel CI çalıştırmaları Android'i yalnızcainclude_android=trueile tetiklendiğinde çalıştırır;Full Release Validationbu girdiyi CI alt iş akışına geçirir.bash gh workflow run ci.yml --ref release/YYYY.M.PATCH -f include_android=true -
Sürüm telemetrisini doğrularken
pnpm qa:otel:smokeçalıştırın. Yerel bir OTLP/HTTP alıcısı üzerinden QA-lab'i sınar ve Opik, Langfuse veya başka bir harici toplayıcı gerektirmeden iz, metrik ve günlük dışa aktarımının yanı sıra sınırlandırılmış iz özniteliklerini ve içerik/tanımlayıcı redaksiyonunu doğrular. -
Toplayıcı uyumluluğunu doğrularken
pnpm qa:otel:collector-smokeçalıştırın. Yerel alıcı doğrulamalarından önce aynı QA-lab OTLP dışa aktarımını gerçek bir OpenTelemetry Collector Docker konteyneri üzerinden yönlendirir. -
Korumalı Prometheus kazımasını doğrularken
pnpm qa:prometheus:smokeçalıştırın. QA-lab'i sınar, kimliği doğrulanmamış kazımaları reddeder ve sürüm açısından kritik metrik ailelerinin istem içeriği, ham tanımlayıcılar, kimlik doğrulama token'ları ve yerel yollar içermediğini doğrular. -
Kaynak çalışma kopyasındaki OpenTelemetry ve Prometheus duman hatlarını art arda çalıştırmak için
pnpm qa:observability:smokeçalıştırın. -
Etiketlenmiş her sürümden önce
pnpm release:checkçalıştırın. -
OpenClaw NPM Releaseön kontrolü, npm tar arşivini paketlemeden önce bağımlılık sürüm kanıtlarını oluşturur. npm güvenlik bildirimi güvenlik açığı geçidi sürümü engeller. Geçişli manifest riski, bağımlılık sahipliği/kurulum yüzeyi ve bağımlılık değişikliği raporları yalnızca sürüm kanıtıdır. Bağımlılık değişikliği raporu, sürüm adayını erişilebilir önceki sürüm etiketiyle karşılaştırır. Ön kontrol, bağımlılık kanıtlarınıopenclaw-release-dependency-evidence-<tag>olarak yükler ve ayrıca hazırlanmış npm ön kontrol yapıtının içindedependency-evidence/altına gömer. Gerçek yayımlama yolu bu ön kontrol yapıtını yeniden kullanır, ardından aynı kanıtları GitHub sürümüneopenclaw-<version>-dependency-evidence.zipolarak ekler. -
Etiket oluşturulduktan sonraki durum değiştiren yayımlama sırası için
OpenClaw Release Publishçalıştırın. Normal beta ve kararlı sürüm yayımlamalarını güvenilirmainüzerinden tetikleyin; sürüm etiketi yine tam hedef commit'i seçer verelease/YYYY.M.PATCHiçine işaret edebilir. Tideclaw alfa yayımlamaları eşleşen alfa dallarında kalır. Başarılı OpenClaw npmpreflight_run_id, başarılıfull_release_validation_run_idve tamfull_release_validation_run_attemptdeğerlerini iletin; bilinçli olarak odaklı bir onarım çalıştırmıyorsanız varsayılan plugin yayımlama kapsamınıall-publishableolarak tutun. İş akışı, çekirdek paketin dışsallaştırılmış plugin'lerinden önce yayımlanmaması için plugin npm yayımlamasını, plugin ClawHub yayımlamasını ve OpenClaw npm yayımlamasını sıralı hâle getirir; Windows ve Android tanıtımı ise taslak sürüm sayfasına karşı çekirdek npm yayımlamasıyla eş zamanlı çalışır. Yayımlama yeniden çalıştırmaları kaldığı yerden sürdürülebilir: zaten yayımlanmış bir çekirdek npm versiyonu, iş akışı kayıt defterindeki tar arşivinin etiketin ön kontrol yapıtıyla eşleştiğini kanıtladıktan sonra çekirdek tetiklemesini atlar; sürüm doğrulanmış yapıt sözleşmesini zaten içeriyorsa Windows/Android tanıtımı da atlanır, böylece yeniden deneme yalnızca başarısız aşamaları tekrarlar. Yalnızca plugin'e yönelik odaklı onarımlarplugin_publish_scope=selectedve boş olmayan bir plugin listesi gerektirir. Yalnızca plugin'e yönelikall-publishableçalıştırmaları eksiksiz, değişmez ön kontrol ve Tam Sürüm Doğrulaması kanıtı gerektirir; kısmi kanıt reddedilir. -
Kararlı
OpenClaw Release Publish, eşleşen ön sürüm olmayanopenclaw/openclaw-windows-nodesürümü mevcut olduktan sonra tam birwindows_node_tagve aday için onaylanmışwindows_node_installer_digestseşlemesini gerektirir. Herhangi bir yayımlama alt iş akışını tetiklemeden önce bu kaynak sürümün yayımlanmış, ön sürüm olmayan, gerekli x64/ARM64 yükleyicilerini içeren ve hâlâ bu onaylı eşlemeyle uyuşan bir sürüm olduğunu doğrular. Ardından OpenClaw sürümü hâlâ taslakken, sabitlenmiş yükleyici özet eşlemesini değiştirmeden taşıyarakWindows Node Releaseiş akışını tetikler. Alt iş akışı, imzalı Windows Hub yükleyicilerini tam olarak bu etiketten indirir, bunları sabitlenmiş özetlerle eşleştirir, Authenticode imzalarının bir Windows çalıştırıcısında beklenen OpenClaw Foundation imzalayıcısını kullandığını doğrular, bir SHA-256 manifesti yazar ve yükleyicilerle manifesti kurallı OpenClaw GitHub sürümüne yükler; ardından tanıtılan yapıtları yeniden indirerek manifest üyeliğini ve karmaları doğrular. Üst iş akışı, yayımlamadan önce mevcut x64, ARM64 ve sağlama toplamı yapıt sözleşmesini doğrular. Doğrudan kurtarma, beklenen sözleşme yapıtlarını sabitlenmiş kaynak baytlarıyla değiştirmeden önce beklenmeyenOpenClawCompanion-*yapıt adlarını reddeder.Windows Node Releaseiş akışını yalnızca kurtarma amacıyla manuel olarak tetikleyin ve her zamanlatestyerine tam bir etiket ile onaylanmış kaynak sürümden alınan açıkexpected_installer_digestsJSON eşlemesini iletin. Web sitesi indirme bağlantıları, mevcut kararlı sürüm için tam OpenClaw sürüm yapıtı URL'lerini veya yalnızca GitHub'ın en son yönlendirmesinin aynı sürüme işaret ettiği doğrulandıktan sonrareleases/latest/download/...değerini hedeflemelidir; yalnızca eşlik eden depo sürüm sayfasına bağlantı vermeyin. -
Sürüm kontrolleri artık ayrı bir manuel iş akışında çalışır:
OpenClaw Release Checks. Ayrıca sürüm onayından önce QA Lab sahte eşlik düzeyini, Matrix sürüm profilini ve Telegram QA hattını çalıştırır. Canlı hatlarqa-live-sharedortamını kullanır; Telegram ayrıca Convex CI kimlik bilgisi kiralamalarını kullanır. Bakımı yapılan tüm Matrix senaryolarını çalıştırmak istediğinizde manuelQA-Lab - All Lanesiş akışınımatrix_profile=allile çalıştırın; iş akışı, eksiksiz doğrulamayı iş başına zaman aşımı sınırları içinde tutmak için bu seçimi aktarım, medya ve E2EE profillerine dağıtır. -
İşletim sistemleri arası kurulum ve yükseltme çalışma zamanı doğrulaması, yeniden kullanılabilir
.github/workflows/openclaw-cross-os-release-checks-reusable.ymliş akışını doğrudan çağıran herkese açıkOpenClaw Release ChecksveFull Release Validationkapsamındadır. Bu ayrım bilinçlidir: gerçek npm sürüm yolunu kısa, belirlenimci ve yapıt odaklı tutarken daha yavaş canlı kontroller kendi hatlarında kalır; böylece yayımlamayı geciktirmez veya engellemezler. -
Gizli bilgi içeren sürüm kontrolleri, iş akışı mantığının ve gizli bilgilerin denetim altında kalması için
Full Release Validationüzerinden veyamain/release iş akışı referansından tetiklenmelidir. -
OpenClaw Release Checks, çözümlenen commit bir OpenClaw dalından veya sürüm etiketinden erişilebilir olduğu sürece dal, etiket veya tam commit SHA'sı kabul eder. -
OpenClaw NPM Releaseyalnızca doğrulama amaçlı ön kontrolü, gönderilmiş bir etiket gerektirmeden iş akışı dalının mevcut 40 karakterlik tam commit SHA'sını da kabul eder. Bu SHA yolu yalnızca doğrulama içindir ve gerçek yayımlamaya yükseltilemez. SHA modunda iş akışı, yalnızca paket meta verisi kontrolü içinv<package.json version>sentezler; gerçek yayımlama yine gerçek bir sürüm etiketi gerektirir. -
Her iki iş akışı da gerçek yayımlama ve yükseltme yolunu GitHub tarafından barındırılan çalıştırıcılarda tutarken, değişiklik yapmayan doğrulama yolu daha büyük Blacksmith Linux çalıştırıcılarını kullanabilir.
-
Bu iş akışı, hem
OPENAI_API_KEYhem deANTHROPIC_API_KEYiş akışı gizli bilgilerini 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.
-
Yerel olarak bir sürüm adayı etiketlemeden önce
RELEASE_TAG=vYYYY.M.PATCH-beta.N pnpm release:fast-pretag-checkçalıştırın. Yardımcı, GitHub yayımlama iş akışı başlamadan önce onayı engelleyen yaygın hataları yakalayacak sırayla hızlı sürüm korumalarını, plugin npm/ClawHub sürüm kontrollerini, derlemeyi, kullanıcı arayüzü derlemesini verelease:openclaw:npm:checkçalıştırır. -
Onaydan önce
RELEASE_TAG=vYYYY.M.PATCH node --import tsx scripts/openclaw-npm-release-check.ts(veya eşleşen ön sürüm/düzeltme etiketi) çalıştırın. -
npm yayımlamasından sonra, yayımlanmış kayıt defteri kurulum yolunu yeni bir geçici önekte doğrulamak için
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.PATCH(veya eşleşen beta/düzeltme sürümü) çalıştırın. -
Bir beta yayımlamasından sonra, paylaşılan kiralık Telegram kimlik bilgisi havuzunu kullanarak yayımlanmış npm paketine karşı kurulu paket ilk katılımını, Telegram kurulumunu ve gerçek Telegram E2E'yi doğrulamak için
OPENCLAW_NPM_TELEGRAM_PACKAGE_SPEC=openclaw@YYYY.M.PATCH-beta.N OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex OPENCLAW_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-liveçalıştırın. Bakımcıların tek seferlik yerel çalıştırmaları Convex değişkenlerini atlayabilir ve üçOPENCLAW_QA_TELEGRAM_*ortam kimlik bilgisini doğrudan geçirebilir. -
Yayımlama sonrası beta duman testinin tamamını bir bakımcı makinesinden çalıştırmak için
pnpm release:beta-smoke -- --beta betaNkullanın. Yardımcı; Parallels npm güncelleme/yeni hedef doğrulamasını çalıştırır,NPM Telegram Beta E2Etetikler, tam iş akışı çalıştırmasını yoklar, yapıtı indirir ve Telegram raporunu yazdırır. -
Bakımcılar, aynı yayımlama sonrası kontrolü GitHub Actions üzerinden manuel
NPM Telegram Beta E2Eiş akışıyla çalıştırabilir. Bilinçli olarak yalnızca manueldir ve her birleştirmede çalışmaz. -
Bakımcı sürüm otomasyonu, önce ön kontrol ardından yükseltme yaklaşımını kullanır:
- Gerçek npm yayımlaması, başarılı bir npm
preflight_run_idgeçmelidir. - Normal beta ve kararlı sürüm yayımlama düzenlemesi ve ön kontrolü, tam hedef etikete karşı güvenilir
mainkullanır. Tideclaw alfa yayımlaması ve ön kontrolü, eşleşen alfa dalını kullanır. - Kararlı npm sürümleri varsayılan olarak
betakullanır; kararlı npm yayımlaması, iş akışı girdisi üzerinden açıkçalatesthedefleyebilir. - Token tabanlı npm dist-tag değişikliği
openclaw/releases/.github/workflows/openclaw-npm-dist-tags.ymliçinde bulunur; çünkü kaynak depo yalnızca OIDC yayımlamasını sürdürürkennpm dist-tag addhâlâNPM_TOKENgerektirir. - Herkese açık
macOS Releaseyalnızca doğrulama içindir; bir etiket yalnızca bir sürüm dalında bulunuyor ancak iş akışımainüzerinden tetikleniyorsapublic_release_branch=release/YYYY.M.PATCHayarlayın. - Gerçek macOS yayımlaması, başarılı macOS
preflight_run_idvevalidate_run_idkontrollerini geçmelidir. - Gerçek yayımlama yolları, yeniden derlemek yerine hazırlanmış yapıtları yükseltir.
- Gerçek npm yayımlaması, başarılı bir npm
-
YYYY.M.PATCH-Ngibi kararlı düzeltme sürümlerinde yayımlama sonrası doğrulayıcı, sürüm düzeltmelerinin eski global kurulumları temel kararlı yükte sessizce bırakmaması içinYYYY.M.PATCHsürümündenYYYY.M.PATCH-Nsürümüne aynı geçici önek yükseltme yolunu da kontrol eder. -
npm sürüm ön kontrolü, tarball hem
dist/control-ui/index.htmlhem de boş olmayan birdist/control-ui/assets/yükü içermediği sürece kapalı biçimde başarısız olur; böylece boş bir tarayıcı panosunu tekrar dağıtmayız. -
Yayımlama sonrası doğrulama, yayımlanmış plugin giriş noktalarının ve paket meta verilerinin kurulu kayıt defteri düzeninde bulunduğunu da kontrol eder. Eksik plugin çalışma zamanı yükleriyle dağıtılan bir sürüm, yayımlama sonrası doğrulayıcıda başarısız olur ve
latestseviyesine yükseltilemez. -
pnpm test:install:smoke, aday güncelleme tarball'ında npm packunpackedSizebütçesini de uygular; böylece kurucu e2e, sürüm yayımlama yolundan önce yanlışlıkla oluşan paket şişmesini yakalar. -
Sürüm çalışması CI planlamasına, uzantı zamanlama manifestlerine veya uzantı test matrislerine dokunduysa, sürüm notlarının eski bir CI düzenini açıklamaması için onaydan önce planlayıcının sahip olduğu
plugin-prerelease-extension-shardmatris çıktılarını.github/workflows/plugin-prerelease.ymlüzerinden yeniden oluşturup inceleyin. -
Kararlı macOS sürüm hazırlığı, güncelleyici yüzeylerini de kapsar: GitHub sürümü paketlenmiş
.zip,.dmgve.dSYM.zipile sonuçlanmalıdır;mainüzerindekiappcast.xml, yayımlamadan sonra yeni kararlı zip dosyasını göstermelidir (macOS yayımlama iş akışı bunu otomatik olarak commit eder veya doğrudan gönderme engellenirse bir appcast pull request'i açar); paketlenmiş uygulama hata ayıklama dışı bir paket kimliğini, boş olmayan bir Sparkle akış URL'sini ve söz konusu sürüm için standart Sparkle derleme alt sınırında veya üzerinde birCFBundleVersiondeğerini korumalıdır.
Sürüm test kutuları
Full Release Validation, operatörlerin tam ürün matrisini tek bir giriş noktasından başlatma yöntemidir. Her alt iş akışının, istenen commit test edilen aday olarak kalırken tek bir güvenilir main iş akışı SHA'sına sabitlenmiş geçici bir daldan çalışması için yardımcıyı kullanın:
pnpm ci:full-release \ --sha <code-sha> \ --target-ref release/YYYY.M.PATCHYardımcı, mevcut origin/main verisini getirir, release-ci/<workflow-sha>-... dalını bu güvenilir iş akışı commit'ine gönderir, alfa/beta paket sürümlerinden beta ve diğer durumlarda stable çıkarımını yapar, geçici daldan Full Release Validation iş akışını ref=<target-sha> ile tetikler, her alt iş akışının headSha değerinin sabitlenmiş üst iş akışı SHA'sıyla eşleştiğini doğrular ve ardından geçici dalı siler. Yeni bir çalıştırmayı zorlamak için -f reuse_evidence=false, geniş danışma taraması için -f release_profile=full veya mevcut origin/main üzerinden hâlâ erişilebilen eski bir commit'i sabitlemek için --workflow-sha <trusted-main-sha> geçirin. İş akışının kendisi hiçbir zaman depo referanslarına yazmaz. Bu, adaya araç commit'leri eklemeden yalnızca main dalındaki sürüm araçlarını kullanılabilir tutar ve yanlışlıkla daha yeni bir main alt çalıştırmasını doğrulamayı önler.
Kod SHA'sı yeşil olduktan sonra yalnızca CHANGELOG.md commit'ini oluşturun ve aynı yardımcıyı Sürüm SHA'sıyla çalıştırın:
pnpm ci:full-release \ --sha <release-sha> \ --target-ref release/YYYY.M.PATCHİkinci üst iş akışı, ürün kanıtını yalnızca GitHub Sürüm SHA'sının Kod SHA'sından türediğini ve değiştirilen yolların tam kümesinin tam olarak CHANGELOG.md olduğunu kanıtladığında yeniden kullanır. changelog-only-release-v1 kaydeder ve hiçbir ürün alt iş akışını tetiklemez. Tarball baytları değiştiği için npm ön kontrolü ve paket/kurulum kabulü yine Sürüm SHA'sında çalışır.
Yeni bir Kod SHA'sı için iş akışı hedefi çözümler, manuel CI iş akışını ve ardından OpenClaw Release Checks iş akışını tetikler. OpenClaw Release Checks; kurulum duman testini, işletim sistemleri arası sürüm kontrollerini, bekletme etkinleştirildiğinde canlı/E2E Docker sürüm yolu kapsamını, standart Telegram paket E2E'siyle Paket Kabulünü, QA Lab eşliğini, canlı Matrix'i ve canlı Telegram'ı dağıtımlı olarak çalıştırır. Tam/tümü çalıştırması, odaklı bir yeniden çalıştırma ayrı Plugin Prerelease alt iş akışını kasıtlı olarak atlamadığı sürece, yalnızca Full Release Validation özeti normal_ci, plugin_prerelease ve release_checks öğelerini başarılı gösterdiğinde kabul edilebilir. Bağımsız npm-telegram alt iş akışını yalnızca release_package_spec veya npm_telegram_package_spec ile yayımlanmış pakete yönelik odaklı yeniden çalıştırma için kullanın. 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.
Ürün performansı alt iş akışı bu sürüm yolunda yalnızca yapıt üretir.
Üst iş akışı onu publish_reports=false ile tetikler ve yalnızca yapıt
koruması Clawgrit rapor yayımlayıcısının atlanmış durumda kaldığını
kanıtlamadıkça doğrulama reddedilir.
Tam aşama matrisi, tam iş akışı işi adları, kararlı ve tam profil farklılıkları, yapıtlar ve odaklı yeniden çalıştırma tanıtıcıları için Tam sürüm doğrulaması sayfasına bakın.
Alt iş akışları, Full Release Validation çalıştıran SHA'ya sabitlenmiş güvenilir referanstan tetiklenir. Her alt çalıştırma tam üst iş akışı SHA'sını kullanmalıdır. Sürüm kanıtı için ham --ref main -f ref=<sha> tetiklemelerini kullanmayın; pnpm ci:full-release --sha <target-sha> --target-ref release/YYYY.M.PATCH kullanın.
Canlı/sağlayıcı kapsamını seçmek için release_profile kullanın:
beta: sürüm açısından kritik en hızlı OpenAI/çekirdek canlı ve Docker yolustable: sürüm onayı için beta ile kararlı sağlayıcı/arka uç kapsamıfull: kararlı ile geniş danışma sağlayıcı/medya kapsamı
Kararlı ve tam doğrulama, yükseltmeden önce her zaman kapsamlı canlı/E2E ve Docker sürüm yolu taramasını ve sınırlandırılmış yayımlanmış yükseltmeden sağ çıkma taramasını çalıştırır. Bir beta için aynı taramayı istemek üzere run_release_soak=true kullanın. Bu tarama, yinelenen temel sürümler kaldırılmış ve her temel sürüm kendi Docker çalıştırıcı işine bölünmüş olarak en son dört kararlı paketi, sabitlenmiş 2026.4.23 ve 2026.5.2 temel sürümlerini ve daha eski 2026.4.15 kapsamını içerir.
OpenClaw Release Checks, hedef referansı bir kez release-package-under-test olarak çözümlemek için güvenilir iş akışı referansını kullanır ve bekletme çalıştığında bu yapıtı işletim sistemleri arası kontrollerde, Paket Kabulünde ve sürüm yolu Docker kontrollerinde yeniden kullanır. Bu, paketle ilgili tüm kutuların aynı baytları kullanmasını sağlar ve tekrarlanan paket derlemelerini önler. Bir beta zaten npm üzerindeyse sürüm kontrollerinin dağıtılmış paketi bir kez indirmesi, derleme kaynak SHA'sını dist/build-info.json içinden çıkarması ve bu yapıtı işletim sistemleri arası kontroller, Paket Kabulü, sürüm yolu Docker ve paket Telegram hatlarında yeniden kullanması için release_package_spec=openclaw@YYYY.M.PATCH-beta.N ayarlayın.
İşletim sistemleri arası OpenAI kurulum duman testi, depo/kuruluş değişkeni ayarlandığında OPENCLAW_CROSS_OS_OPENAI_MODEL, aksi takdirde openai/gpt-5.6-luna kullanır; çünkü bu hat en yetenekli modeli karşılaştırmalı olarak değerlendirmek yerine paket kurulumunu, ilk katılımı, Gateway başlatmayı ve tek bir canlı ajan turunu doğrular. Daha geniş canlı sağlayıcı matrisi, modele özgü kapsamın yeri olmaya devam eder.
Sürüm aşamasına göre şu varyantları kullanın:
# Ürün açısından eksiksiz Code SHA'yı doğrulayın.pnpm ci:full-release \ --sha <code-sha> \ --target-ref release/YYYY.M.PATCH # Code SHA ürün kanıtını yeniden kullanarak yalnızca değişiklik günlüğünü içeren Release SHA'yı doğrulayın.pnpm ci:full-release \ --sha <release-sha> \ --target-ref release/YYYY.M.PATCH # Bir beta yayımladıktan sonra, yayımlanmış paket Telegram E2E'sini ekleyin.pnpm ci:full-release \ --sha <release-sha> \ --target-ref release/YYYY.M.PATCH \ -f release_package_spec=openclaw@YYYY.M.PATCH-beta.N \ -f evidence_package_spec=openclaw@YYYY.M.PATCH-beta.N \ -f npm_telegram_provider_mode=mock-openaiOdaklı bir düzeltmeden sonraki ilk yeniden çalıştırmada tam şemsiye iş akışını 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 şemsiye iş akışını yalnızca düzeltme paylaşılan sürüm düzenlemesini değiştirdiyse veya önceki tüm kutulara ait kanıtları geçersiz kıldıysa yeniden çalıştırın. Şemsiyenin son doğrulayıcısı kaydedilen alt iş akışı çalıştırma kimliklerini yeniden denetler; 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.
rerun_group=all; sürüm profili, geçerli bekletme ayarı ve doğrulama girdileri eşleştiğinde ve hedef SHA aynı olduğunda ya da yeni hedef, eksiksiz değişen yol kümesi tam olarak CHANGELOG.md olan bir alt öğe olduğunda önceki başarılı bir şemsiye çalıştırmasını yeniden kullanabilir. Tam hedefin yeniden kullanılması exact-target-full-validation-v1 kaydını; doğrulama sonrası Release SHA ise changelog-only-release-v1 kaydını oluşturur. İkincisi yalnızca ürün doğrulamasını yeniden kullanır. Npm ön kontrolü, paket baytları, sürüm notu kaynağı ve kurulum/güncelleme kabulü yine de Release SHA üzerinde çalıştırılmalıdır. Herhangi bir sürüm, kaynak, oluşturulan içerik, bağımlılık, paket veya iş akışına ait hedef değişikliği yeni bir Code SHA ve yeni bir tam doğrulama gerektirir. Aynı release/* referansı ve yeniden çalıştırma grubu için daha yeni şemsiye çalıştırmaları, devam edenlerin otomatik olarak yerini alır. Yeni bir tam çalıştırmayı zorlamak için reuse_evidence=false iletin.
Sınırlandırılmış kurtarma için şemsiyeye rerun_group iletin. all gerçek sürüm adayı çalıştırmasıdır; ci yalnızca normal CI alt iş akışını, plugin-prerelease yalnızca sürüme özel plugin alt iş akışını, release-checks her sürüm kutusunu çalıştırır; daha dar sürüm grupları ise install-smoke, cross-os, live-e2e, package, qa, qa-parity, qa-live ve npm-telegram şeklindedir. Odaklı npm-telegram yeniden çalıştırmaları release_package_spec veya npm_telegram_package_spec gerektirir; tam/tüm çalıştırmalar Package Acceptance içindeki standart paket Telegram E2E'sini kullanır. Odaklı işletim sistemleri arası yeniden çalıştırmalara cross_os_suite_filter=windows/packaged-upgrade veya başka bir işletim sistemi/paket filtresi eklenebilir. QA sürüm denetimi hataları, çekirdek çalışma zamanı çifti hattındaki OpenClaw dinamik araç sapması dâhil olmak üzere normal sürüm doğrulamasını engeller. Tideclaw alfa çalıştırmaları, paket güvenliği dışındaki sürüm denetimi hatlarını yine de bilgilendirici olarak değerlendirebilir. release_profile=beta ile Run repo/live E2E validation canlı sağlayıcı paketleri bilgilendiricidir (uyarı oluşturur, engellemez); kararlı ve tam profiller bunları engelleyici olarak tutar. live_suite_filter açıkça Discord, WhatsApp veya Slack gibi geçitli bir QA canlı hattı istediğinde eşleşen OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED depo değişkeni etkinleştirilmelidir; aksi takdirde hat sessizce atlanmak yerine girdi yakalama başarısız olur.
Vitest
Vitest kutusu, manuel CI alt iş akışıdır. Manuel CI, değişiklik kapsamını kasıtlı olarak atlar ve sürüm adayı için normal test grafiğini zorunlu kılar: Linux Node parçaları, paketlenmiş plugin parçaları, plugin ve kanal sözleşmesi parçaları, Node 22 uyumluluğu, check-*, check-additional-*, derlenmiş yapıt duman denetimleri, belge denetimleri, Python skills, Windows, macOS ve Control UI i18n. Şemsiye include_android=true ilettiği için kutuyu Full Release Validation çalıştırdığında Android dâhil edilir; bağımsız manuel CI, Android kapsamı için include_android=true gerektirir.
"Kaynak ağacı tam normal test paketini geçti mi?" sorusunu yanıtlamak için bu kutuyu kullanın. Bu, sürüm yolu ürün doğrulamasıyla aynı değildir. Saklanacak kanıtlar:
Full Release Validationözeti, başlatılanCIçalıştırma URL'sini göstermelidirCIçalıştırması tam hedef SHA üzerinde başarılı olmalıdır- gerilemeler incelenirken CI işlerindeki başarısız veya yavaş parça adları
- bir çalıştırma performans analizi gerektirdiğinde
.artifacts/vitest-shard-timings.jsongibi Vitest zamanlama yapıtları
Manuel CI'ı doğrudan yalnızca sürüm deterministik normal CI gerektiriyor ancak Docker, QA Lab, canlı, işletim sistemleri arası veya paket kutularını gerektirmiyorsa çalıştırın. Android içermeyen doğrudan CI için ilk komutu kullanın. Doğrudan sürüm adayı CI'ın Android'i kapsaması gerektiğinde include_android=true ekleyin:
gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.PATCHgh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.PATCH -f include_android=trueDocker
Docker kutusu, OpenClaw Release Checks ile openclaw-live-and-e2e-checks-reusable.yml ve ayrıca sürüm modundaki install-smoke iş akışında bulunur. Sürüm adayını yalnızca kaynak düzeyindeki testlerle değil, paketlenmiş Docker ortamları üzerinden doğrular.
Sürüm Docker kapsamı şunları içerir:
- yavaş Bun genel kurulum duman denetimi etkinleştirilmiş tam kurulum duman denetimi
- QR, kök/gateway ve yükleyici/Bun duman işleri ayrı kurulum duman parçaları olarak çalışırken, hedef SHA'ya göre kök Dockerfile duman görüntüsünün hazırlanması/yeniden kullanılması
- 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-aileplugins-runtime-install-hveopenwebui - istendiğinde özel büyük diskli bir çalıştırıcıda OpenWebUI kapsamı
- bölünmüş paketlenmiş plugin kurma/kaldırma hatları:
bundled-plugin-install-uninstall-0ilebundled-plugin-install-uninstall-23 - sürüm denetimleri canlı paketleri içerdiğinde canlı/E2E sağlayıcı paketleri ve Docker canlı model kapsamı
Yeniden çalıştırmadan önce Docker yapıtları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 görüntüsü girdilerini içerir; böylece başarısız bir hat aynı tarball ve GHCR görüntülerini yeniden kullanabilir.
QA Lab
QA Lab kutusu da OpenClaw Release Checks kapsamındadır. Vitest ve Docker paket mekaniklerinden ayrı olarak, aracı davranış ve kanal düzeyindeki sürüm geçididir.
Sürüm QA Lab kapsamı şunları içerir:
- aracı eşlik paketi kullanılarak OpenAI aday hattını
anthropic/claude-opus-4-8temel çizgisiyle karşılaştıran sahte eşlik hattı qa-live-sharedortamını kullanan Matrix canlı bağdaştırıcı sürüm profili- Convex CI kimlik bilgisi kiralamalarını kullanan canlı Telegram QA hattı
- sürüm telemetrisi açık yerel kanıt gerektirdiğinde
pnpm qa:otel:smoke,pnpm qa:otel:collector-smoke,pnpm qa:prometheus:smokeveyapnpm qa:observability:smoke
"Sürüm QA senaryolarında ve canlı kanal akışlarında doğru davranıyor mu?" sorusunu yanıtlamak için bu kutuyu kullanın. Sürümü onaylarken eşlik, Matrix ve Telegram hatlarının yapıt URL'lerini saklayın. Tam Matrix kapsamı, varsayılan sürüm açısından kritik hat yerine manuel parçalı bir QA-Lab çalıştırması olarak kullanılabilir durumda kalır.
Paket
Paket kutusu, kurulabilir ürün geçididir. Package Acceptance ve scripts/resolve-openclaw-package-candidate.mjs çözümleyicisi 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ü ile SHA-256 değerini kaydeder ve iş akışı test düzeneği referansını paket kaynak referansından ayrı tutar.
Desteklenen aday kaynakları:
source=npm:openclaw@beta,openclaw@latestveya tam bir OpenClaw sürümüsource=ref: seçilenworkflow_reftest düzeneğiyle güvenilir birpackage_refdalını, etiketini veya tam commit SHA'sını paketlemesource=url: gereklipackage_sha256ile genel bir HTTPS.tgzindirme; URL kimlik bilgileri, varsayılan olmayan HTTPS bağlantı noktaları, özel/dâhilî/özel kullanımlı ana bilgisayar adları veya çözümlenen adresler ve güvenli olmayan yönlendirmeler reddedilirsource=trusted-url:.github/package-trusted-sources.jsoniçindeki adlandırılmış bir ilkeden gereklipackage_sha256vetrusted_source_idile bir HTTPS.tgzindirme;source=urliçin girdi düzeyinde özel ağ atlatması eklemek yerine bakımcıya ait kurumsal yansılar veya özel paket depoları için bunu kullanınsource=artifact: başka bir GitHub Actions çalıştırmasının yüklediği.tgzöğesini yeniden kullanma
OpenClaw Release Checks; source=artifact, hazırlanmış sürüm paketi yapıtı, suite_profile=custom, docker_lanes=doctor-switch update-channel-switch skill-install update-corrupt-plugin upgrade-survivor published-upgrade-survivor root-managed-vps-upgrade update-restart-auth plugins-offline plugin-update plugin-binding-command-escape ve telegram_mode=mock-openai ile Package Acceptance'ı çalıştırır. Package Acceptance; geçiş, güncelleme, kök tarafından yönetilen VPS yükseltmesi, yapılandırılmış kimlik doğrulama güncellemesi sonrası yeniden başlatma, canlı ClawHub skill kurulumu, eski plugin bağımlılıklarını temizleme, çevrimdışı plugin sabitleri, plugin güncelleme, plugin komut bağlama kaçışı sağlamlaştırması ve Telegram paket QA işlemlerini aynı çözümlenmiş tarball üzerinde tutar. Engelleyici sürüm denetimleri varsayılan olarak yayımlanmış en son paket temel çizgisini kullanır; run_release_soak=true, release_profile=stable veya release_profile=full içeren beta profili, yayımlanmış yükseltmeden sağ çıkma taramasını last-stable-4 ile sabitlenmiş 2026.4.23, 2026.5.2 ve 2026.4.15 temel çizgilerine, reported-issues senaryolarıyla genişletir. Zaten yayımlanmış bir aday için source=npm, yayımlamadan önce SHA destekli yerel npm tarball'ı için source=ref, bakımcıya ait kurumsal/özel yansı için source=trusted-url veya başka bir GitHub Actions çalıştırmasının yüklediği hazırlanmış tarball için source=artifact ile Package Acceptance'ı kullanın.
Bu, daha önce Parallels gerektiren paket/güncelleme kapsamının çoğu için GitHub'a özgü alternatiftir. İşletim sistemine özgü ilk katılım, yükleyici ve platform davranışı açısından işletim sistemleri arası sürüm denetimleri önemini korur; ancak paket/güncelleme ürün doğrulamasında Package Acceptance tercih edilmelidir.
Güncelleme ve plugin doğrulamasına yönelik standart denetim listesi Güncellemeleri ve pluginleri test etme sayfasındadır. Bir plugin kurulumu/güncellemesini, doctor temizliğini veya yayımlanmış paket geçişi değişikliğini hangi yerel, Docker, Package Acceptance ya da sürüm denetimi hattının kanıtladığına karar verirken bunu kullanın. Her kararlı 2026.4.23+ paketinden kapsamlı yayımlanmış güncelleme geçişi, Full Release CI'ın parçası değil, ayrı bir manuel Update Migration iş akışıdır.
Eski paket kabul esnekliği kasıtlı olarak zamanla sınırlandırılmıştır. 2026.4.25 dâhil olmak üzere bu sürüme kadar olan paketler, npm'de zaten yayımlanmış meta veri eksiklikleri için uyumluluk yolunu kullanabilir: tarball'da eksik özel QA envanter girdileri, eksik gateway install --wrapper, tarball'dan türetilmiş git sabitinde eksik yama dosyaları, eksik kalıcı update.channel, eski plugin kurulum kaydı konumları, eksik pazar yeri kurulum kaydı kalıcılığı ve plugins update sırasında yapılandırma meta verisi geçişi. Yayımlanmış 2026.4.26 paketi, daha önce dağıtılmış yerel derleme meta verisi damga dosyaları için uyarı verebilir. Daha sonraki paketler modern paket sözleşmelerini karşılamalıdır; aynı eksiklikler sürüm doğrulamasını başarısız kılar.
Sürüm sorusu gerçek bir kurulabilir paketle ilgili olduğunda daha geniş Package Acceptance profilleri 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 published_upgrade_survivor_baseline=openclaw@2026.4.26Yaygın paket profilleri:
smoke: hızlı paket kurulum/kanal/ajan, Gateway ağı ve yapılandırmayı yeniden yükleme hatlarıpackage: kurulum/güncelleme/yeniden başlatma/plugin paketi sözleşmeleri ve canlı ClawHub skill kurulum kanıtı; bu, sürüm denetiminin varsayılanıdırproduct:packageile birlikte MCP kanalları, cron/alt ajan temizliği, OpenAI web araması ve OpenWebUIfull: OpenWebUI içeren Docker sürüm yolu parçalarıcustom: odaklı yeniden çalıştırmalar için tamdocker_laneslistesi
Paket adayı Telegram kanıtı için Package Acceptance üzerinde telegram_mode=mock-openai veya telegram_mode=live-frontier seçeneğini etkinleştirin. İş akışı, çözümlenen package-under-test tarball dosyasını Telegram hattına aktarır; bağımsız Telegram iş akışı, yayın sonrası denetimler için yayımlanmış bir npm belirtimini kabul etmeye devam eder.
Normal sürüm yayımlama otomasyonu
Beta, latest, plugin, GitHub Release ve platform yayını için
OpenClaw Release Publish, normal değişiklik yapan giriş noktasıdır. Aylık
.33+ Gateway extended-stable yolu bu orkestratörü kullanmaz. Normal
iş akışı, güvenilir yayımcı iş akışlarını sürümün gerektirdiği sırayla
orkestre eder:
- Sürüm etiketini teslim alın ve commit SHA değerini çözümleyin.
- Etikete
mainveyarelease/*üzerinden (ya da alpha ön sürümleri için bir Tideclaw alpha dalından) erişilebildiğini doğrulayın. pnpm plugins:sync:checköğesini çalıştırın.Plugin NPM Releaseöğesinipublish_scope=all-publishableveref=<release-sha>ile tetikleyin.Plugin ClawHub Releaseöğesini aynı kapsam ve SHA ile tetikleyin.- Kaydedilen
full_release_validation_run_idve tam çalıştırma denemesi doğrulandıktan sonraOpenClaw NPM Releaseöğesini sürüm etiketi, npm dist-tag ve kaydedilmişpreflight_run_idile tetikleyin. - Kararlı sürümler için GitHub sürümünü taslak olarak oluşturun veya güncelleyin,
Windows Node Releaseöğesini açıkwindows_node_tagve aday tarafından onaylanmışwindows_node_installer_digestsile tetikleyin ve standart Windows yükleyici/sağlama toplamı varlıklarını doğrulayın. Ayrıca tam etikete ait imzalı APK'yı, sağlama toplamını ve köken bilgisini oluşturmak içinAndroid Releaseöğesini tetikleyin. Taslağı yayımlamadan önce her iki yerel varlık sözleşmesini de doğrulayın.
Beta yayımlama örneği:
gh workflow run openclaw-release-publish.yml \ --ref main \ -f tag=vYYYY.M.PATCH-beta.N \ -f preflight_run_id=<successful-openclaw-npm-preflight-run-id> \ -f full_release_validation_run_id=<successful-full-release-validation-run-id> \ -f full_release_validation_run_attempt=<successful-full-release-validation-run-attempt> \ -f npm_dist_tag=betaVarsayılan beta dist-tag değerine kararlı sürüm yayımlama:
gh workflow run openclaw-release-publish.yml \ --ref main \ -f tag=vYYYY.M.PATCH \ -f windows_node_tag=vX.Y.Z \ -f windows_node_installer_digests='{"OpenClawCompanion-Setup-x64.exe":"sha256:<approved-x64-sha256>","OpenClawCompanion-Setup-arm64.exe":"sha256:<approved-arm64-sha256>"}' \ -f preflight_run_id=<successful-openclaw-npm-preflight-run-id> \ -f full_release_validation_run_id=<successful-full-release-validation-run-id> \ -f full_release_validation_run_attempt=<successful-full-release-validation-run-attempt> \ -f npm_dist_tag=betaDoğrudan latest sürümüne kararlı yükseltme açıkça belirtilmelidir:
gh workflow run openclaw-release-publish.yml \ --ref main \ -f tag=vYYYY.M.PATCH \ -f windows_node_tag=vX.Y.Z \ -f windows_node_installer_digests='{"OpenClawCompanion-Setup-x64.exe":"sha256:<approved-x64-sha256>","OpenClawCompanion-Setup-arm64.exe":"sha256:<approved-arm64-sha256>"}' \ -f preflight_run_id=<successful-openclaw-npm-preflight-run-id> \ -f full_release_validation_run_id=<successful-full-release-validation-run-id> \ -f full_release_validation_run_attempt=<successful-full-release-validation-run-attempt> \ -f npm_dist_tag=latestAlt düzey Plugin NPM Release ve Plugin ClawHub Release iş akışlarını yalnızca odaklı onarım veya yeniden yayımlama çalışmaları için kullanın. OpenClaw Release Publish, publish_openclaw_npm=true olduğunda plugin_publish_scope=selected öğesini reddeder; böylece çekirdek paket, @openclaw/diffs-language-pack dahil yayımlanabilir tüm resmî pluginler olmadan yayımlanamaz. Seçili bir plugin onarımı için publish_openclaw_npm=false değerini plugin_publish_scope=selected ve plugins=@openclaw/name ile ayarlayın veya alt iş akışını doğrudan tetikleyin.
İlk yayımlama ClawHub önyüklemesi istisnadır: Plugin ClawHub New öğesini
güvenilir main üzerinden tetikleyin ve hedef sürümün tam SHA değerini ref aracılığıyla geçirin.
Önyükleme iş akışının kendisini hiçbir zaman sürüm etiketi veya dalından çalıştırmayın:
gh workflow run plugin-clawhub-new.yml \ --ref main \ -f plugins=@openclaw/name \ -f ref=<full-40-character-release-sha> \ -f pretag_validation=true \ -f dry_run=trueEtiket öncesi doğrulama dry_run=true gerektirir, sürüm etiketi ve üst çalıştırma
girdilerini reddeder ve yalnızca main veya release/* üzerinden erişilebilen tam bir hedefi kabul eder.
ClawHub kimlik bilgilerini yüklemez, paket baytlarını yayımlamaz veya güvenilir
yayımcı yapılandırmasını değiştirmez. İş akışı yine de canlı kayıt defteri planını çözümler,
hedefi yalnızca secretsız bir işte teslim alıp paketler, kilitli ClawHub araç zincirini
hazırlar ve sürüm etiketi mevcut olmadan önce değişmez yapıyı ve paket
slug/kimliğini doğrular. clawhub-plugin-bootstrap ortamını yalnızca secretsız paketleme işleri
tamamlandıktan sonra onaylayın; bu korumalı doğrulama işi kimlik bilgileri veya değişiklik komutları içermez.
Onaylanmış bir deneme çalıştırması veya etiketleme sonrasında gerçek önyükleme, tam
sürüm etiketinin yanı sıra üst OpenClaw Release Publish çalıştırma kimliğini, denemesini ve
dalını içermelidir. Üst öğe, kendi iş akışı SHA değerini ve Plugin ClawHub New için ayrı bir tam güvenilir
main SHA değerini doğrular; alt çalıştırma ve korumalı
ortam onaylarının tümü bu onaylanmış alt SHA değeriyle eşleşmelidir. Sürüm etiketi,
her yayımlama denemesi ve güvenilir yayımcı değişikliği öncesinde yeniden denetlenir.
Paketleme işi;
adı, Actions yapı kimliği/özeti, üretici çalıştırması/denemesi, hedef SHA değeri ve paket başına tarball SHA-256/boyutu
doğrulama ve korumalı işlere taşınan tek bir değişmez yapı
yükler. Korumalı iş yalnızca güvenilir main
araçlarını teslim alır, yapı demetini GitHub API üzerinden doğrular, tam yapı kimliğine
göre indirir, her tarball dosyasının hash değerini yeniden hesaplar ve sabitlenmiş CLI'nin USTAR standartlaştırma kurallarıyla yerel TAR yollarını ve
paket kimliğini doğrular. Ardından her aday, kayıt defteri
araması veya kimlik doğrulamasından önce dönen, sabitlenmiş CLI yayımlama deneme çalıştırmasından geçer. Kimlik bilgisi işi ön filtresi, sıkıştırılmış ClawPack dosyalarını
120 MiB, toplam dosya yükünü 50 MiB, genişletilmiş TAR verisini 64 MiB ve
TAR girdi sayısını 10,000 ile sınırlar. Mevcut paketlerin güvenilir yayımcı onarımı yalnızca
yapılandırma olarak kalır; ancak yine de hedefi paketler ve güvenilir yayımcı
yapılandırmasını değiştirmeden önce istenen etiketin yanı sıra kayıt defterindeki baytların ve meta verilerin tam eşitliğini gerektirir.
Yayımlama sonrası doğrulama, ClawHub yapısını indirir ve
aynı SHA-256 ile boyutu gerektirir. Başarısız işleri yeniden çalıştırarak yapılan kurtarma, yalnızca tam üretici işi
başarıyla tamamlandıysa önceki bir denemenin paket yapısını yeniden kullanabilir.
Nihai kanıt ayrıca kilitli ClawHub sürümünü, kilit
SHA-256 değerini ve npm bütünlüğünü bağlar. Eşleşmeme durumunda yeni bir paket sürümü gerekir.
NPM iş akışı girdileri
OpenClaw NPM Release şu operatör denetimli girdileri kabul eder:
tag:v2026.4.2,v2026.4.2-1,v2026.4.2-beta.1veyav2026.4.2-alpha.1gibi gerekli sürüm etiketi;preflight_only=trueolduğunda, yalnızca doğrulama amaçlı ön kontrol için mevcut tam 40 karakterli iş akışı dalı commit SHA değeri de olabilirpreflight_only: yalnızca doğrulama/derleme/paketleme içintrue, gerçek yayımlama yolu içinfalsepreflight_run_id: mevcut başarılı ön kontrol çalıştırma kimliği; iş akışının tarball dosyasını yeniden oluşturmak yerine hazırlanmış olanı yeniden kullanması için gerçek yayımlama yolunda gereklidirfull_release_validation_run_id: bu etiket/SHA için başarılıFull Release Validationçalıştırma kimliği; gerçek yayımlama için gereklidir. Beta yayımlamaları yalnızca ön kontrol ile bir uyarı eşliğinde ilerleyebilir, ancak kararlı/latestyükseltmesi yine de bunu gerektirir.full_release_validation_run_attempt:full_release_validation_run_idile eşleştirilmiş tam pozitif çalıştırma denemesi; yeniden çalıştırmaların yayımlama sırasında yetkilendirme kanıtını değiştirememesi için çalıştırma kimliği verildiğinde zorunludur.release_publish_run_id: onaylanmışOpenClaw Release Publishçalıştırma kimliği; bu iş akışı söz konusu üst öğe tarafından tetiklendiğinde gereklidir (bot aktörünün gerçek yayımlama çağrıları)plugin_npm_run_id: başarılı tam HEADPlugin NPM Releaseçalıştırma kimliği; gerçek birextended-stableçekirdek yayımlaması için gereklidirnpm_dist_tag: yayımlama yolunun npm hedef etiketi;alpha,beta,latestveyaextended-stabledeğerlerini kabul eder ve varsayılan olarakbetakullanır. Nihai yama33ve sonrakilerextended-stablekullanmalıdır; varsayılan olarakextended-stableönceki yamaları reddeder ve nihai olmayan etiketleri her zaman reddeder.bypass_extended_stable_guard: yalnızca test amaçlı boolean, varsayılanfalse;npm_dist_tag=extended-stableile sürüm kimliği, yapı, onay ve geri okuma denetimlerini korurken aylık extended-stable uygunluğunu atlar.
Plugin NPM Release, mevcut sürüm
davranışı için npm_dist_tag=default veya korumalı aylık yol için npm_dist_tag=extended-stable kabul eder. extended-stable seçeneği publish_scope=all-publishable, boş bir
plugins girdisi, 33 veya üzerinde nihai bir yama ve tam ucundaki standart
extended-stable/YYYY.M.33 dalını gerektirir. Plugin
latest veya beta etiketlerini hiçbir zaman taşımaz. Yeni paket sürümleri extended-stable değerini OIDC güvenilir yayını (npm publish --tag extended-stable) aracılığıyla atomik olarak
alır; bu kaynak iş akışı token ile kimlik doğrulamalı npm dist-tag add kullanmaz. Yeniden denemeler
npm'de zaten bulunan tam sürümleri atlar, ardından tam
geri okuma her bir tam paketin ve extended-stable etiketinin yakınsadığını doğrulamadığı sürece kapalı biçimde başarısız olur.
OpenClaw Release Publish şu operatör denetimli girdileri kabul eder:
tag: gerekli sürüm etiketi; zaten mevcut olmalıdırpreflight_run_id: başarılıOpenClaw NPM Releaseön kontrol çalıştırma kimliği;publish_openclaw_npm=trueveyaplugin_publish_scope=all-publishableolduğunda gereklidirfull_release_validation_run_id: başarılıFull Release Validationçalıştırma kimliği;publish_openclaw_npm=trueveyaplugin_publish_scope=all-publishableolduğunda gereklidirfull_release_validation_run_attempt:full_release_validation_run_idile eşleştirilmiş tam pozitif deneme; çalıştırma kimliği verildiğinde zorunludurwindows_node_tag: tam ön sürüm olmayanopenclaw/openclaw-windows-nodesürüm etiketi; kararlı OpenClaw yayımlaması için gereklidirwindows_node_installer_digests: mevcut Windows yükleyici adlarını sabitlenmişsha256:özetleriyle eşleyen, aday tarafından onaylanmış kompakt JSON eşlemesi; kararlı OpenClaw yayımlaması için gereklidirnpm_telegram_run_id: nihai sürüm kanıtına dahil edilecek isteğe bağlı başarılıNPM Telegram Beta E2Eçalıştırma kimliğinpm_dist_tag: OpenClaw paketinin npm hedef etiketi;alpha,betaveyalatestdeğerlerinden biriplugin_publish_scope: varsayılan olarakall-publishable;selecteddeğerini yalnızcapublish_openclaw_npm=falseile odaklı ve yalnızca plugine yönelik onarım çalışmalarında kullanınplugins:plugin_publish_scope=selectedolduğunda virgülle ayrılmış@openclaw/*paket adlarıpublish_openclaw_npm: varsayılan olaraktrue; yalnızca iş akışını sadece plugine yönelik bir onarım orkestratörü olarak kullanırkenfalsedeğerini ayarlayınrelease_profile: sürüm kanıtı özetleri için kullanılan sürüm kapsam profili; varsayılan olarak doğrulama bildiriminden okuyanfrom-validationkullanılır veyabeta,stableya dafullile geçersiz kılınırwait_for_clawhub: npm kullanılabilirliğinin ClawHub yan bileşeni tarafından engellenmemesi için varsayılan olarakfalse; yalnızca iş akışının tamamlanmasının ClawHub'ın tamamlanmasını da içermesi gerektiğindetruedeğerini ayarlayın
OpenClaw Release Checks şu operatör denetimli girdileri kabul eder:
ref: doğrulanacak dal, etiket veya tam commit SHA'sı. Gizli bilgi içeren denetimler, çözümlenen commit'in bir OpenClaw dalından veya sürüm etiketinden erişilebilir olmasını gerektirir.run_release_soak: beta sürüm denetimleri için kapsamlı canlı/E2E, Docker sürüm yolu ve tüm sürümlerden yükseltmede ayakta kalma dayanıklılık testlerini etkinleştirir.release_profile=stableverelease_profile=fulltarafından zorunlu olarak etkinleştirilir.
Kurallar:
- Yama
33altındaki normal nihai ve düzeltme sürümleri,betaveyalatesthedeflerinden birinde yayımlanabilir. Yama33veya üzerindeki nihai sürümlerextended-stablehedefinde yayımlanmalıdır ve bu sınırdaki düzeltme son ekli sürümler reddedilir. - Beta ön sürüm etiketleri yalnızca
betahedefinde; alfa ön sürüm etiketleri yalnızcaalphahedefinde 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, ön kontrolde kullanılan
npm_dist_tagile aynı değeri kullanmalıdır; iş akışı, yayımlama devam etmeden önce bu meta verileri doğrular
Normal beta/en son kararlı sürüm sırası
Bu eski sıra; Pluginler, GitHub Release, Windows ve diğer platform çalışmalarını da yöneten normal düzenlenmiş sürüm içindir. Bu sayfanın üst kısmında belgelenen aylık .33+ Gateway genişletilmiş kararlı sürüm yolu değildir.
Normal bir düzenlenmiş kararlı sürüm hazırlanırken:
OpenClaw NPM Releasekomutunupreflight_only=trueile çalıştırın. Bir etiket mevcut olmadan önce, ön kontrol iş akışının yalnızca doğrulama amaçlı deneme çalıştırması için geçerli tam iş akışı dalı commit SHA'sını kullanabilirsiniz.- Normal, önce beta akışı için
npm_dist_tag=betaseçeneğini; yalnızca bilinçli olarak doğrudan kararlı yayımlama istediğinizdelatestseçeneğini belirleyin. - Tek bir manuel iş akışından normal CI ile birlikte canlı istem önbelleği, Docker, QA Lab, Matrix ve Telegram kapsamı istediğinizde sürüm dalı, sürüm etiketi veya tam commit SHA'sı üzerinde
Full Release Validationkomutunu çalıştırın. Bilinçli olarak yalnızca deterministik normal test grafiğine ihtiyacınız varsa bunun yerine sürüm referansında manuelCIiş akışını çalıştırın. - İmzalı x64 ve ARM64 yükleyicileri dağıtılacak olan, ön sürüm niteliğinde olmayan tam
openclaw/openclaw-windows-nodesürüm etiketini seçin. Bunuwindows_node_tagolarak, doğrulanmış özet eşlemelerini isewindows_node_installer_digestsolarak kaydedin. Sürüm adayı yardımcısı her ikisini de kaydeder ve oluşturduğu yayımlama komutuna ekler. - Başarılı
preflight_run_id,full_release_validation_run_idve tamfull_release_validation_run_attemptdeğerlerini kaydedin. OpenClaw Release Publishkomutunu güvenilirmainüzerinden aynıtag, aynınpm_dist_tag, seçilenwindows_node_tag, bunun kaydedilmişwindows_node_installer_digestsdeğeri, kaydedilmişpreflight_run_id,full_release_validation_run_idvefull_release_validation_run_attemptile çalıştırın. OpenClaw npm paketini yükseltmeden önce dışsallaştırılmış Pluginleri npm ve ClawHub'da yayımlar.- Sürüm
betaüzerinde yayımlandıysa bu kararlı sürümübetaüzerindenlatesthedefine yükseltmek içinopenclaw/releases/.github/workflows/openclaw-npm-dist-tags.ymliş akışını kullanın. - Sürüm bilinçli olarak doğrudan
latesthedefinde yayımlandıysa vebetaaynı kararlı derlemeyi hemen izlemeliyse her iki dist-tag'i de kararlı sürüme yönlendirmek için aynı sürüm iş akışını kullanın veya zamanlanmış kendi kendini onarma eşitlemesininbetadeğerini daha sonra taşımasına izin verin.
Dist-tag değişikliği, hâlâ NPM_TOKEN gerektirdiğinden sürüm kayıt deposunda bulunurken kaynak deposu yalnızca OIDC ile yayımlamayı sürdürür. Böylece hem doğrudan yayımlama yolu hem de önce beta yükseltme yolu belgelenmiş ve operatörler tarafından görülebilir kalır.
Bir bakım sorumlusunun yerel npm kimlik doğrulamasına geri dönmesi gerekirse tüm 1Password CLI (op) komutlarını yalnızca özel bir tmux oturumu içinde çalıştırın. op komutunu doğrudan ana ajan kabuğundan çağırmayın; bunu tmux içinde tutmak istemlerin, uyarıların ve OTP işlemenin gözlemlenebilmesini sağlar ve yinelenen ana makine 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.yml.github/workflows/docker-release.ymlscripts/resolve-openclaw-package-candidate.mjsscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
Bakım sorumluları gerçek çalışma kılavuzu için openclaw/maintainers/release/README.md içindeki özel sürüm belgelerini kullanır.