doctor üzerinden onarabildiğini ve desteklenen
kaynaklardan Plugin’leri hâlâ kurabildiğini, yükleyebildiğini,
güncelleyebildiğini ve kaldırabildiğini kanıtlamak.
Daha geniş test çalıştırıcı haritası için bkz. Test Etme. Canlı sağlayıcı
anahtarları ve ağa dokunan test takımları için bkz. Canlı test etme.
Neyi koruyoruz
Güncelleme ve Plugin testleri şu sözleşmeleri korur:- Bir paket tarball’ı eksiksizdir, geçerli bir
dist/postinstall-inventory.jsoniçerir ve açılmış repo dosyalarına bağımlı değildir. - Bir kullanıcı, yapılandırmasını, aracılarını, oturumlarını, çalışma alanlarını, Plugin izin listelerini veya kanal yapılandırmasını kaybetmeden daha eski bir yayımlanmış paketten aday pakete geçebilir.
openclaw doctor --fix --non-interactive, eski temizlik ve onarım yollarının sahibidir. Başlangıç, eski kalmış Plugin durumu için gizli uyumluluk geçişleri büyütmemelidir.- Plugin kurulumları yerel dizinlerden, git repolarından, npm paketlerinden ve ClawHub kayıt yolu üzerinden çalışır.
- Plugin npm bağımlılıkları, Plugin başına yönetilen tek bir npm projesine kurulur, güven öncesinde taranır ve kaldırma sırasında npm üzerinden kaldırılır; böylece yukarı taşınmış bağımlılıklar geride kalmaz.
- Hiçbir şey değişmediğinde Plugin güncellemesi kararlıdır: kurulum kayıtları, çözümlenen kaynak, kurulu bağımlılık düzeni ve etkin durum bozulmadan kalır.
Geliştirme sırasında yerel kanıt
Dar başlayın:release:check, yapılandırma/belge/API sapma kontrollerini çalıştırır, paket dist
envanterini yazar, npm pack --dry-run çalıştırır, yasaklanmış paketlenmiş dosyaları
reddeder, tarball’ı geçici bir prefix’e kurar, postinstall çalıştırır ve paketli kanal
giriş noktalarını smoke testinden geçirir.
Docker hatları
Docker hatları ürün düzeyi kanıttır. Linux container’ları içinde gerçek bir paketi kurar veya günceller ve CLI komutları, Gateway başlangıcı, HTTP probları, RPC durumu ve dosya sistemi durumu üzerinden davranışı doğrular. Yineleme sırasında odaklı hatları kullanın:test:docker:plugins, Plugin kurulum smoke testini, yerel klasör kurulumlarını, yerel klasör güncelleme atlama davranışını, önceden kurulu bağımlılıklara sahip yerel klasörleri,file:paket kurulumlarını, CLI yürütmeli git kurulumlarını, git hareketli-ref güncellemelerini, yukarı taşınmış geçişli bağımlılıklara sahip npm kayıt kurulumlarını, npm güncelleme no-op’larını, hatalı biçimlendirilmiş npm paket metadata reddini, yerel ClawHub fixture kurulumlarını ve güncelleme no-op’larını, marketplace güncelleme davranışını ve Claude-bundle etkinleştirme/incelemeyi doğrular. ClawHub bloğunu hermetik/çevrimdışı tutmak içinOPENCLAW_PLUGINS_E2E_CLAWHUB=0ayarlayın.test:docker:plugin-lifecycle-matrix, aday paketi çıplak bir container’a kurar, bir npm Plugin’ini kurulum, inceleme, devre dışı bırakma, etkinleştirme, açık yükseltme, açık düşürme ve Plugin kodunu sildikten sonra kaldırma üzerinden çalıştırır. Her aşama için RSS ve CPU metriklerini günlüğe yazar.test:docker:plugin-update, değişmemiş kurulu bir Plugin’inopenclaw plugins updatesırasında yeniden kurulmadığını veya kurulum metadata’sını kaybetmediğini doğrular.test:docker:upgrade-survivor, aday tarball’ı kirli bir eski kullanıcı fixture’ı üzerine kurar, paket güncellemesini ve etkileşimsiz doctor’ı çalıştırır, ardından bir loopback Gateway başlatır ve durumun korunmasını kontrol eder.test:docker:published-upgrade-survivor, önce yayımlanmış bir baseline kurar, onu gömülü biropenclaw config settarifi üzerinden yapılandırır, aday tarball’a günceller, doctor çalıştırır, eski temizlik denetimi yapar, Gateway’i başlatır ve/healthz,/readyzile RPC durumunu problar.test:docker:update-restart-auth, aday paketi kurar, yönetilen token-auth Gateway başlatır,openclaw update --yes --jsoniçin çağıranın gateway auth env’ini unset eder ve aday güncelleme komutunun normal problardan önce Gateway’i yeniden başlatmasını gerektirir.test:docker:update-migration, temizlik ağırlıklı yayımlanmış güncelleme hattıdır. Yapılandırılmış Discord/Telegram tarzı kullanıcı durumundan başlar, yapılandırılmış Plugin bağımlılıklarının oluşma şansı olması için baseline doctor çalıştırır, yapılandırılmış paketli Plugin için eski Plugin bağımlılık kalıntılarını eker, aday tarball’a günceller ve güncelleme sonrası doctor’ın eski bağımlılık köklerini kaldırmasını gerektirir.
base, feishu-channel, bootstrap-persona,
plugin-deps-cleanup, configured-plugin-installs,
stale-source-plugin-shadow, tilde-log-path ve versioned-runtime-deps şeklindedir. Toplu çalıştırmalarda,
OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issues, yapılandırılmış Plugin kurulum
geçişi dahil, bildirilen sorun biçimli tüm senaryolara genişler.
Tam güncelleme geçişi, Full Release CI’dan bilerek ayrıdır. Sürüm sorusu “2026.4.23’ten
itibaren yayımlanmış her kararlı sürüm bu adaya güncellenip Plugin bağımlılık kalıntılarını
temizleyebilir mi?” olduğunda manuel Update Migration iş akışını kullanın:
Paket Kabulü
Paket Kabulü, GitHub yerel paket kapısıdır. Bir aday paketipackage-under-test
tarball’ına çözümler, sürümü ve SHA-256’yı kaydeder, ardından yeniden kullanılabilir
Docker E2E hatlarını tam olarak bu tarball’a karşı çalıştırır. İş akışı harness ref’i,
paket kaynak ref’inden ayrıdır; böylece güncel test mantığı daha eski güvenilir
sürümleri doğrulayabilir.
Aday kaynaklar:
source=npm:openclaw@beta,openclaw@latestveya tam bir yayımlanmış sürümü doğrular.source=ref: seçili güncel harness ile güvenilir bir branch’i, tag’i veya commit’i paketler.source=url: zorunlupackage_sha256ile herkese açık bir HTTPS tarball’ını doğrular. Bu yol URL kimlik bilgilerini, varsayılan olmayan HTTPS portlarını, özel/iç hostname’leri veya DNS/IP sonuçlarını, özel kullanım IP alanını ve güvenli olmayan yönlendirmeleri reddeder.source=trusted-url: zorunlupackage_sha256vetrusted_source_idile bir HTTPS tarball’ını.github/package-trusted-sources.jsoniçindeki maintainer sahipli politikaya karşı doğrular. Bunu,source=urlyolunu giriş düzeyi allow-private anahtarıyla zayıflatmak yerine kurumsal/özel mirror’lar için kullanın. Bearer auth, politika tarafından yapılandırıldığında sabitOPENCLAW_TRUSTED_PACKAGE_TOKENsecret’ını kullanır.source=artifact: başka bir Actions çalıştırması tarafından yüklenen bir tarball’ı yeniden kullanır.
source=artifact kullanır. Yayın sonrası kanıt için
package_acceptance_package_spec=openclaw@YYYY.M.PATCH iletin; böylece aynı yükseltme
matrisi bunun yerine gönderilmiş npm paketini hedefler.
Sürüm kontrolleri, Paket Kabulü’nü paket/güncelleme/yeniden başlatma/Plugin kümesiyle çağırır:
last-stable-4, npm’de yayımlanmış en son dört kararlı OpenClaw sürümüne çözümlenir.
Sürüm paket kabulü, 2026.4.23 değerini ilk Plugin güncelleme uyumluluğu sınırı,
2026.5.2 değerini Plugin mimarisi churn sınırı ve 2026.4.15 değerini daha eski
bir 2026.4.1x yayımlanmış güncelleme baseline’ı olarak sabitler; çözücü, en son dört
içinde zaten bulunan pin’leri tekilleştirir. Kapsamlı yayımlanmış güncelleme geçişi
kapsamı için Full Release CI yerine ayrı Update Migration iş akışında
all-since-2026.4.23 kullanın. Eski tarih öncesi anchor’ı da istediğiniz manuel daha
geniş örnekleme için release-history kullanılabilir durumda kalır.
Birden fazla yayımlanmış yükseltme survivor baseline’ı seçildiğinde, yeniden
kullanılabilir Docker iş akışı her baseline’ı kendi hedefli runner job’ına shard’lar.
Her baseline shard’ı yine seçili senaryo kümesini çalıştırır, ancak loglar ve yapıtlar
baseline başına kalır ve toplam süre büyük tek bir seri job yerine en yavaş shard ile
sınırlanır.
Sürümden önce bir adayı doğrularken paket profilini manuel çalıştırın:
suite_profile=product kullanın. suite_profile=full değerini
yalnızca tam Docker sürüm yolu kapsamına ihtiyacınız olduğunda kullanın.
Sürüm varsayılanı
Sürüm adayları için varsayılan kanıt yığını şöyledir:- Kaynak düzeyi regresyonlar için
pnpm check:changedvepnpm test:changed. - Paket yapıtı bütünlüğü için
pnpm release:check. - Kurulum/güncelleme/yeniden başlatma/Plugin sözleşmeleri için Paket Kabulü
packageprofili veya release-check özel paket hatları. - OS’ye özgü kurulum aracı, onboarding ve platform davranışı için platformlar arası sürüm kontrolleri.
- Yalnızca değişen yüzey sağlayıcı veya barındırılan servis davranışına dokunduğunda canlı test takımları.
Eski uyumluluk
Uyumluluk toleransı dar ve süre sınırlıdır:2026.4.25-beta.*dahil2026.4.25paketlerine kadar, Paket Kabulü’nde zaten gönderilmiş paket metadata boşluklarına tolerans gösterilebilir.- Yayımlanmış
2026.4.26paketi, zaten gönderilmiş yerel build metadata damga dosyaları için uyarı verebilir. - Daha sonraki paketler modern sözleşmeleri karşılamalıdır. Aynı boşluklar uyarı vermek veya atlamak yerine başarısız olur.
upgrade-survivor, published-upgrade-survivor veya update-restart-auth ile kanıtlayın.
Kapsam ekleme
Güncelleme veya Plugin davranışını değiştirirken, doğru nedenle başarısız olabilecek en düşük katmana kapsam ekleyin:- Saf yol veya metadata mantığı: kaynağın yanında birim testi.
- Paket envanteri veya paketlenmiş dosya davranışı:
package-dist-inventoryveya tarball denetleyici testi. - CLI kurulum/güncelleme davranışı: Docker lane doğrulaması veya fixture.
- Yayımlanmış sürüm migrasyon davranışı:
published-upgrade-survivorsenaryosu. - Güncellemenin sahip olduğu yeniden başlatma davranışı:
update-restart-auth. - Registry/paket kaynağı davranışı:
test:docker:pluginsfixture’ı veya ClawHub fixture sunucusu. - Bağımlılık yerleşimi veya temizleme davranışı: hem runtime yürütmesini hem de
dosya sistemi sınırını doğrulayın. npm bağımlılıkları Plugin’in yönetilen
npm projesi içinde hoist edilebilir, bu nedenle testler yalnızca Plugin paketine yerel
node_modulesağacını varsaymak yerine o projenin tarandığını/temizlendiğini kanıtlamalıdır.
Hata triyajı
Artifact kimliğiyle başlayın:- Package Acceptance
resolve_packageözeti: kaynak, sürüm, SHA-256 ve artifact adı. - Docker artifact’ları:
.artifacts/docker-tests/**/summary.json,failures.json, lane günlükleri ve yeniden çalıştırma komutları. - Upgrade survivor özeti:
.artifacts/upgrade-survivor/summary.json; baseline sürümü, aday sürüm, senaryo, aşama zamanlamaları ve recipe adımları dahil.