Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
Veritabanı altyapısı LevelDB'den SQLite'a geçirildi. İlk açılışta büyük kurulumlar için uzun sürebilecek bir veri göçü (migration) gerçekleşecektir.
Silinen öğeler artık veritabanında sonsuza kadar tutulmayacak, 15 ay sonra otomatik olarak temizlenecektir. Bu süre --db-delete-retention-interval ile özelleştirilebilir.
Çatışma çözümü (conflict resolution) mantığı güncellendi; artık bir silme işlemi çatışmanın kazananı olabilir ve bu durumda silinen dosya bir çatışma kopyasına taşınır.
Günlük Kaydı (Logging) ve İzleme
Günlük formatı yapılandırılmış (structured) kayıt girişlerine dönüştürüldü.
Paket başına günlük seviyesi kontrolü eklendi ve INFO ile ERROR arasına yeni bir WARNING seviyesi yerleştirildi.
INFO seviyesi, Syncthing tarafından gerçekleştirilen senkronizasyon eylemlerini gösterecek şekilde daha detaylı hale getirildi.
Eski --verbose ve --logflags seçenekleri kaldırıldı; yerini --log-level ve STTRACE değişkenine bıraktı.
Komut Satırı ve Protokol
Komut satırı argüman ayrıştırma sistemi modernize edildi. Tek tireli uzun seçenekler (örneğin -home) artık desteklenmiyor; bunların yerine çift tire (--home) kullanılmalıdır.
V2 cihazlar arasında artık varsayılan olarak birden fazla bağlantı (biri indeks metaverileri, ikisi veri değişimi için toplam üç bağlantı) kullanılmaktadır.
Kaydırılmış veri algılama (Rolling hash) desteği, verimliliği artırmak ve tarama hızını optimize etmek amacıyla kaldırıldı.
İlk açılışta artık otomatik olarak bir "varsayılan klasör" (default folder) oluşturulmayacak.
Platform Desteği ve Derleme
SQLite ile çapraz derleme zorlukları nedeniyle Dragonfly/amd64, Solaris/amd64, Linux/ppc64, NetBSD, OpenBSD (386/arm) ve Windows/arm platformları için artık önceden derlenmiş (prebuilt) ikili dosyalar sunulmayacak.
Hata Düzeltmeleri
Android'de uçtan uca (point-to-point) arayüzlerin atlanması sağlandı (#10504).
stdiscosrv başlatılırken tam cihaz kimliğinin loglanması sağlandı (#10541).
JSON içerik tipi bildiriminden karakter seti (charset) deklarasyonu kaldırıldı (#10508).
SQLite periyodik veritabanı bakımının devre dışı bırakılabilmesine olanak tanındı (#10441).
SQLite Geçişi: Veritabanı altyapısı LevelDB'den SQLite'a taşındı. Bu değişiklik, veritabanının daha bakılabilir ve hatasız olmasını hedefliyor.
Önemli: İlk açılışta veritabanı göçü (migration) gerçekleşecektir. Büyük kurulumlarda bu işlem uzun sürebilir, kesintiye uğratmamanız önerilir.
Rolling Hash Kaldırıldı: Kaydırılan verileri tespit etmeye yarayan "Rolling Hash" özelliği artık desteklenmiyor. Bu özelliğin gerçek dünya kullanımında pek fayda sağlamadığı tespit edildiğinden, artık tarama ve senkronizasyon işlemleri bu yük olmadan daha hızlı ve verimli çalışacak.
Temizlik: Silinen öğeler artık veritabanında sonsuza kadar tutulmayacak; 15 ay sonra otomatik olarak temizlenecek.
Modernize Edilmiş Günlükleme (Logging)
Günlükleme sistemi tamamen yapısal (structured) bir hale getirildi:
Yeni Seviyeler: INFO ve ERROR arasına yeni bir WARNING seviyesi eklendi.
Kontrol: Artık paket başına günlük seviyesi (log level) belirlenebiliyor. INFO seviyesi, Syncthing'in aldığı senkronizasyon kararlarını daha detaylı gösterecek şekilde genişletildi.
Kaldırılanlar: --verbose ve --logflags seçenekleri artık geçersizdir.
Ağ ve Bağlantı İyileştirmeleri
Çoklu Bağlantı (Multi-Connection): V2 cihazlar arasında artık varsayılan olarak 3 bağlantı kuruluyor (1'i metadata, 2'si veri değişimi için). Bu, bant genişliğini daha verimli kullanmanızı sağlar.
Komut Satırı Modernizasyonu: Eski tek tireli (-home) seçenekler artık desteklenmiyor. Artık çift tire (--home) kullanılmalı ve bazı komutlar alt komut (subcommand) haline getirildi.
Platform Kısıtlamaları: SQLite geçişindeki derleme zorlukları nedeniyle Solaris, NetBSD, OpenBSD (386/arm) ve Windows (arm) gibi platformlar için artık önceden derlenmiş ikili dosyalar (binary) sunulmayacak.
Diğer Önemli Notlar
Çatışma Çözümü (Conflict): Silinen dosyaları içeren çatışmalarda artık "silme" işlemi kazanan taraf olabiliyor. Bu durumda silinen dosya bir çatışma kopyasına taşınır.
Varsayılan Klasör: İlk kurulumda artık otomatik olarak bir "Default Folder" oluşturulmuyor.
Docker/APT: Güncelleme APT depolarında ve Docker üzerinde (syncthing:2.0.13) yayına girdi.
Veritabanı Geçişi: Veritabanı arka ucu LevelDB'den SQLite'a değiştirildi. Bu, ilk başlatmada uzun sürebilen bir geçiş işlemi gerektirir.
Günlükleme: Günlük formatı, yapılandırılmış girdilere dönüştürüldü. Yeni bir UYARI seviyesi eklendi ve günlük seviyesi paket bazında kontrol edilebilir.
Silinen Öğeler: Silinen öğeler artık veritabanında 15 ay sonra unutulur.
Komut Satırı: Eski tek çizgili uzun seçenekler (örn. -home) artık desteklenmiyor; bunun yerine --home gibi çift çizgili seçenekler kullanılmalıdır.
Performans: Kaydırılan verinin rolling hash tespiti kaldırıldı. Tarama ve senkronizasyon artık daha hızlıdır.
Bağlantılar: v2 cihazlar arasında varsayılan olarak üç bağlantı (meta veri için bir, veri için iki) kullanılıyor.
Platform Desteği: SQLite ile çapraz derleme karmaşıklıkları nedeniyle dragonfly/amd64, linux/ppc64, windows/arm gibi bazı platformlar için önceden derlenmiş ikili dosyalar artık sağlanmıyor.
Düzeltmeler ve İyileştirmeler
Erişim Politikası: Onayların (approvals), yazar olmayan katkıda bulunanlar (non-author contributors) tarafından yapılmasına izin verildi.
Dosya Sistemi:
getExpireAdd mutex'i, caseCache içinde saklanarak eski bir sorun düzeltildi.
Veritabanı Geçişi: Veritabanı arka ucu LevelDB'den SQLite'a değiştirildi. Bu, ilk çalıştırmada büyük kurulumlar için uzun sürebilen bir geçiş işlemi gerektirir. Yeni veritabanı daha kolay anlaşılır, bakımı daha kolay ve daha az hatalı olmayı hedefliyor.
Günlük Kaydı Formatı: Günlük kaydı formatı, mesaj ve anahtar-değer çiftlerinden oluşan yapılandırılmış girişlere (structured log entries) dönüştürüldü. Artık günlük düzeyi paket başına kontrol edilebilir ve yeni bir WARNING seviyesi eklendi.
Silinen Öğe Yönetimi: Silinen öğeler artık veritabanında sonsuza kadar saklanmıyor; 15 ay sonra unutuluyor. Bu süreyi --db-delete-retention-interval komut satırı seçeneğiyle değiştirebilirsiniz.
Komut Satırı Seçenekleri: Eski tek tireli uzun seçenekler (-home gibi) artık desteklenmiyor. --home gibi çift tireli seçenekler kullanılmalıdır.
Çoklu Bağlantılar: v2 cihazlar arasında varsayılan olarak birden fazla bağlantı kullanılıyor. Yeni varsayılan, birincisi indeks meta verileri ve ikincisi veri alışverişi için olmak üzere üç bağlantıdır.
Rolling Hash Desteği Kaldırıldı: Kaydırılmış verilerin rolling hash ile tespiti kaldırıldı. Bu özellik neredeyse hiç yardımcı olmuyor ve kaldırılması tarama ve senkronizasyon hızını artırıyor.
Varsayılan Klasör: İlk başlatmada artık "varsayılan klasör" otomatik olarak oluşturulmuyor.
Platform Desteği: SQLite ile derleme karmaşıklıkları nedeniyle dragonfly/amd64, solaris/amd64, linux/ppc64, netbsd/*, openbsd/386, openbsd/arm ve windows/arm için önceden derlenmiş ikili dosyalar (prebuilt binaries) artık sağlanmıyor.