Breaking Changes: v0.0.87
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:GenerationMemoSeconds'ı 0'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
