Skip to main content

Breaking Changes: v0.0.87

· 3 min read
vNext Team
Burgan Tech Engineering

v0.0.87, transition pipeline'ını uçtan uca span'lar (trace) ile donatır ve bu sayede bulunan gereksiz component-read/re-resolve mekanizmalarını kaldırır. En riskli değişiklikler iki config varsayılanının değişmesi ve öksüz kalmış bir public seam'in kaldırılmasıdır. Aşağıdaki maddeleri sürüm geçişinden önce gözden geçirin.

Breaking Changes

1. ComponentCache:GenerationMemoSeconds kod varsayılanı 0'dan 5'e çıktı

Etkilenen Alan: Component cache generation-token memoization (kod varsayılanı) (vnext #920)

Önceki Davranış: Kod varsayılanı 0'dı; v0.0.85'te yalnızca orchestration host'un appsettings.json'ında 5'e override edilmişti.

Yeni Davranış: GenerationMemoSeconds'ın kod varsayılanı da 5'e çekildi ve orchestration host'un appsettings override'ı kaldırıldı (artık gereksiz). Runtime'ı paket olarak tüketen ve appsettings override'ı yapmayan her host, artık publish sonrası en fazla 5 saniyelik bir cross-pod görünürlük penceresiyle karşılaşır. L1 cache bu riski taşımaz (L1 anahtarı token'ı içerir, bu yüzden L1 asla bayat kalamaz). Yön: davranış değişikliği.

Migration: Publish sonrası anlık cluster-wide görünürlük gereken host'larda ComponentCache:GenerationMemoSeconds0'a set edin. CI/CD'de publish sonrası smoke/cutover öncesi bekleme kuralınız yoksa ekleyin (bkz. Breaking Changes: v0.0.85).

2. Telemetry:Tracing:AdditionalSources'a yeni ActivitySource'lar eklenmeli, yoksa span'lar sessizce düşer

Etkilenen Alan: Host telemetry config'i — Telemetry:Tracing:AdditionalSources (vnext #920)

Önceki Davranış: Pipeline'ın büyük kısmı (validation, context load, task input/invoke/output compile, subflow mapping, lock, component read) hiç span üretmiyordu; üretilenler de görece az ActivitySource altında toplanıyordu.

Yeni Davranış: Pipeline artık adım adım (Step.{Name}, Transition.LoadContext, Task.Invoke, Script.Compile, Cache.Get, Lock.Acquire, ...) span üretir; bunlar yeni ActivitySource'lar altında yayınlanır. Telemetry:Tracing:AdditionalSources bu yeni kaynakları listelemiyorsa, o kaynaklardan gelen span'lar sessizce hiç export edilmez. Yön: daha kısıtlayıcı.

Migration: Her host'un (Orchestration, Execution, Inbox/Outbox worker) Telemetry:Tracing:AdditionalSources listesini güncel BBT.Workflow.* kaynak listesiyle senkron tutun. Yeni bir span kaynağının trace'de görünmemesi genellikle bu listenin güncel olmadığının işaretidir.

3. IWorkflowContext kaldırıldı

Etkilenen Alan: Runtime'ı paket olarak tüketen kod — IWorkflowContext (vnext #920)

Önceki Davranış: IWorkflowContext, artık silinmiş bir SchemaValidationAttribute aspect'i için eklenmişti ve o zamandan beri öksüz kalmıştı — yalnızca 2 writer, 3 reader ve ~15 test double'ı vardı. Kendi memo'su yalnızca Key'i karşılaştırıyordu; pinlenmiş bir versiyon isteği sessizce farklı bir versiyon dönebiliyordu.

Yeni Davranış: IWorkflowContext kaldırıldı. Üç okuyucusu artık workflow'u kendi çağıranından alıyor (PostCommitParentSnapshot, bir Workflow? parametresi); InstanceCommandAppService'in hatalı memo'su tamamen silindi. Yön: daha kısıtlayıcı.

Migration: Runtime'ı NuGet paketi olarak tüketip IWorkflowContext'i inject eden veya mock'layan kod varsa, workflow'u çağıranından almaya geçin; tip artık mevcut değil.


Bu sürümün tüm özellikleri için Release v0.0.87 notuna bakın.

vNext Runtime Platform Team