Breaking Changes: v0.0.90
v0.0.90, transition pipeline epiloğundaki sırayı değiştirir: auto-transition değerlendirmesi artık scheduled transition timer'larının kurulmasından önce çalışır. Bir auto kazanırsa, terk edilecek state için timer hiç kurulmuyor. Aşağıdaki maddeleri sürüm geçişinden önce gözden geçirin.
Breaking Changes
1. Bir auto-transition kazanırsa, o hop için scheduled timer hiç kurulmuyor
Etkilenen Alan: Transition pipeline epiloğu — LifecycleOrder.Auto/LifecycleOrder.Schedule sırası (vnext #943)
Önceki Davranış:
ScheduleTransitionsStep (order 80), RunAutomaticTransitionsStep (order 90)'dan önce çalışıyordu: state'in scheduled transition'ları için önce timer kuruluyor, sonra bir auto kazandıysa zincirlenen bir sonraki hop'un CancelScheduledJobsStep'i tarafından hemen iptal ediliyordu.
Yeni Davranış:
Sıra değişti — Auto artık order 80, Schedule artık order 90. RunAutomaticTransitionsStep, Directives.NextTransition'ı seçtiyse ScheduleTransitionsStep hiçbir Dapr job'u/InstanceJob satırı kurmadan atlanır (ScheduledTransitionsSkippedForChainedNext, EventId 10156, Debug). Bir auto kazandığında, terk edilecek state için timer artık hiç kurulup iptal edilmiyor. Yön: davranış değişikliği.
Migration:
State function'da geçici olarak görünen kind: "scheduled" girdilerine dayanan bir client/test senaryonuz varsa (auto'nun hemen kazandığı bir state'te), bu girdinin artık hiç görünmeyeceğini hesaba katın. ClearBusyOnResumeStep'in step order'ı Auto - 1 olarak (sayısal olarak hâlâ 79) yeniden tanımlandı — persist edilen hiçbir veri step order değerini taşımadığı için bu deploy-safe'dir.
2. Timer script'leri artık auto rule'lardan sonra çalışıyor; auto adımı fail olursa timer kurulmuyor
Etkilenen Alan: Transition pipeline epiloğu — timer input script'leri (vnext #943)
Önceki Davranış: Timer script'leri (scheduled transition input'ları) auto-transition koşulları değerlendirilmeden önce çalışıyordu; auto adımı unhandled bir hatayla fail etse bile state'in timer'ları zaten kurulmuş oluyordu.
Yeni Davranış: Timer script'leri artık auto koşul script'lerinden sonra çalışır (auto değerlendirmesi instance data'yı mutate etmediği için timer input'ları değişmez). Auto adımının kendisi fail olursa (ör. unhandled non-blocking task failure), timer'lar da kurulmaz — instance zaten fault oluyor. Yön: davranış değişikliği.
Migration: Doğrudan bir aksiyon gerekmez; auto adımı fail eden bir state'te önceden "kurulup asla ateşlenmeyen" timer'lara dayanan bir gözlem/monitoring varsa (ör. faulted bir instance'ta hâlâ armed görünen scheduled entry), bu artık gözlemlenmeyecek.
Bu sürümün tüm özellikleri için Release v0.0.90 notuna bakın.
vNext Runtime Platform Team
