Sürüm oluşturma ve Depo dallandırma Düzeni

Beta sürümü ile SpongeAPI sürümünü semantik sürüm haline getirmeye başladık (bkz. Http://semver.org/). Bu değişiklik, bir yayımlama yaptığımızda semver kurallarına göre sürümü artırmamız gerektiği anlamına gelir.

SemVer

SemVer, `` X`` bir * major * versiyonu, `` Y`` bir * minor * ve Z * patch * versiyonu olan` X.Y.Z` düzenini kullanır. Geriye dönük uyumlu olmayan değişiklikler içeren bir sürüm, bir önceki sürümün bir * büyük * sürümü olmalıdır. Yine de geriye dönük olarak uyumlu yeni özellikler varsa, yeni sürüm bir önceki sürümü öncesinde bir * küçük * sürüm olacak ve sürüm hata düzeltmeleri içeriyorsa yalnızca * yama * sürümü artırılacaktır.

Bunun anlamı, örneğin 3.2.0 tamamen 3.0.0 ile uyumlu, 4.0.0 da 3.0.0 ile ikili uyumlu değildir. 3.1.0 ve 3.1.2, giderilen hataların yanı sıra tamamen değiştirilebilir.

Şubelerimizin düzeni (aşağıda açıklanmıştır), büyük bir tahliye olmasını sağlamamız için önemli bir değişiklik yapmadan küçük yayınlar yapmamıza izin vererek bu sürece yardım etmek üzere tasarlanmıştır. Bu şube yerleşimi SpongeAPI, SpongeCommon, SpongeForge ve SpongeVanilla depoları için geçerlidir, ancak SpongeDocs için geçerli değildir.

SpongeAPI, SpongeCommon, SpongeForge ve SpongeVanilla

The bleeding dallanması

Depolarımızın çekirdeği “bleeding” dalıdır. Hemen hemen tüm değişiklikler, yeni özellikler, değişiklikler ve hata düzeltmeleri de dahil olmak üzere “bleeding”e eklenecektir. Bleeding"`in sürümü daima bir son yapı olmadığına ve değişebileceğine işaret etmek için ``-SNAPSHOT (örneğin, 6.0.0-SNAPSHOT) ile eklenmiş bir sonraki ana sürüm sürümü olacaktır.

“Bleeding” dalının bulunmasının başlıca nedeni, değişiklikler için bir test yerinin bulunmasıdır. Sponge takımının deneyimli üyeleri bile kazara bir yapının başarısız olmasına veya bir hatayı sebep olmasına neden olabilir. “Bleeding” dalı, topluluktaki insanlar tarafından test edilecek ve bu, hataları çok daha kolay bir şekilde giderebileceğimiz anlamına geliyor.

Stabil dallanmalar

Durağan dallar, eklentilerin ve sunucu uygulamalarının üzerine kurulabilecek çok daha istikrarlı bir platformu temsil eder. API için kırılma olmayacak, sadece kırılmayı önleyen eklemeler olmayacaktır. Her büyük API sürümünden sonra, küçük veya düzeltme eki sürümleri de dahil olmak üzere, bu sürümler için en yeni API / uygulamanın bulunduğu bir dal var.

Büyük bir sürümü yayımlamaya geldiğinde Bleeding'''den yeni bir ``stable-x dalı oluşturulur; burada x yeni ana sürümdür - örneğin stable-5''. “bleeding”, yukarıda tarif edildiği gibi bir sonraki ana sürüm olarak uygun şekilde güncellenecektir.

Bir süre için “kanama(bleeding)” geçiren, bilinen böcekleri olmayan ve bir önceki büyük yayına uygulanabilen değişiklikler, gelecekteki sürüm için “kararlı” dalla kiraz olarak seçilecek. Bunun yerine bir hata düzeltme sürümünün oluşturulacağı derhal bir düzeltme yapılmadığı sürece değişiklikler yeni bir alt sürüm olarak gruplandırılacaktır. Bir sürüm yayınlandığında, API deposunun bu sürümün taahhütüne işaret eden bir etiketi olacaktır.

Gelecek dallanmalar

Yeni özellikler veya değişiklikler feature/foo veya fix/bar dalında oluşturulmalıdır. Bu, en son “bleeding” taahhüdüne dayanmalıdır. Bunun tek istisnası, değişiklikler “bleeding” ‘de ki kırılma değişiklikleri ile uyuşmuyorsa, bu durumda ilgili ``stable-x “e karşı dayanması gerekir. Değişikliğinizin “bleeding“‘e neden dahil edilemediğini (örneğin, daha sonraki bir sürümde Mojang tarafından kaldırılan bir özelliğe hatayı düzeltmek gibi) çekme isteğinizi belirtmelisiniz.

Yapılan değişiklikler bir önceki sürüm için kırılmıyorsa, Sponge takımı değişikliğin “bleeding” ile birleştirilmesinden sonra herhangi bir sorun çıkmadığını varsayarak bir veya daha fazla “stable” dalda değişiklikleri alabilir.

SpongeDocs

SpongeDocs’un kendileri, felsefemizi takiben, hiçbir zaman bitmeyeceklerini, bunun yerine her geçen gün artan bir kullanılabilirliğe sahip sürekli bir akış içinde geleceği değiştiriyorlar. Bununla birlikte, SpongeAPI’nin genel olarak en yeni sürümü olan API’nin belirli bir sürümünü hedef alıyorlar.

Çekirdek dal

SpongeDocs için temel dal “master” dır. `` Master`` alanındaki her yeni taahhüt docs web sitesinin <https://docs.spongepowered.org/> _ yeniden oluşturulmasını tetikler. “Master” e yapılan taahhütler genellikle en güncel SpongeAPI sürümünü belgelemek veya Dokümanlar’daki küçük hataları düzeltmek için yapılır.

Gelecek dallanmalar

Yeni bir özellik tarif edildiğinde, eski metinler güncellenir veya yeniden derlenir veya belgeler yeniden yapılandırılır, bir feature/foo veya fix/bar dalında yapılır. Bu dallar daha sonra gözden geçirilecek ve tamamlandıklarında birleştirileceklerdir.

Bir özellik dalı, ancak şu an SpongeDocs tarafından hedeflenen SpongeAPI sürümüyle ilgili değişiklik / ekleme yapılmışsa, master’a birleştirilebilir. Henüz bir sürüme dahil olmayan özellikleri tanımlayan tüm özellik dalları, karşılık gelen API sürümü piyasaya sunulana ve SpongeDocs için yeni hedeflenmiş sürüm haline gelene kadar o şekilde kalır. Ancak, Dokümantasyon ekibi belirli bir sürüm için tek bir şubede ekleme toplayabilir.

release branch example

Dalları yayımlama

SpongeDocs, API’leri “3.1.0” gibi daha eski API sürümleri ve Dokümanları yayımlamak için “release/x.y.z” dallarını kullanır. Eski API sürümleri, ilgili dalında bulunur. Yeni bir API sürümü her yayımlandığında, Docs Çalışanları daha sonra yeni bir API sürümüne yeni bir release/x.y.z şube ve takas masterı oluşturacaktır. Release dalına bir taahhüt de tıpkı ana daldaki gibi daha eski Docs sürümünün yeniden oluşturulmasını tetikler.