Release and CI
Sürüm politikası
OpenClaw şu anda kullanıcılara yönelik üç güncelleme kanalı sunar:
- stable: ayrı CLI/kanal dönüm noktası tamamlanana kadar npm
latestüzerinden çözümlenmeye devam eden mevcut yükseltilmiş sürüm kanalı - beta: npm
betaetiketiyle yayımlanan ön sürüm etiketleri - dev:
maindalının sürekli değişen en güncel ucu
Buna ek olarak sürüm operatörleri, tamamlanan son aya ait çekirdek paketi 33 yamasından başlayarak npm extended-stable etiketiyle yayımlayabilir. İçinde bulunulan ayın normal nihai sürüm hattı npm latest üzerinde devam eder; operatör tarafındaki bu yayımlama ayrımı tek başına CLI güncelleme kanalı çözümlemesini değiştirmez.
Tideclaw alfa derlemeleri ayrı bir dahili ön sürüm hattıdır (npm dağıtım etiketi alpha) ve NPM iş akışı girdileri ile Sürüm test kutuları bölümlerinde ele alınır.
Sürüm adlandırması
- Aylık npm extended-stable sürüm sürümü:
YYYY.M.PATCH;PATCH >= 33, git etiketivYYYY.M.PATCH - Günlük/normal nihai sürüm sürümü:
YYYY.M.PATCH;PATCH < 33, git etiketivYYYY.M.PATCH - Normal geri dönüş düzeltme sürümü:
YYYY.M.PATCH-N, git etiketivYYYY.M.PATCH-N - Beta ön sürüm sürümü:
YYYY.M.PATCH-beta.N, git etiketivYYYY.M.PATCH-beta.N - Alfa ön sürüm sürümü:
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 doldurmayın
PATCH, takvim günü değil, aylık sürüm hattının sıralı numarasıdır. Normal nihai ve beta sürümleri mevcut hattı ilerletir; yalnızca alfa etiketleri beta/normal yama numarasını hiçbir zaman tüketmez veya ilerletmez. Bu nedenle beta ya da normal bir hat seçerken daha yüksek yama numaralarına sahip eski yalnızca alfa etiketlerini yok sayın.- Alfa/gecelik derlemeler bir sonraki yayımlanmamış yama hattını kullanır ve yinelenen derlemelerde yalnızca
alpha.Ndeğerini artırır. Bu yama için bir beta yayımlandığı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 sonraki ön sürüm numarasını ya da sonraki aylık yamayı oluşturun.
latest, mevcut normal/günlük npm hattını izlemeye devam eder;beta, mevcut beta kurulum hedefidirextended-stable,33yamasından başlayan, desteklenen önceki aya ait npm paketi 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
betaetiketiyle yayımlanır; sürüm operatörleri açıkçalatesthedefini belirleyebilir veya incelenmiş bir beta derlemesini daha sonra yükseltebilir - Özel aylık extended-stable yolu, çekirdek npm paketini ve npm üzerinden yayımlanabilen tüm resmî plugin'leri tamamen aynı sürümle yayımlar. Plugin'leri ClawHub'a, macOS veya Windows yapıtlarını, GitHub Release'i, özel depo dağıtım etiketlerini, Docker görüntülerini, mobil yapıtları ya da web sitesi indirmelerini yayımlamaz.
- 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 sunar. Beta sürümleri normalde önce npm/paket yolunu doğrular ve yayımlar; yerel uygulama derleme/imzalama/noter onayı/yükseltme işlemleri, açıkça istenmedikçe normal nihai sürüme ayrılır.
Sürüm sıklığı
- Sürümler önce beta olarak ilerler; stable yalnızca en son beta doğrulandıktan sonra gelir
- Bakımcılar sürümleri normalde mevcut
maindalından oluşturulan birrelease/YYYY.M.PATCHdalından çıkarır; böylece sürüm doğrulaması ve düzeltmelermainüzerindeki yeni geliştirmeleri engellemez - 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 açıktır
Yalnızca npm için aylık extended-stable yayımlaması
Bu, aşağıdaki normal sürüm prosedürüne özel bir istisnadır. Tamamlanmış bir YYYY.M ayı için extended-stable/YYYY.M.33 dalını oluşturun; vYYYY.M.33 sürümünü ve sonraki bakım yamalarını aynı daldan yayımlayın. Sürüm etiketi, dal ucu, çalışma kopyası, paket sürümü, npm ön kontrolü ve Tam Sürüm Doğrulama çalıştırması aynı commit'i göstermelidir. Korumalı main, hâlihazırda yaması 33 değerinden küçük ve takvim açısından kesinlikle daha sonraki bir aya ait nihai sürümü içermelidir; bakım yamaları main bir aydan daha fazla ilerledikten sonra da uygunluğunu korur.
Tam olarak extended-stable dalında kök paket sürümünü YYYY.M.P olarak yükseltin, pnpm release:prep komutunu çalıştırın ve yayımlanabilir her uzantı paketinin aynı sürüme sahip olduğunu doğrulayın. Oluşturulan tüm değişiklikleri commit edip gönderin, değiştirilemez vYYYY.M.P etiketini bu commit'te oluşturup gönderin ve ortaya çıkan tam SHA'yı kaydedin. İş akışları bu hazırlanmış ağacı kullanır; sürümleri sizin yerinize yükseltmez veya eşitlemez.
npm ön kontrolünü ve Tam Sürüm Doğrulamasını tam olarak bu hazırlanmış dal ucundan çalıştırın, ardından her iki çalıştırma kimliğini ve başarılı Tam Sürüm Doğrulama çalıştırma denemesini kaydedin:
gh workflow run openclaw-npm-release.yml \ --ref extended-stable/YYYY.M.33 \ -f tag=vYYYY.M.P \ -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=stablerelease_profile=stable, mevcut doğrulama derinliği profilidir; npm extended-stable dağıtım etiketinden ayrıdır ve kasıtlı olarak değiştirilmemiştir.
Her iki çalıştırma da başarılı olduktan sonra npm üzerinden yayımlanabilen tüm resmî plugin'leri tam olarak aynı dal ucundan yayımlayın. P yaması 33 veya daha büyük olmalıdır. Tam sürüm SHA'sını ref olarak iletin, tüm matrisin tamamlanmasını ve kayıt defterinden geri okumayı bekleyin, ardından başarılı Plugin NPM Release ç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ışı, kaynakları değişmemiş paketler dâhil olmak üzere normal hazırlanmış all-publishable paket envanterini kullanır. Başarılı olmadan önce her tam paketi ve her plugin'in extended-stable etiketini doğrular. Kısmi bir çalıştırma başarısız olursa aynı komutu yeniden çalıştırın: daha önce yayımlanmış paketler yeniden kullanılır, eksik veya güncelliğini yitirmiş plugin etiketleri npm sürüm ortamında uzlaştırılır ve son geri okuma yine tüm paket kümesini kapsar.
Plugin iş akışı başarılı olduktan ve npm sürüm ortamı hazır olduğunda tam çekirdek ön kontrol tarball'unu yayımlayın. Çekirdek yayımlaması, başvurulan plugin çalıştırmasının aynı standart dalda ve tam kaynak SHA'sında completed/success olduğunu doğrular:
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>Aylık .33 veya korumalı main ay politikasını kasıtlı olarak karşılayamayan bir çatallama ya da üretim dışı prova için hem npm ön kontrolü hem de yayımlama tetiklemelerine -f bypass_extended_stable_guard=true ekleyin. Varsayılan değer false şeklindedir. Atlatma yalnızca npm_dist_tag=extended-stable ile kabul edilir ve iş akışı özetine kaydedilir. Standart extended-stable/YYYY.M.33 iş akışı başvurusunu, dal ucu/etiket/çalışma kopyası eşitliğini, nihai etiket söz dizimini, paket/etiket sürümü eşitliğini, başvurulan çalıştırma ve bildirim kimliğini, tarball kaynağını, ortam onayını, kayıt defteri geri okumasını veya seçici onarımı kanıtını atlatmaz.
Yayımlama iş akışı; başvurulan ön kontrol, doğrulama ve plugin çalıştırma kimliklerini, hazırlanmış tarball özetini ve çekirdek kayıt defteri seçicilerini doğrular. İş akışı başarılı olduktan sonra sonucu bağımsız olarak doğrulayın:
npm view openclaw@YYYY.M.P version --userconfig "$(mktemp)"npm view openclaw@extended-stable version --userconfig "$(mktemp)"Her iki komut da YYYY.M.P döndürmelidir. Yayımlama başarılı olur ancak seçici geri okuması başarısız olursa değiştirilemez paket sürümünü yeniden yayımlamayın. Başarısız iş akışının her zaman çalışan özetinde yazdırılan tek npm dist-tag add openclaw@YYYY.M.P extended-stable onarım komutunu kullanın, ardından her iki bağımsız geri okumayı tekrarlayın. Önceki seçiciye geri dönmek ayrı bir operatör kararıdır; geri okuma onarım yolu değildir.
Herkese açık destek belgeleri başlangıçta Slack, Discord ve Codex'i kapsanan extended-stable plugin yüzeyleri olarak belirtir. Bu liste bir destek beyanıdır, sürüm kodu izin listesi değildir: npm üzerinden yayımlanabilen tüm resmî plugin'ler tamamen aynı sürümlü yayımlama yolunu izler.
Aşağıdaki normal kontrol listesi beta, latest, GitHub Release, plugin'ler, macOS, Windows ve diğer platform yayımlamalarını yönetmeye devam eder. Yalnızca npm için olan bu extended-stable yolunda 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 onayı, dağıtım etiketi kurtarma ve acil geri alma ayrıntıları yalnızca bakımcılara açık sürüm çalışma kitabında tutulur.
-
Güncel
maindalından başlayın: en son değişiklikleri çekin, hedef commit'in gönderildiğini doğrulayın vemainCI durumunun dal oluşturmak için yeterince başarılı olduğunu doğrulayın. -
En üstteki
CHANGELOG.mdbölümünü, son erişilebilir sürüm etiketinden bu yana birleştirilen PR'lerden ve tüm doğrudan commit'lerden oluşturun. Girdileri kullanıcıya yönelik tutun, birbiriyle örtüşen PR/doğrudan commit girdilerini tekilleştirin, commit edip gönderin ve dal oluşturmadan önce bir kez daha rebase yapın/değişiklikleri çekin. Farklılaşmış yayımlanmış bir etiket veya daha sonraki bir ileri taşıma, zaten yayımlanmış PR'leri yeniden ilişkilendirdiğinde bu etiketi--shipped-refolarak açıkça iletin; doğrulayıcı, etiket anlık görüntüsünün numaralı bölümlerindeki eksiksiz katkı kayıtlarında bulunan açık PR satırlarını kullanır,Unreleasedbölümünü yok sayar ve hariç tutulan PR'lerin tam envanterini ve sayısını kaydeder. -
src/plugins/compat/registry.tsvesrc/commands/doctor/shared/deprecation-compat.tsiçindeki sürüm uyumluluğu kayıtlarını inceleyin. Süresi dolmuş uyumluluğu yalnızca yükseltme yolu kapsanmaya devam ediyorsa kaldırın veya neden bilinçli olarak korunduğunu kaydedin. -
Güncel
maindalındanrelease/YYYY.M.PATCHoluşturun. Normal sürüm çalışmalarını doğrudanmainüzerinde yapmayın. -
Etiket için gerekli tüm sürüm konumlarını yükseltin, ardından
pnpm release:prepkomutunu çalıştırın. Bu komut sırasıyla Plugin sürümlerini, npm shrinkwrap dosyalarını, Plugin envanterini, temel yapılandırma şemasını, paketlenmiş kanal yapılandırma meta verilerini, yapılandırma belgeleri temelini, Plugin SDK dışa aktarımlarını ve Plugin SDK API temelini yeniler. Etiketlemeden önce oluşturulan tüm sapmaları commit edin, ardından yerel deterministik ön kontrolü çalıştırın:pnpm check:test-types,pnpm check:architecture,pnpm build && pnpm ui:buildvepnpm release:check. -
OpenClaw NPM Releaseiş akışınıpreflight_only=trueile çalıştırın. Henüz bir etiket yokken yalnızca doğrulama amaçlı ön kontrol için 40 karakterlik tam sürüm dalı SHA'sına izin verilir. Ön kontrol, kullanıma alınmış tam bağımlılık grafiği için bağımlılık sürüm kanıtı oluşturur ve bunu npm ön kontrol yapıtında saklar. Başarılıpreflight_run_iddeğerini kaydedin. -
Sürüm öncesi tüm testleri sürüm dalı, etiket veya tam commit SHA'sı için
Full Release Validationile başlatın. Bu, dört büyük sürüm test kutusunun tek manuel giriş noktasıdır: Vitest, Docker, QA Lab ve Paket.full_release_validation_run_iddeğerini ve tamfull_release_validation_run_attemptdeğerini kaydedin; her ikisi deOpenClaw NPM ReleaseveOpenClaw Release Publishiçin zorunlu girdilerdir. -
Doğrulama başarısız olursa sürüm dalında düzeltin ve düzeltmeyi kanıtlayan en küçük başarısız dosyayı, hattı, iş akışı görevini, paket profilini, sağlayıcıyı veya model izin listesini yeniden çalıştırın. Tam kapsayıcı iş akışını yalnızca değiştirilen yüzey önceki kanıtları geçersiz kıldığında yeniden çalıştırın.
-
Etiketlenmiş bir beta adayı için eşleşen
release/YYYY.M.PATCHdalındanpnpm release:candidate -- --tag vYYYY.M.PATCH-beta.Nkomutunu çalıştırın. Kararlı sürüm için gerekli Windows kaynak sürümünü de iletin:pnpm release:candidate -- --tag vYYYY.M.PATCH --windows-node-tag vX.Y.Z. Yardımcı, iş akışı kaynağı olarak güvenilirmaindalını kullanırken her iş akışı tam etiketi hedefler. Değişmez aday/araç kimliğini ve başlatılan çalışma kimliklerini.artifacts/release-candidate/<tag>/release-candidate-state.jsoniçinde kontrol noktası olarak kaydeder; aynı komutun yeniden çalıştırılması bu tam çalışmaları sürdürürken aday, araç, profil veya seçeneklerdeki herhangi bir sapma güvenli biçimde başarısız olur. Yardımcı, tam doğrulama matrisini başlatmadan önce tam etiketin GitHub sürüm gövdesini deterministik olarak oluşturur ve eksik sürüm başlığını, kurallı sıkıştırılmış biçimi kullanamayan sınır aşımı bir gövdeyi veya etiketten erişilemeyen katkı kaydı temel/hedef kökenini reddeder. Ayrıca açıkça belirtilen tüm yayımlanmış temel hariç tutma meta verilerini, başvurulan birikimli etiket kayıtlarına göre doğrular. Ardından yerel oluşturulmuş sürüm kontrollerini çalıştırır; tam sürüm doğrulamasını ve npm ön kontrol kanıtını başlatır veya doğrular; tam hazırlanmış tarball üzerinde Parallels temiz kurulum/güncelleme kanıtını ve Telegram paket kanıtını çalıştırır; Plugin npm ve ClawHub planlarını kaydeder ve yalnızca kanıt paketi başarılı olduğunda tamOpenClaw Release Publishkomutunu yazdırır.OpenClaw Release Publish, seçilen veya yayımlanabilir tüm Plugin paketlerini npm'e ve aynı kümeyi paralel olarak ClawHub'a gönderir; ardından Plugin npm yayımı başarılı olduğunda hazırlanmış OpenClaw npm ön kontrol yapıtını eşleşen dist-tag ile yükseltir. Sürüm çalışma kopyası ü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 güvenilir iş akışı kaynağı çalışma kopyasından yürütülür. Herhangi bir alt yayım başlamadan önce tam GitHub sürüm gövdesini oluşturup önbelleğe alır. Eşleşen eksiksizCHANGELOG.mdbölümü GitHub'ın 125.000 karakterlik sınırına ve oluşturucunun eşleşen 125.000 baytlık güvenlik tavanına sığdığında sayfa, başlığı dâhil olmak üzere tam## YYYY.M.PATCHbölümünü içerir. Kaynak bölüm sığmadığında sayfa, gruplandırılmış editoryal notları eksiksiz korur ve fazla 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ışı,### Sürüm doğrulamasıbölümünü eklemeden önce tam veya sıkıştırılmış gövdeyi seçer; kanıt son bölümü sınırı aşacaksa kurallı gövdeyi korur ve bunun yerine değişmez ekli kanıta dayanır. npmlatestetiketiyle yayımlanan kararlı sürümler GitHub'ın en son sürümü olurken npmbetaetiketinde 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 bildirimini ve yayım 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ışı belirtecinin onaylamasına izin verilen sürüm ortamı geçitlerini otomatik olarak onaylar, başarısız alt görevleri günlük sonlarıyla özetler, taslak GitHub sürüm sayfasını en başta oluşturur ve Windows ile Android yapıtlarını OpenClaw npm yayımıyla eşzamanlı olarak yükseltir, bu aşamalar başarılı olduğunda sürüm sayfasını ve bağımlılık kanıtını tamamlar, OpenClaw npm yayımlanıyorsa ClawHub'ı bekler, ardından güvenilirmainbeta doğrulayıcısını çalıştırır ve GitHub sürümü, npm paketi, seçili Plugin npm paketleri, seçili ClawHub paketleri, alt iş akışı çalışma kimlikleri ve isteğe bağlı NPM Telegram çalışma kimliği için yayım sonrası kanıtı yükler. ClawHub başlangıç doğrulayıcısı; tam güvenilirmainiş akışı yolunu ve SHA'sını, üretici ve sonlandırıcı çalışma denemelerini, sürüm SHA'sını, istenen paket kümesini, değişmez paket yapıtı demetini ve son kayıt defteri geri okuma yapıtını gerektirir; başarılı bir eski sürüm referansı çalışması kabul edilmez.Ardından yayımlanan
openclaw@YYYY.M.PATCH-beta.Nveyaopenclaw@betapaketine karşı yayım sonrası paket kabul testini çalıştırın. Gönderilmiş veya yayımlanmış bir ön sürümün düzeltilmesi gerekiyorsa eşleşen bir sonraki ön sürüm numarasını oluşturun; eskisini hiçbir zaman silmeyin veya yeniden yazmayın. -
Kararlı sürüm için yalnızca incelenip onaylanmış beta veya sürüm adayı gerekli doğrulama kanıtına sahip olduktan sonra devam edin. Kararlı npm yayımı 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.zipve güncellenmişappcast.xmldosyalarınınmainüzerinde bulunmasını gerektirir; macOS yayım iş akışı, sürüm yapıtları doğrulandıktan sonra imzalanmış appcast'i otomatik olarak herkese açıkmaindalında yayımlar veya dal koruması doğrudan göndermeyi engelliyorsa bir appcast PR'si açar/günceller. Kararlı Windows Hub hazırlığı, imzalanmışOpenClawCompanion-Setup-x64.exe,OpenClawCompanion-Setup-arm64.exeveOpenClawCompanion-SHA256SUMS.txtyapıtlarının OpenClaw GitHub sürümünde bulunmasını gerektirir. İmzalanmışopenclaw/openclaw-windows-nodesürüm etiketiniwindows_node_tagolarak ve aday onaylı yükleyici özet eşlemesiniwindows_node_installer_digestsolarak tam biçimde iletin;OpenClaw Release Publishsürümü taslak olarak tutar,Windows Node Releaseiş akışını başlatır ve yayımlamadan önce üç yapıtın tümünü doğrular. -
Yayımdan sonra npm yayım sonrası doğrulayıcısını, yayım sonrası kanal kanıtına ihtiyacınız olduğunda isteğe bağlı bağımsız yayımlanmış npm Telegram E2E testini 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, ardından kararlı sürümün tamamlandığını belirtmeden önce Kararlı
maintamamlama işlemini bitirin.
Kararlı main tamamlama
main gerçek yayımlanmış sürüm durumunu taşımadan kararlı yayım tamamlanmış sayılmaz.
- En son değişikliklerle yenilenmiş
maindalından başlayın.release/YYYY.M.PATCHdalını buna göre denetleyin vemaindalında bulunmayan gerçek düzeltmeleri ileri taşıyın. Yalnızca sürüme özgü uyumluluk, test veya doğrulama adaptörlerini daha yenimaindalına körü körüne birleştirmeyin. maindalını varsayımsal bir sonraki sürüm dizisine değil, yayımlanmış kararlı sürüme ayarlayın. Kök sürüm değişikliğinden sonrapnpm release:prep, ardındanpnpm deps:shrinkwrap:generatekomutunu çalıştırın.mainüzerindekiCHANGELOG.mddosyasının## YYYY.M.PATCHbölümünü etiketlenmiş sürüm dalıyla tam olarak eşleştirin. macOS sürümü bir tane yayımladıysa kararlıappcast.xmlgüncellemesini de ekleyin.- Operatör bu sürüm dizisini açıkça başlatana kadar
maindalınaYYYY.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:changedkomutlarını çalıştırın. Gönderin, ardından kararlı sürümün tamamlandığını belirtmeden önceorigin/maindalının 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ımdan sonra yayımlanmış sürümü, değişiklik günlüğünü ve appcast'i taşıyan main gönderiminden başlar. Yayımlanan etiketi Full Release Validation ve Publish çalışmalarıyla ilişkilendirmek için değişmez yayım 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. Değişmez bir tamamlama bildirimini ve sağlama toplamını GitHub sürümüne ekler. Otomatik gönderim tetikleyicisi, değişmez yayım sonrası kanıttan önceki eski sürümleri atlar ve bu atlamayı hiçbir zaman tamamlanmış bir tamamlama işlemi olarak değerlendirmez.
Eksiksiz bir tamamlama hem yapıtları hem de eşleşen bir sağlama toplamını gerektirir. Kısmi bir bildirim, aynı baytları yeniden oluşturmak için kayıtlı 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 bildirimi olmayan bir sağlama toplamı engelleyici olmaya devam eder. Geri alma tatbikatı depo değişkenleri olmadan gönderimle tetiklenen bir çalışma, tamamlamayı bitirmeden atlanır; eksik veya 90 günden eski bir tatbikat kaydı da kanıta dayalı manuel tamamlamayı engellemeye devam eder. Özel kurtarma komutları yalnızca bakımcıların erişebildiği operasyon kılavuzunda kalır. Manuel başlatmayı yalnızca kanıta dayalı kararlı bir tamamlamayı onarmak veya yeniden oynatmak için kullanın.
Eski bir yedek 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 köken bilgisi ekler. Farklı kaynağa sahip 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 kapsamının daha hızlı yerel
pnpm checkkapısı dışında da korunması için sürüm ön kontrolünden öncepnpm check:test-typeskomutunu çalıştırın. -
Daha kapsamlı içe aktarma döngüsü ve mimari sınır denetimlerinin daha hızlı yerel kapının dışında da başarılı olması için sürüm ön kontrolünden önce
pnpm check:architecturekomutunu ç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:checkkomutundan öncepnpm build && pnpm ui:buildkomutunu çalıştırın. -
Kök sürüm yükseltmesinden sonra ve etiketlemeden önce
pnpm release:prepkomutunu çalıştırın. Bu komut, sürüm/yapılandırma/API değişikliğinden sonra sıkça sapma gösteren tüm deterministik sürüm oluşturucularını çalıştırır: plugin sürümleri, npm shrinkwrap dosyaları, 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ı ve plugin SDK API temel çizgisi.pnpm release:check, bu korumaları denetim modunda yeniden çalıştırır (ayrıca bir plugin SDK yüzey bütçesi denetimi yapar) ve paket sürüm denetimlerini çalıştırmadan önce oluşturulan tüm sapma 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 kalacak 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 sürüm öncesi 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; manuelCIiş akışını ve kurulum smoke testi, paket kabulü, işletim sistemleri arası paket denetimleri, QA Lab eşdeğerliği, Matrix ve Telegram hatları içinOpenClaw Release Checksiş akışını tetikler. Kararlı ve tam çalıştırmalar her zaman kapsamlı canlı/E2E testlerini ve Docker sürüm yolu dayanıklılık testini içerir;run_release_soak=true, açıkça talep edilen bir beta dayanıklılık testi için korunur. Package Acceptance, aday doğrulaması sırasında standart paket Telegram E2E testini sağlayarak eşzamanlı ikinci bir canlı yoklayıcıya gerek bırakmaz.Bir beta yayımlandıktan sonra, sürüm tarball'ını yeniden oluşturmadan yayımlanmış npm paketini sürüm denetimleri, Package Acceptance ve paket Telegram E2E genelinde yeniden kullanmak için
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. Package Acceptance'ın sürüm paket belirtiminden farklı bir yayımlanmış paket kullanması gerektiğindepackage_acceptance_package_specsağlayın. Sürüm kanıtı raporunun Telegram E2E testini zorunlu kılmadan doğrulamanın yayımlanmış bir npm paketiyle eşleştiğini kanıtlaması gerektiğindeevidence_package_specsağlayın.bash gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.PATCH -
Sürüm çalışmaları 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 numarası içinsource=npm; geçerliworkflow_reftest düzeneğiyle güvenilir birpackage_refdalını/etiketini/SHA'sını paketlemek içinsource=ref; zorunlu SHA-256 ve katı genel URL politikası olan herkese açık bir HTTPS tarball'ı içinsource=url; zorunlutrusted_source_idve SHA-256 kullanan adlandırılmış bir güvenilir kaynak politikası içinsource=trusted-url; başka bir GitHub Actions çalıştırmasının yüklediği tarball için isesource=artifactkullanın.İş akışı adayı
package-under-testolarak çözümler, Docker E2E sürüm zamanlayıcısını bu tarball ile yeniden kullanır vetelegram_mode=mock-openaiveyatelegram_mode=live-frontierile aynı tarball üzerinde Telegram QA çalıştırabilir. Seçilen Docker hatlarıpublished-upgrade-survivoriçerdiğinde paket yapıtı adaydır vepublished_upgrade_survivor_baselineyayımlanmış temel çizgiyi seçer.update-restart-auth, aday güncelleme komutunun yönetilen yeniden başlatma yolunu uygulaması için aday paketi hem kurulu CLI hem de test edilecek 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/ajan, 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 ajan temizliği, OpenAI web araması ve OpenWebUIfull: OpenWebUI içeren Docker sürüm yolu parçalarıcustom: odaklanmış bir yeniden çalıştırma için tamdocker_lanesseçimi
-
Sürüm adayı için yalnızca deterministik normal CI kapsamına ihtiyaç duyduğunuzda 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-*, oluşturulmuş yapıt smoke denetimlerini, belge denetimlerini, Python Skills testlerini, Windows, macOS ve Control UI i18n hatlarını zorunlu olarak çalıştırır. Bağımsız manuel CI çalıştırmaları Android'i yalnızcainclude_android=trueile tetiklendiğinde çalıştırır;Full Release Validation, alt CI iş akışına bu girdiyi iletir.bash gh workflow run ci.yml --ref release/YYYY.M.PATCH -f include_android=true -
Sürüm telemetrisini doğrularken
pnpm qa:otel:smokekomutunu çalıştırın. Bu komut QA-lab'i yerel bir OTLP/HTTP alıcısı üzerinden çalıştırır; Opik, Langfuse veya başka bir haricî toplayıcı gerektirmeden iz, metrik ve günlük dışa aktarımını, sınırlı iz özniteliklerini ve içerik/tanımlayıcı maskelemesini doğrular. -
Toplayıcı uyumluluğunu doğrularken
pnpm qa:otel:collector-smokekomutunu çalıştırın. Bu komut, 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 veri çekimini doğrularken
pnpm qa:prometheus:smokekomutunu çalıştırın. Bu komut QA-lab'i çalıştırır, kimliği doğrulanmamış veri çekme isteklerini 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 kod deposundaki OpenTelemetry ve Prometheus smoke hatlarını art arda çalıştırmak için
pnpm qa:observability:smokekomutunu çalıştırın. -
Etiketlenen her sürümden önce
pnpm release:checkkomutunu çalıştırın. -
OpenClaw NPM Releaseön kontrolü, npm tarball'ını paketlemeden önce bağımlılık sürüm kanıtını oluşturur. npm danışma kaydı güvenlik açığı kapısı 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şiklik raporları yalnızca sürüm kanıtıdır. Bağımlılık değişiklik raporu, sürüm adayını erişilebilen önceki sürüm etiketiyle karşılaştırır. Ön kontrol, bağımlılık kanıtınıopenclaw-release-dependency-evidence-<tag>adıyla yükler ve ayrıca hazırlanmış npm ön kontrol yapıtının içindekidependency-evidence/dizinine gömer. Gerçek yayımlama yolu bu ön kontrol yapıtını yeniden kullanır, ardından aynı kanıtı GitHub sürümüneopenclaw-<version>-dependency-evidence.zipolarak ekler. -
Etiket oluşturulduktan sonra değişiklik yapan yayımlama sırası için
OpenClaw Release Publishiş akışını çalıştırın. Normal beta ve kararlı sürümleri güvenilirmaindalından yayımlayın; sürüm etiketi yine de tam hedef commit'i seçer verelease/YYYY.M.PATCHdalını işaret edebilir. Tideclaw alfa yayımları 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; kasıtlı olarak odaklanmış bir onarım çalıştırmıyorsanız varsayılan plugin yayımlama kapsamınıall-publishableolarak koruyun. İş akışı plugin npm yayımlamasını, plugin ClawHub yayımlamasını ve OpenClaw npm yayımlamasını sıralı hâle getirir; böylece çekirdek paket, dışsallaştırılmış plugin'lerinden önce yayımlanmaz. Windows ve Android yükseltmeleri 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: iş akışı kayıt deposundaki tarball'ın etiketin ön kontrol yapıtıyla eşleştiğini kanıtladıktan sonra daha önce yayımlanmış bir çekirdek npm sürümü çekirdek tetiklemesini atlar; sürüm doğrulanmış yapıt sözleşmesini zaten içeriyorsa Windows/Android yükseltmesi de atlanır. Böylece yeniden deneme yalnızca başarısız aşamaları tekrarlar. Odaklanmış, yalnızca plugin onarımlarıplugin_publish_scope=selectedve boş olmayan bir plugin listesi gerektirir. Yalnızca plugin içerenall-publishableçalıştırmaları eksiksiz, değişmez ön kontrol ve Full Release Validation 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şlemesi gerektirir. Herhangi bir yayımlama alt iş akışını tetiklemeden önce kaynak sürümün yayımlanmış ve ön sürüm olmadığını, gerekli x64/ARM64 kurucularını içerdiğini ve hâlâ onaylanan eşlemeyle uyuştuğunu doğrular. Ardından OpenClaw sürümü hâlâ taslak durumdayken sabitlenmiş kurucu özet eşlemesini değiştirmeden taşıyarakWindows Node Releaseiş akışını tetikler. Alt iş akışı imzalı Windows Hub kurucularını tam olarak bu etiketten indirir, 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 kurucularla manifesti standart OpenClaw GitHub sürümüne yükler; ardından yükseltilen yapıtları yeniden indirerek manifest üyeliğini ve karmaları doğrular. Üst iş akışı, yayımlamadan önce geçerli 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 için manuel olarak tetikleyin ve her zaman tam bir etiket ile onaylanmış kaynak sürümden alınan açıkexpected_installer_digestsJSON eşlemesini iletin; aslalatestkullanmayın. Web sitesi indirme bağlantıları, geçerli kararlı sürümün tam OpenClaw sürüm yapıtı URL'lerini hedeflemelidir.releases/latest/download/...yalnızca GitHub'ın en son sürüm yönlendirmesinin aynı sürümü işaret ettiği doğrulandıktan sonra kullanılmalıdır; yalnızca companion deposunun 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 hattını, hızlı canlı Matrix 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. Tam Matrix taşıma, medya ve E2EE envanterini paralel olarak çalıştırmak istediğinizde manuelQA-Lab - All Lanesiş akışınımatrix_profile=allvematrix_shards=trueile çalıştırın. -
İş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 Validationsüreçlerinin bir parçasıdır. Bu ayrım bilinçlidir: gerçek npm sürüm yolunu kısa, belirlenebilir ve yapı 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/sürüm iş akışı referansından başlatılmalıdır. -
OpenClaw Release Checks, çözümlenen commit'e bir OpenClaw dalından veya sürüm etiketinden erişilebildiği sürece dal, etiket ya da tam commit SHA'sını kabul eder. -
Yalnızca doğrulama amaçlı
OpenClaw NPM Releaseön kontrolü, gönderilmiş bir etiket gerektirmeden mevcut tam 40 karakterlik iş akışı dalı commit SHA'sını da kabul eder. Bu SHA yolu yalnızca doğrulama içindir ve gerçek bir yayımlamaya yükseltilemez. SHA modunda iş akışı, yalnızca paket meta verisi kontrolü içinv<package.json version>oluşturur; 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:cachekomutunu ç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-checkkomutunu çalıştırın. Yardımcı, GitHub yayımlama iş akışı başlamadan önce yaygın onay engelleyici 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:checkkomutunu çalıştırır. -
Onaydan önce
RELEASE_TAG=vYYYY.M.PATCH node --import tsx scripts/openclaw-npm-release-check.tskomutunu (veya eşleşen ön sürüm/düzeltme etiketini) çalıştırın. -
npm yayımlamasından sonra, yayımlanan 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.PATCHkomutunu (veya eşleşen beta/düzeltme sürümünü) çalıştırın. -
Bir beta yayımlamasından sonra, paylaşılan kiralık Telegram kimlik bilgisi havuzunu kullanarak kurulu paket ilk kurulumunu, Telegram kurulumunu ve yayımlanan npm paketine karşı gerçek Telegram E2E sürecini 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-livekomutunu çalıştırın. Yerel bakım sorumlularının tek seferlik çalıştırmaları Convex değişkenlerini atlayabilir ve üçOPENCLAW_QA_TELEGRAM_*ortam kimlik bilgisini doğrudan iletebilir. -
Tam yayımlama sonrası beta hızlı kontrolünü bir bakım sorumlusu makinesinden çalıştırmak için
pnpm release:beta-smoke -- --beta betaNkomutunu kullanın. Yardımcı; Parallels npm güncelleme/yeni hedef doğrulamasını çalıştırır,NPM Telegram Beta E2Esürecini başlatır, tam iş akışı çalışmasını sorgular, yapıyı indirir ve Telegram raporunu yazdırır. -
Bakım sorumluları aynı yayımlama sonrası kontrolü manuel
NPM Telegram Beta E2Eiş akışı aracılığıyla GitHub Actions üzerinden çalıştırabilir. Bu iş akışı bilinçli olarak yalnızca manueldir ve her birleştirmede çalışmaz. -
Bakım sorumlusu sürüm otomasyonu, ön kontrol-sonra-yükselt yaklaşımını kullanır:
- Gerçek npm yayımlaması, başarılı bir npm
preflight_run_iddeğerinden geçmelidir. - Düzenli beta ve kararlı yayımlama düzenlemesi ile ön kontrol, tam hedef etikete karşı güvenilir
maindalını kullanır. Tideclaw alfa yayımlaması ve ön kontrolü, eşleşen alfa dalını kullanır. - Kararlı npm sürümleri varsayılan olarak
betaetiketini kullanır; kararlı npm yayımlaması iş akışı girdisi aracılığıyla açıkçalatestetiketini hedefleyebilir. - Belirteç tabanlı npm dağıtım etiketi değişikliği
openclaw/releases/.github/workflows/openclaw-npm-dist-tags.ymliçinde bulunur; çünkü kaynak depo yalnızca OIDC yayımlamasını korurkennpm 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 bulunuyorsa ancak iş akışımainüzerinden başlatılıyorsapublic_release_branch=release/YYYY.M.PATCHdeğerini ayarlayın. - Gerçek macOS yayımlaması başarılı macOS
preflight_run_idvevalidate_run_iddeğerlerinden geçmelidir. - Gerçek yayımlama yolları, hazırlanmış yapıları yeniden derlemek yerine 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ı, aynı geçici önek yükseltme yolunuYYYY.M.PATCHsürümündenYYYY.M.PATCH-Nsürümüne kadar da kontrol eder; böylece sürüm düzeltmeleri eski genel kurulumları sessizce temel kararlı yükte bırakamaz. -
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 güvenli biçimde başarısız olur; böylece boş bir tarayıcı panosunu tekrar yayımlamayız. -
Yayımlama sonrası doğrulama, yayımlanan 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ükleri içeren bir sürüm, yayımlama sonrası doğrulayıcıda başarısız olur ve
latestetiketine yükseltilemez. -
pnpm test:install:smoke, aday güncelleme tarball'ında npm paketininunpackedSizebütçesini de zorunlu kılar; böylece kurucu E2E, sürüm yayımlama yolundan önce kazara oluşan paket şişmesini yakalar. -
Sürüm çalışması CI planlamasına, eklenti zamanlama manifestlerine veya eklenti test matrislerine dokunduysa onaydan önce
.github/workflows/plugin-prerelease.ymldosyasındaki planlayıcının sahip olduğuplugin-prerelease-extension-shardmatris çıktılarını yeniden oluşturup inceleyin; böylece sürüm notları eski bir CI düzenini açıklamaz. -
Kararlı macOS sürüm hazırlığı, güncelleyici yüzeylerini de içerir: GitHub sürümü paketlenmiş
.zip,.dmgve.dSYM.zipdosyalarıyla tamamlanmalı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önderim engellenmişse bir appcast PR'ı açar); paketlenmiş uygulama hata ayıklama amaçlı olmayan bir paket kimliğini, boş olmayan bir Sparkle besleme URL'sini ve ilgili sürümün standart Sparkle derleme tabanına eşit veya ondan yüksek birCFBundleVersiondeğerini korumalıdır.
Sürüm test kutuları
Full Release Validation, operatörlerin tüm sürüm öncesi testleri tek bir giriş noktasından başlatma yöntemidir. Hızla ilerleyen bir dalda sabitlenmiş commit kanıtı için yardımcıyı kullanın; böylece istenen commit test edilen aday olarak kalırken her alt iş akışı, tek bir güvenilir main iş akışı SHA'sında sabitlenmiş geçici bir daldan çalışır:
pnpm ci:full-release --sha <full-sha>Yardımcı, güncel origin/main dalını getirir, güvenilir iş akışı commit'indeki release-ci/<workflow-sha>-... dalını gönderir, geçici daldan ref=<target-sha> ile Full Release Validation sürecini başlatır, varsa kesin tam hedef kanıtını yeniden kullanır, 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, güncel origin/main üzerinden hâlâ erişilebilen daha eski bir commit'i sabitlemek içinse --workflow-sha <trusted-main-sha> iletin. İş akışının kendisi hiçbir zaman depo referanslarına yazmaz. Bu yaklaşım, adaya araç commit'leri eklemeden yalnızca main üzerinde bulunan sürüm araçlarını kullanılabilir tutar ve yanlışlıkla daha yeni bir main alt çalışmasını kanıtlamayı önler.
Sürüm dalı veya etiketi doğrulaması için bunu güvenilir main iş akışı referansından çalıştırın ve sürüm dalını ya da etiketini ref olarak iletin:
gh workflow run full-release-validation.yml \ --ref main \ -f ref=release/YYYY.M.PATCH \ -f provider=openai \ -f mode=both \ -f release_profile=stable \ -f evidence_package_spec=openclaw@YYYY.M.PATCH-beta.Nİş akışı hedef referansı çözümler, target_ref=<release-ref> ile manuel CI sürecini başlatır, ardından OpenClaw Release Checks sürecini başlatır. OpenClaw Release Checks; kurulum hızlı kontrolünü, 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 sürecini içeren Paket Kabulünü, QA Lab eşliğini, canlı Matrix'i ve canlı Telegram'ı dağıtarak çalıştırır. Odaklı bir yeniden çalıştırma ayrı Plugin Prerelease alt sürecini bilinçli olarak atlamadığı sürece, tam/tümü çalıştırması yalnızca Full Release Validation özetinde normal_ci, plugin_prerelease ve release_checks başarılı olarak gösterildiğinde kabul edilebilir. Bağımsız npm-telegram alt sürecini yalnızca release_package_spec veya npm_telegram_package_spec ile yayımlanmış pakete yönelik odaklı bir 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 güncel kritik yolu görebilir.
Ürün performansı alt süreci bu sürüm yolunda yalnızca yapı üretir. Üst iş akışı
bu süreci publish_reports=false ile başlatır ve yalnızca yapı koruması Clawgrit
rapor yayımlayıcısının atlanmış kaldığını kanıtlamadıkça doğrulama reddedilir.
Eksiksiz aşama matrisi, tam iş akışı iş adları, kararlı ve tam profil farklılıkları, yapılar 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ı, hedef ref daha eski bir sürüm dalını veya etiketini gösterse bile normalde --ref main olan ve Full Release Validation sürecini çalıştıran güvenilir referanstan başlatılır. Her alt çalıştırma tam üst iş akışı SHA'sını kullanmalıdır; bir alt sürecin başlatılması çözümlenmeden önce main ilerlerse üst iş akışı güvenli biçimde başarısız olur. Ayrı bir Full Release Validation iş akışı referansı girdisi yoktur; güvenilir test düzeneğini iş akışı çalıştırma referansını seçerek belirleyin. Hareketli main üzerinde tam commit kanıtı için --ref main -f ref=<sha> kullanmayın; ham commit SHA'ları iş akışı başlatma referansı olamaz. Bunun yerine hedef SHA'yı aday girdisi olarak korurken güvenilir origin/main üzerinde geçici bir dal oluşturmak için pnpm ci:full-release --sha <target-sha> komutunu kullanın.
Canlı/sağlayıcı kapsamını seçmek için release_profile kullanın:
minimum: sürüm açısından kritik en hızlı OpenAI/çekirdek canlı ve Docker yolustable: sürüm onayı için minimum kapsamın yanı sıra kararlı sağlayıcı/arka uç kapsamıfull: kararlı kapsamın yanı sıra geniş tavsiye niteliğinde 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ırlı yayımlanmış yükseltme dayanıklılığı taramasını çalıştırır. Aynı taramayı bir beta için istemek üzere run_release_soak=true kullanın. Bu tarama; en son dört kararlı paketin yanı sıra sabitlenmiş 2026.4.23 ve 2026.5.2 tabanlarını ve daha eski 2026.4.15 kapsamını içerir; yinelenen tabanlar kaldırılır ve her taban kendi Docker çalıştırıcı işine bölünür.
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ıyı 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 npm üzerinde zaten bulunuyorsa sürüm kontrollerinin gönderilmiş paketi bir kez indirmesi, dist/build-info.json dosyasından derleme kaynağı SHA'sını çıkarması ve bu yapıyı 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 değerini ayarlayın.
İşletim sistemleri arası OpenAI kurulum hızlı kontrolü, depo/kuruluş değişkeni ayarlanmışsa OPENCLAW_CROSS_OS_OPENAI_MODEL değerini, aksi takdirde openai/gpt-5.6-luna modelini kullanır; çünkü bu hat en yetenekli modeli karşılaştırmak yerine paket kurulumunu, ilk kurulumu, Gateway başlatmayı ve bir canlı ajan turunu 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:
# Yayımlanmamış bir sürüm adayı dalını doğrulayın.gh workflow run full-release-validation.yml \ --ref main \ -f ref=release/YYYY.M.PATCH \ -f provider=openai \ -f mode=both \ -f release_profile=stable # Gönderilmiş belirli bir commit'i doğrulayın.gh workflow run full-release-validation.yml \ --ref main \ -f ref=<40-char-sha> \ -f provider=openai \ -f mode=both # Bir beta yayımladıktan sonra, yayımlanmış paket için Telegram E2E'yi ekleyin.gh workflow run full-release-validation.yml \ --ref main \ -f ref=release/YYYY.M.PATCH \ -f provider=openai \ -f mode=both \ -f release_profile=full \ -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 bir sonraki kanıt için başarısız olan 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ı kaydedilmiş 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, önceki başarılı bir şemsiye çalıştırmasını yalnızca tam olarak aynı hedef SHA'yı, sürüm profilini, etkin uzun süreli test ayarını ve doğrulama girdilerini doğruladıysa yeniden kullanabilir. Bu, aynı adayı yeniden çalıştırmaya yönelik sınırlı bir kurtarma mekanizmasıdır; SHA'lar arasında kanıt yeniden kullanımı değildir. Değişiklik günlüğü veya yalnızca sürüm değişikliği içeren bir commit dahil olmak üzere değiştirilmiş bir aday için değişen yolların ya da yapıt karmalarının etkilediği tüm paket, yapıt, kurulum, Docker veya sağlayıcı geçitlerini yeniden çalıştırın. Aynı release/* referansı ve yeniden çalıştırma grubu için daha yeni şemsiye çalıştırmaları, sürmekte olanların yerini otomatik olarak alır. Tamamen yeni bir çalıştırmayı zorlamak için reuse_evidence=false geçirin.
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 iş akışını, plugin-prerelease yalnızca sürüme özel Plugin alt iş akışını, release-checks tüm sürüm kutularını ç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; full/all ç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ı, standart katmandaki zorunlu OpenClaw dinamik araç sapması dahil olmak üzere normal sürüm doğrulamasını engeller. Tideclaw alfa çalıştırmaları, paket güvenliğiyle ilgili olmayan sürüm denetimi hatlarını yine de uyarı niteliğinde değerlendirebilir. release_profile=beta ile Run repo/live E2E validation canlı sağlayıcı paketleri uyarı niteliğindedir (uyarı verir, engellemez); stable ve full profilleri bunları engelleyici olarak tutar. live_suite_filter, Discord, WhatsApp veya Slack gibi geçitli bir QA canlı hattını açıkça talep ettiğinde eşleşen OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED depo değişkeni etkinleştirilmiş olmalıdır; aksi hâlde girdi yakalama, hattı sessizce atlamak yerine 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, dokümantasyon denetimleri, Python Skills, Windows, macOS ve Control UI i18n. Full Release Validation kutuyu çalıştırdığında şemsiye include_android=true geçirdiği için Android dahil edilir; bağımsız manuel CI, Android kapsamı için include_android=true gerektirir.
Bu kutuyu "kaynak ağacı tam normal test paketini geçti mi?" sorusunu yanıtlamak için kullanın. Bu, sürüm yolu ürün doğrulamasıyla aynı şey değildir. Saklanacak kanıtlar:
- Gönderilen
CIçalıştırmasının URL'sini gösterenFull Release Validationözeti - Tam hedef SHA üzerinde başarılı
CIçalıştırması - Regresyonlar araştırılırken 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'yi doğrudan yalnızca sürümün deterministik normal CI gerektirdiği ancak Docker, QA Lab, canlı, işletim sistemleri arası veya paket kutularını gerektirmediği durumlarda çalıştırın. Android içermeyen doğrudan CI için ilk komutu kullanın. Doğrudan sürüm adayı CI'nin 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-live-and-e2e-checks-reusable.yml aracılığıyla OpenClaw Release Checks içinde 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ına şunlar dahildir:
- yavaş Bun genel kurulum duman denetimi etkinleştirilmiş tam kurulum duman denetimi
- QR, root/gateway ve yükleyici/Bun duman işleri ayrı install-smoke parçaları olarak çalışırken hedef SHA'ya göre kök Dockerfile duman imajı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-harası veopenwebui - istendiğinde büyük diskli özel bir çalıştırıcıda OpenWebUI kapsamı
bundled-plugin-install-uninstall-0ilebundled-plugin-install-uninstall-23arası bölünmüş paketlenmiş Plugin kurma/kaldırma hatları- 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/ dizinini 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ı, kullanılabildiğinde önceki package_artifact_run_id değerini 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 kapsamındadır. Vitest ve Docker paket mekaniklerinden ayrı olan, eyleyici davranış ve kanal düzeyindeki sürüm geçididir.
Sürüm QA Lab kapsamına şunlar dahildir:
- eyleyici 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 hızlı canlı Matrix QA profili- Convex CI kimlik bilgisi kiralamalarını kullanan canlı Telegram QA hattı
- sürüm telemetrisinin açık yerel kanıta ihtiyaç duyduğu durumlarda
pnpm qa:otel:smoke,pnpm qa:otel:collector-smoke,pnpm qa:prometheus:smokeveyapnpm qa:observability: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 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çalanmış bir QA-Lab çalıştırması olarak kullanılmaya devam eder.
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ünü ve 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ı paketleyinsource=url: zorunlupackage_sha256ile herkese açık bir HTTPS.tgzindirin; URL kimlik bilgileri, varsayılan olmayan HTTPS portları, özel/dahili/özel kullanımlı ana bilgisayar adları veya çözümlenmiş adresler ve güvenli olmayan yönlendirmeler reddedilirsource=trusted-url:.github/package-trusted-sources.jsoniçindeki adlandırılmış bir politikadan zorunlupackage_sha256vetrusted_source_idile bir HTTPS.tgzindirin;source=urliçin girdi düzeyinde özel ağ atlaması eklemek yerine bakımcıların sahip olduğu kurumsal yansılar veya özel paket depoları için bunu kullanınsource=artifact: başka bir GitHub Actions çalıştırması tarafından yüklenen bir.tgzdosyasını yeniden kullanın
OpenClaw Release Checks, hazırlanmış sürüm paketi yapıtı, source=artifact, 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, telegram_mode=mock-openai ile Package Acceptance'ı çalıştırır. Package Acceptance; geçişi, güncellemeyi, root tarafından yönetilen VPS yükseltmesini, yapılandırılmış kimlik doğrulamalı güncelleme yeniden başlatmasını, canlı ClawHub Skills kurulumunu, eski Plugin bağımlılıklarının temizlenmesini, çevrimdışı Plugin fikstürlerini, Plugin güncellemesini, Plugin komut bağlama kaçışını sağlamlaştırmayı ve aynı çözümlenmiş tarball'a karşı Telegram paket QA'sını korur. 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 değerine sahip beta profili, yayımlanmış yükseltmeden sağ çıkma taramasını reported-issues senaryolarıyla birlikte last-stable-4 ve sabitlenmiş 2026.4.23, 2026.5.2 ve 2026.4.15 temel çizgilerine genişletir. Package Acceptance'ı yayımlanmış bir aday için source=npm, yayımlamadan önce SHA destekli yerel npm tarball'ı için source=ref, bakımcının sahip olduğu kurumsal/özel bir yansı için source=trusted-url veya başka bir GitHub Actions çalıştırması tarafından yüklenmiş hazırlanmış bir tarball için source=artifact ile kullanın.
Bu, daha önce Parallels gerektiren paket/güncelleme kapsamının çoğunun GitHub'a özgü karşılığıdır. İşletim sistemleri arası sürüm denetimleri, işletim sistemine özgü ilk katılım, yükleyici 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ına yönelik standart denetim listesi Güncellemeleri ve Pluginleri test etme sayfasındadır. Bir Plugin kurulumu/güncellemesi, doctor temizliği 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'nin 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 dahil olmak üzere bu sürüme kadarki paketler, npm'de zaten yayımlanmış meta veri eksikleri için uyumluluk yolunu kullanabilir: tarball'da bulunmayan özel QA envanter girişleri, eksik gateway install --wrapper, tarball'dan türetilen git fikstüründeki eksik yama dosyaları, kalıcı hâle getirilmemiş 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 yayımlanmış yerel derleme meta verisi damga dosyaları için uyarı verebilir. 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ümle ilgili soru gerçek bir kurulabilir paket hakkındaysa 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 kurulumu/kanal/ajan, Gateway ağı ve yapılandırmayı yeniden yükleme hatlarıpackage: kurulum/güncelleme/yeniden başlatma/Plugin paket sözleşmelerinin yanı sıra canlı ClawHub Skills kurulum kanıtı; sürüm denetiminde varsayılan budurproduct:packagekapsamına ek olarak 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 geçirir; bağımsız Telegram iş akışı, yayımlama sonrası denetimler için yayımlanmış bir npm belirtimini kabul etmeye devam eder.
Düzenli sürüm yayımlama otomasyonu
Beta, latest, Plugin, GitHub Release ve platform yayımlaması için
OpenClaw Release Publish, değişiklik yapan normal giriş noktasıdır. Aylık
yalnızca npm kullanan .33+ genişletilmiş kararlı sürüm yolu bu orkestratörü kullanmaz. Düzenli
iş akışı, güvenilir yayımcı iş akışlarını sürümün gerektirdiği sırayla
orkestre eder:
- Sürüm etiketini kullanıma alın ve commit SHA'sını çözümleyin.
- Etikete
mainveyarelease/*üzerinden (ya da alfa ön sürümleri için bir Tideclaw alfa dalından) erişilebildiğini doğrulayın. pnpm plugins:sync:checkkomutunu çalıştırın.Plugin NPM Releaseiş akışınıpublish_scope=all-publishableveref=<release-sha>ile tetikleyin.Plugin ClawHub Releaseiş akışını aynı kapsam ve SHA ile tetikleyin.- Kaydedilmiş
full_release_validation_run_idve tam çalışma denemesi doğrulandıktan sonraOpenClaw NPM Releaseiş akışını sürüm etiketi, npm dist etiketi ve kaydedilmişpreflight_run_idile tetikleyin. - Kararlı sürümlerde GitHub sürümünü taslak olarak oluşturun veya güncelleyin,
Windows Node Releaseiş akışını açıkça belirtilenwindows_node_tagve aday için 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 derlemek içinAndroid Releaseiş akışını 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 etiketine 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=betaKararlı sürümü doğrudan latest etiketine yükseltmek 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 değerini reddeder; böylece çekirdek paket, @openclaw/diffs-language-pack dâhil yayımlanabilir tüm resmî Plugin paketleri olmadan gönderilemez. Seçili bir Plugin onarımı için publish_openclaw_npm=false, plugin_publish_scope=selected ve plugins=@openclaw/name değerlerini ayarlayın veya alt iş akışını doğrudan tetikleyin.
İlk yayımlama için ClawHub önyüklemesi istisnadır: güvenilir main üzerinden Plugin ClawHub New
iş akışını tetikleyin ve tam hedef sürüm SHA'sını ref aracılığıyla geçirin.
Önyükleme iş akışının kendisini hiçbir zaman sürüm etiketinden 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ışma
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 gizli bilgi içermeyen bir işte kullanıma alıp paketler, kilitlenmiş ClawHub
araç zincirini oluşturur ve sürüm etiketi var olmadan önce değişmez yapıtı ve paket
kısa adını/kimliğini doğrular. clawhub-plugin-bootstrap ortamını yalnızca gizli bilgi içermeyen paketleme işleri
tamamlandıktan sonra onaylayın; bu korumalı doğrulama işinde kimlik bilgisi veya değişiklik komutu bulunmaz.
Onaylanmış bir deneme çalıştırması veya etiketleme sonrasındaki gerçek önyükleme; tam
sürüm etiketinin yanı sıra üst OpenClaw Release Publish çalışma kimliğini, denemesini ve
dalını içermelidir. Üst iş akışı kendi iş akışı SHA'sını ve Plugin ClawHub New için
ayrı bir tam güvenilir main SHA'sını tasdik eder; alt çalışma ve her korumalı
ortam onayı bu onaylanmış alt SHA ile 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ıt kimliği/özeti,
üretici çalışma/denemesi, hedef SHA'sı ve paket başına tarball SHA-256/boyutu
doğrulama ve korumalı işlere aktarılan tek bir değişmez yapıt
yükler. Korumalı iş yalnızca güvenilir main
araçlarını kullanıma alır, GitHub API aracılığıyla yapıt demetini doğrular, tam yapıt kimliğine
göre indirir, her tarball dosyasını yeniden özetler ve sabitlenmiş CLI'ın 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ğrulamadan ö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 boyutunu
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 paket için güvenilir yayımcı onarımı
yalnızca yapılandırma amaçlı olmaya devam eder, 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 defteri baytlarının ve meta verilerinin tam olarak eşleşmesini
gerektirir. Yayımlama sonrası doğrulama, ClawHub yapıtını indirir ve
aynı SHA-256 ile boyutu gerektirir. Başarısız işleri yeniden çalıştırma yoluyla kurtarma, önceki
bir denemenin paket yapıtını yalnızca üretici iş tam olarak
başarıyla tamamlandıysa yeniden kullanabilir. Nihai kanıt ayrıca kilitlenmiş ClawHub sürümünü, kilit
SHA-256 değerini ve npm bütünlüğünü bağlar. Bir uyuşmazlık, yeni bir paket sürümü gerektirir.
NPM iş akışı girdileri
OpenClaw NPM Release, operatör tarafından denetlenen şu 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 denetim için geçerli tam 40 karakterlik iş akışı dalı commit SHA'sı da olabilirpreflight_only: yalnızca doğrulama/derleme/paketleme içintrue, gerçek yayımlama yolu içinfalsepreflight_run_id: mevcut başarılı ön denetim çalışma kimliği; iş akışının yeniden derlemek yerine hazırlanmış tarball dosyasını 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ışma kimliği; gerçek yayımlama için gereklidir. Beta yayımlamaları bir uyarıyla yalnızca ön denetime dayanarak 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ışma denemesi; yeniden çalıştırmaların yayımlama sırasında yetkilendirme kanıtını değiştirememesi için çalışma kimliği sağlandığında gereklidir.release_publish_run_id: onaylanmışOpenClaw Release Publishçalışma kimliği; bu iş akışı söz konusu üst iş akışı 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 uçPlugin NPM Releaseçalışma kimliği; gerçek birextended-stableçekirdek yayımlaması için gereklidirnpm_dist_tag: yayımlama yolu için npm hedef etiketi;alpha,beta,latestveyaextended-stablekabul eder ve varsayılanıbetadeğeridir. Son yama33ve üzeri,extended-stablekullanmalıdır; varsayılan olarakextended-stabledaha önceki yamaları reddeder ve nihai olmayan etiketleri her zaman reddeder.bypass_extended_stable_guard: yalnızca test amaçlı boole değeri, varsayılanfalse;npm_dist_tag=extended-stableile sürüm kimliği, yapıt, onay ve geri okuma denetimlerini korurken aylık genişletilmiş kararlılık 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.
Genişletilmiş kararlı seçeneği publish_scope=all-publishable, boş bir
plugins girdisi, 33 veya üzeri 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, OIDC güvenilir yayımlaması
(npm publish --tag extended-stable) aracılığıyla atomik olarak extended-stable alır; bu
kaynak iş akışı, belirteç kimlik doğrulamalı npm dist-tag add kullanmaz. Yeniden denemeler,
npm'de zaten bulunan tam sürümleri atlar ve ardından eksiksiz
geri okuma işlemi her tam paket ile extended-stable etiketinin yakınsadığını doğrulamadıkça güvenli biçimde başarısız olur.
OpenClaw Release Publish, operatör tarafından denetlenen şu girdileri kabul eder:
tag: gerekli sürüm etiketi; önceden mevcut olmalıdırpreflight_run_id: başarılıOpenClaw NPM Releaseön denetim çalışma kimliği;publish_openclaw_npm=trueveyaplugin_publish_scope=all-publishableolduğunda gereklidirfull_release_validation_run_id: başarılıFull Release Validationçalışma 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ışma kimliği sağlandığında gereklidirwindows_node_tag: tam ve ö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ın sabitlenmişsha256:özetlerine yönelik, aday için onaylanmış kompakt JSON eşlemesi; kararlı OpenClaw yayımlaması için gereklidirnpm_telegram_run_id: nihai sürüm kanıtına dâhil edilecek isteğe bağlı başarılıNPM Telegram Beta E2Eçalışma kimliğinpm_dist_tag: OpenClaw paketi içinalpha,betaveyalatestdeğerlerinden biri olan npm hedef etiketiplugin_publish_scope: varsayılanıall-publishable;selecteddeğerini yalnızcapublish_openclaw_npm=falseile odaklı, yalnızca Plugin onarım çalışmalarında kullanınplugins:plugin_publish_scope=selectedolduğunda virgülle ayrılmış@openclaw/*paket adlarıpublish_openclaw_npm: varsayılanıtrue; yalnızca iş akışını yalnızca Plugin onarım orkestratörü olarak kullanırkenfalseayarlayınrelease_profile: sürüm kanıtı özetleri için kullanılan sürüm kapsam profili; varsayılanı, doğrulama bildiriminden okuyanfrom-validationdeğeridir; alternatif olarakbeta,stableveyafullile geçersiz kılabilirsinizwait_for_clawhub: npm kullanılabilirliğinin ClawHub yardımcı süreci tarafından engellenmemesi için varsayılanıfalse; yalnızca iş akışının tamamlanması ClawHub'ın tamamlanmasını da içermeliysetrueayarlayın
OpenClaw Release Checks, operatör tarafından denetlenen şu girdileri kabul eder:
ref: doğrulanacak dal, etiket veya tam commit SHA'sı. Gizli bilgi içeren denetimler, çözümlenen commit'e bir OpenClaw dalı veya sürüm etiketi üzerinden erişilebilmesini 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ükseltme sonrası çalışmayı sürdürme dayanıklılık testini etkinleştirir.release_profile=stableverelease_profile=fulltarafından zorunlu olarak etkinleştirilir.
Kurallar:
33yamasının altındaki normal final ve düzeltme sürümleribetaveyalatestetiketlerinden herhangi birinde yayımlanabilir. Yaması33veya üzeri olan final sürümleriextended-stableetiketinde yayımlanmalıdır ve bu sınırdaki düzeltme sonekli sürümler reddedilir.- Beta ön sürüm etiketleri yalnızca
betaetiketinde, alfa ön sürüm etiketleri ise yalnızcaalphaetiketinde 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_tagdeğerinin aynısını kullanmalıdır; iş akışı, yayımlama devam etmeden önce bu meta verileri doğrular
Normal beta/latest kararlı sürüm sırası
Bu eski sıra; Plugin'lerin, GitHub Release'in, Windows'un ve diğer platform çalışmalarının da sahibi olan normal düzenlemeli sürüm içindir. Bu, sayfanın üst kısmında belgelenen aylık, yalnızca npm'e yönelik .33+ extended-stable yolu değildir.
Normal bir düzenlemeli kararlı sürüm hazırlarken:
OpenClaw NPM Releaseiş akışınıpreflight_only=trueile çalıştırın. Henüz bir etiket yokken, ön kontrol iş akışının yalnızca doğrulama amaçlı deneme çalıştırması için mevcut tam iş akışı dalı commit SHA'sını kullanabilirsiniz.- Normal, önce beta akışı için
npm_dist_tag=betadeğerini; yalnızca bilinçli olarak doğrudan kararlı yayımlama yapmak istediğinizdelatestdeğerini seçin. - Normal CI'ın yanı sıra canlı istem önbelleği, Docker, QA Lab, Matrix ve Telegram kapsamını tek bir manuel iş akışından istediğinizde sürüm dalında, sürüm etiketinde veya tam commit SHA'sında
Full Release Validationç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 yayımlanacak olan tam ön sürüm olmayan
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. - Güvenilir
mainüzerinden aynıtag, aynınpm_dist_tag, seçilenwindows_node_tag, kaydedilmişwindows_node_installer_digests,preflight_run_id,full_release_validation_run_idvefull_release_validation_run_attemptdeğerleriyleOpenClaw Release Publishçalıştırın. OpenClaw npm paketini yükseltmeden önce dışsallaştırılmış Plugin'leri npm ve ClawHub'da yayımlar. - Sürüm
betaetiketinde yayımlandıysa bu kararlı sürümübetaetiketindenlatestetiketine yükseltmek içinopenclaw/releases/.github/workflows/openclaw-npm-dist-tags.ymliş akışını kullanın. - Sürüm bilinçli olarak doğrudan
latestetiketinde yayımlandıysa vebetada hemen aynı kararlı derlemeyi izlemeliyse her iki dağıtım etiketini de kararlı sürüme yönlendirmek için aynı sürüm iş akışını kullanın veya zamanlanmış kendi kendini onarma eşitlemesininbetaetiketini daha sonra taşımasına izin verin.
Dağıtım etiketi değişikliği sürüm kayıt defteri deposunda bulunur çünkü hâlâ NPM_TOKEN gerektirir; kaynak deposu ise yalnızca OIDC ile yayımlamayı sürdürür. Bu, hem doğrudan yayımlama yolunun hem de önce beta yükseltme yolunun belgelenmiş ve operatörlerce görülebilir kalmasını sağlar.
Bir bakım sorumlusunun yerel npm kimlik doğrulamasına geri dönmesi gerekirse tüm 1Password CLI (op) komutlarını yalnızca ayrılmış bir tmux oturumu içinde çalıştırın. op komutunu ana ajan kabuğundan doğrudan çağırmayın; tmux içinde tutmak istemleri, uyarıları ve tek kullanımlık parola işlemlerini gözlemlenebilir kılar ve tekrarlanan ana makine uyarılarını önler.
Genel başvurular
.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
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.