Sürüm: 2.1.2
Sürüm: 2.1.1
Sürüm: 2.1.0
Sürüm: 2.0.16
Sürüm: 2.0.15
Güncelleme Notları - Syncthing 2.0

🗄️ Veritabanı ve Depolama Değişiklikleri

  • 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).
🗄️ Veritabanı ve Performans Devrimi
  • 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.
  • Beacon Düzeltmesi: Multicast desteklemeyen arayüzlerde gereksiz yere gruplara katılma hatası giderildi (#10497).
🖥️ Komut Satırı ve Platform Değişiklikleri
  • 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.
Sürüm: 2.0.12
Önemli Ana Değişiklikler (Sürüm 2.0 Serisi)
  • 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.
    • casefs testlerinde sahte dosya sistemine (fakefs) büyük/küçük harf seçeneğinin uygulanması düzeltildi.
  • Docker: Docker dokümantasyonu, host ağ modunu (host network mode) varsayılan olarak kullanacak şekilde güncellendi.
  • UPnP: Yanlış nat.Service gömülmesi kaldırıldı.
  • Yerelleştirme: Azerbaycanca (az) ve Kürtçe (ckb) dilleri için yeni yerelleştirme şablonları eklendi.
Önemli Değişiklikler
  • 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.

Düzeltmeler
  • Çakışma Tespiti: Önceki dosya karmasını (file hash) izleyerek çakışma tespiti iyileştirildi.
  • Kullanım Raporu: Kullanım raporunda (usage report) sıfır veya boş alanlar düzgün bir şekilde atlanıyor.
  • GUI: Kullanım raporu önizlemesinin gereksiz yere yüklenmesi düzeltildi.
  • Veritabanı: Yabancı anahtar kontrolü (foreign key checking) yalnızca bir geçiş uygulandığında gerçekleştiriliyor.
  • Performans: Günlük kaydı etkinleştirilmediği sürece başlangıçta CPU kıyaslaması yapılmıyor.
  • Güvenlik: Güvenilmeyen cihazların diğer cihazlara duyurulması engellendi.
  • SQLite: Yerel dosyalar için blokların her zaman eklendiği garanti edildi.