İki farklı kod temeli (Android ve Node.js web uygulaması) olan iki büyük bağımlılıkla ilgili kriz yaşadık. Android deposunun Google Play Services kitaplığının dört ana sürümünün güncellenmesini gerektiren Flurry'den Firebase'e geçiş yapması gerekiyordu . Benzer bir şey, bizim üretim yığımızın (sedirin) kullanımdan kaldırıldığı ve sedir-14'e yükseltilmesi gereken Heroku'da barındırılan Düğüm uygulamamızla oldu. PostgreSQL veritabanımızın ayrıca 9.2'den 9.6'ya güncellenmesi gerekiyordu.
Bu uygulamaların bağımlılıklarının her biri neredeyse iki yıl boyunca bayat kaldı ve bazıları kullanımdan kaldırıldıklarında ve 'gün batımı' dönemine ulaştığımızda, onları güncellemek veya değiştirmek büyük bir baş ağrısı oldu. Geçtiğimiz ay boyunca 30 saatten fazla bir süre boyunca tüm çatışmaları ve hatalı kodları çözmek için harcadım.
Belli ki iki yıl boyunca işleri bekletmek çok uzun. Teknoloji, özellikle Heroku gibi bir platform sağlayıcı kullanıyorsanız, hızla hareket eder. Tam teşekküllü bir test odasına ve Travis CI gibi bir güncelleme işlemine sahip olduğumuzu varsayalım. Örneğin, bir yükseltme işleminden sonra bir işlev kaldırılmışsa ve kullanıyorduysanız testleriniz başarısız olur.
Bağımlılıklar ne sıklıkta güncellenmeli veya bağımlılıklar ne zaman güncellenmeli? Güncelledik çünkü buna zorlandık, ama bir çeşit önleyici yaklaşım daha iyi olacak gibi görünüyor . Küçük sürümler çıktığında güncelleme yapmalı mıyız? Büyük versiyonlar? Güncellemeler varsa her ay? Ne pahasına olursa olsun yaşadıklarım gibi bir durumdan kaçınmak istiyorum.
PS - kişisel Rails projelerimden biri için , örneğin güvenlik açıklarından haberdar olmanız için bağımlılıklarınızı takip eden Gemnasium adında bir servis kullanıyorum . Harika bir hizmet, ancak bahsettiğim projeler için bağımlılıkları manuel olarak kontrol etmek zorunda kalacağız.