CPalius CMF 2.2.12
Yayın: 2026-09-25 · Kanal: kararlı · Kritik: evet
Tam sürüm güncellemesi tam biterken 500 hatası verebiliyordu, ve elle ikinci bir tıklamayı önlemek için var olan otomatik takip adımı da aynı şekilde başarısız olabiliyordu — operatör, güncellemenin kendi kendine bitirmesi gereken işi elle yapmak zorunda kalıyordu. İkisi de aynı boşluktan geliyordu: derlenmiş container'ın, ona ihtiyaç duyan bir sonraki adım çalışmadan önce gerçekten yeniden derlendiğini hiçbir şey garanti etmiyordu.
Ne düzeldi
Dosya değişiminden sonra boşaltılan container, kontrollü bir adımda yeniden derlenmek yerine, ona ilk ulaşan hangi istekse onun tarafından anlık olarak derleniyordu. Bir güncellemeyi uygulamak, yönlendirmeden önceki son işlem olarak derlenmiş container'ı temizliyor. Bir sonraki istek — güncellemenin kendi otomatik takip adımı (hook'lar, modül yükseltmeleri, config içe aktarımı) veya sadece bir ziyaretçi — o anda, o tek isteğin sahip olduğu zaman ve bellek bütçesiyle, sıfırdan taze bir container'ı canlı olarak derlemek zorunda kalıyordu. Symfony derlenmiş bir container'ın dosyalarını atomik değil, artımlı olarak yazar — bu yüzden orada yavaş veya kesintiye uğrayan bir derleme "yavaş bir sayfa" değil, bazı dosyaları eksik bir container demektir, ve birisi işi bitirmeyi başarana kadar ondan sonraki her istek "gerekli bir dosya bulunamadı" hatasıyla başarısız olur. 2.2.9, bu adımı otomatik gönderilir hâle getirdikten sonra bile bir güncellemenin ikinci, elle bir tıklama gerektiren "bekleyen işler" bırakabilmesinin nedeni tam olarak buydu — otomatik deneme, o derlemeyi zamanında bitirmeye bahse giren isteğin ta kendisiydi.
Container artık, eskisi temizlendikten hemen sonra, kendi adanmış sürecinde, cömert bir zaman aşımıyla açıkça yeniden derleniyor — bu kod tabanının bir güncellemeden sonra ön yüz varlıklarını derlemek için zaten kullandığı aynı teknik, buna gerçekten ihtiyaç duyan adıma uygulandı. Bir güncellemenin otomatik takip adımı (veya ilk gerçek ziyaretçi) çalıştığında, container artık zaten tamamlanmış durumda.
Yükseltme
Şema değişikliği yok. Elle bir işlem gerekmiyor. Kurulumunuzda şu an "bekleyen işler" gösteren, takılı kalmış eski bir güncelleme varsa, bu sürüm bir sonraki otomatik denemenin temiz şekilde bitmesini sağlamalı — güncelledikten sonra hâlâ bayat container hatası gösteriyorsa, tek seferlik bir kurtarma adımı olarak cp-core/var/cache/prod/ içini elle bir kez boşaltın.
Bilinen kısıtlar
Bu sürüm, tam atomik container değişimi (geçici bir dizine derleyip tek adımda yerine taşıma) eklemiyor; sürekli başarısızlığa neden olan spesifik pencereyi kapatıyor. Gelecekteki bir sürüm daha ileri gidebilir.