Doğrudan cevap
Yayınlanan her insan metni, veri şeması ve dosya paketi sürüm taşır. Yazım düzeltmesi gibi anlamı değiştirmeyen değişiklik; geriye uyumlu yeni alan veya açıklama; mevcut alanı, normu ya da tüketici davranışını bozan kırıcı değişiklik ayrı sınıflanır. Kırıcı değişiklik eski sürümün sessizce üzerine yazılmaz. Yeni şema; değişiklik günlüğü, etkilenen kayıt listesi, eski–yeni geçiş eşlemesi, uyumluluk testi, kullanımdan kaldırma tarihi ve arşiv ilişkisiyle yayımlanır.
Sade dille
Bir şehrin yol haritasını düşünün. Sokak adındaki yazım hatasını düzeltmek ile köprüyü kapatıp yeni yol açmak aynı değişiklik değildir. Yeni yolu kullananlara tarih, alternatif rota ve eski haritanın ne zamana kadar geçerli olduğu söylenmelidir.
Neden önemli?
Sessiz alan silme veya norm değişikliği, eski uygulamaların yanlış veri okumasına ve diller arasında farklı hüküm oluşmasına yol açabilir. Sürüm numarası tek başına yeterli değildir; değişikliğin etkisi ve geçiş yolu bilinmelidir.
Karıştırma
- Yazım düzeltmesi, maddi anlamı değiştirmeyen editoryal değişikliktir.
- Geriye uyumlu ekleme, eski tüketicileri bozmadan yeni alan veya seçenek sunar.
- Kırıcı şema değişikliği, eski tüketicinin yanlış veya eksik çalışmasına yol açabilir.
- Norm değişikliği, yapılması gereken veya yasak olan şeyi değiştirir; yalnız teknik şema değişikliği değildir.
- Kullanımdan kaldırma, alanın hemen silinmesi değil, bitişi ve geçişi duyurulan yaşam döngüsüdür.
Ne yapmalısın?
- Kamuya açık alanları, normatif kayıtları ve dosya sözleşmesini sürümlü biçimde tanımlayın.
- Her değişikliği editoryal, geriye uyumlu, kırıcı, normatif veya güvenlik düzeltmesi olarak sınıflandırın.
- Değişiklik günlüğünde değişen alanı, nedeni, etkilenen kayıtları, tarihi ve karar sahibini yazın.
- İnsan, JSON, şema, API, PDF ve dil sürümlerini aynı yayın bildirimine bağlayın.
- Kırıcı değişiklikte eski–yeni alan eşlemesi, dönüşüm örneği ve geçiş aracı veya talimatı sağlayın.
- Kullanımdan kaldırma uyarısını, destek süresini, kaldırma tarihini ve güvenli geri dönüş yolunu duyurun.
- Eski örneklerle geriye uyumluluk, yeni örneklerle şema ve eşlik testi yapıp sürümü değişmez biçimde arşivleyin.
Nasıl denetlersin?
- Değişikliğin sınıfı ve maddi etkisi açık mı?
- Sürüm numarası bütün yüzeylerde aynı yayını mı gösteriyor?
- Kırıcı değişiklik küçük düzeltme gibi gizlenmiş mi?
- Değişiklik günlüğü, etkilenen kayıt ve geçiş yolu eksiksiz mi?
- Eski tüketiciler ve dosyalarla uyumluluk gerçekten test edilmiş mi?
- Kullanımdan kaldırılan alan için tarih, uyarı ve alternatif var mı?
- Eski sürüm değişmez biçimde erişilebilir ve yeni sürümle ilişkili mi?
Sınır
ANA.ALT.YAMA gibi sayı düzenleri değişiklik hakkında yardımcı sinyal verir; uyumluluğu kendiliğinden kanıtlamaz. Kitap, norm, veri ve API için aynı değişiklik farklı etki yaratabilir. Güvenlik veya hukukî zorunluluk bazı geçiş sürelerini kısaltabilir; gerekçe ve etki yine kaydedilmelidir.
Tek cümlede hatırla
Yeni sürüm yalnız yeni numara değil, açıklanmış bir değişim sözüdür.
Bu kaydın kaynakları
- S07W3C, *JSON-LD 1.1*Standart
- S14DataCite, *Versioning*Kimlik altyapısı
- S15DataCite, *Connecting Versions with Related Identifiers*Kimlik altyapısı
- S35W3C, *PROV-O: The PROV Ontology*Standart
- S53JSON Schema, *Specification — Draft 2020-12*Açık teknik belirtim
- S54*Semantic Versioning 2.0.0*Açık sürümleme belirtimi
- S58Zenodo, *About Records*Resmî repository belgesi

