Versi sistem dan tata letak cabang repositori

Dengan rilis beta kami telah memindahkan versi SpongeAPI ke versi semantik (see http://semver.org/). Perubahan ini berarti bahwa setiap saat kita melakukan sebuah pelepasan kita harus meningkatkan versi sesuai aturan dari semver.

Semver

Semver menggunakan skema `` x.y.z``, di mana `` x`` adalah * utama* versi, `` y`` adalah kecil satu dan `` z`` akhirnya adalah * patch * versi. rilis mengandung perubahan yang tidak mundur harus dapat memuat menjadi salah satu utama versi menjelang rilis sebelumnya. jika hanya ada fitur baru yang masih kompatibel, maka rilis baru akan menjadi salah satu kecil versi menjelang rilis sebelumnya, dan jika rilis ketat kemudian hanya berisi perbaikan bug patch versi akan bertambah.

Ini berarti bahwa misalnya `` 3.2.0`` sepenuhnya kompatibel untuk `` 3.0.0`` Sementara `` 4.0.0`` tidak Biner kompatibel untuk `` 3.0.0``. `` 3.1.0`` dan `` 3.1.2`` sepenuhnya dipertukarkan Selain bug yang tetap.

Tata letak cabang kami (Dijelaskan di bawah ini) ini dirancang untuk membantu proses oleh kita untuk memungkinkan membuat kecil rilis tanpa melanggar perubahan memaksa untuk kita membuat sebuah rilis besar. tata letak cabang berlaku untuk spongeapi, spongecommon, spongeforge, dan spongevanilla repositori tapi tidak dengan spongedocs.

SpongeAPI, SpongeCommon, SpongeForge dan SpongeVanilla

Cabang Pendarahan

Inti dari repositori kami adalah cabang `` bleeding``. Hampir semua perubahan akan ditambahkan ke `` pendarahan``, termasuk fitur baru, perubahan, dan perbaikan bug. Versi `` pendarahan`` akan selalu menjadi versi rilis utama berikutnya yang ditambahkan dengan `` -SNAPSHOT`` (misalnya `` 6.0.0-SNAPSHOT``) untuk menunjukkan bahwa ini belum merupakan final build dan sewaktu-waktu dapat berubah.

Alasan utama untuk memiliki cabang `` perdarahan` adalah memiliki tempat uji coba untuk perubahan. Bahkan anggota tim Sponge yang berpengalaman dapat secara tidak sengaja menyebabkan kegagalan atau kehilangan bug. Cabang `` bleeding`` akan diuji oleh orang-orang di masyarakat yang menginginkan yang terbaru, dan itu berarti kita dapat memperbaiki bug yang muncul dengan lebih mudah.

Cabang yang Stabil

Cabang stabil mewakili platform yang jauh lebih stabil yang dapat digunakan plugin dan implementasi server. Tidak akan ada kerusakan API, hanya penambahan yang tidak melanggar. Ada cabang yang dinamai setiap rilis API utama, yang berisi API / implementasi terbaru untuk rilis tersebut termasuk rilis minor atau patch lainnya.

Ketika saatnya tiba untuk merilis versi mayor, cabang stable-x` baru akan dibuat dari` bleeding`, di mana` x` adalah versi mayor yang baru - misalnya,` stable-5 `. `` pendarahan`` akan diperbarui secara tepat untuk menjadi pelepasan utama berikutnya seperti dijelaskan di atas.

Perubahan yang terjadi pada `` pendarahan`` untuk sementara, yang tidak memiliki bug yang diketahui, dan yang dapat diterapkan pada pelepasan mayor sebelumnya akan dipilih secara ceri ke yang relevan. cabang `` stabil` untuk rilis selanjutnya. Perubahan akan dikelompokkan ke dalam versi minor yang baru, kecuali jika perbaikan segera lebih disukai dimana versi bugfix akan dibuat. ketika sebuah versi dilepaskan, api repositori akan memiliki tag dibuat menunjuk bahwa rilis ini melakukan.

Fitur cabang

Fitur baru atau perubahan harus dibuat dalam `` fitur / foo`` atau `` memperbaiki / bar`` cabang. ini harus didasarkan pada yang terbaru berkomitmen untuk `` bleeding``. satu-satunya pengecualian ini adalah jika perubahan yang tidak kompatibel dengan melanggar perubahan `` bleeding``, dalam hal ini Anda harus dasar terhadap relevan `` stabil-x``. Negara Anda harus tarik permintaan mengapa Anda mengubah tidak bisa dimasukkan di `` bleeding`` - seperti memperbaiki bug dalam fitur yang telah dihapus oleh mojang kemudian di rilis.

Jika perubahan yang dilakukan tidak melanggar untuk rilis sebelumnya, tim Sponge juga dapat memilih perubahan pada satu atau lebih cabang `` stabil` dengan anggapan bahwa tidak ada masalah yang timbul setelah perubahan tersebut digabungkan menjadi `` pendarahan``.

Dokumen Sepon

SpongeDocs sendiri tidak berversi mengikuti filosofi kami bahwa mereka tidak akan pernah selesai, namun dengan terus berubahnya penggunaan yang terus meningkat. Namun mereka * menargetkan * versi spesifik API, umumnya dirilis * SpongeAPI terbaru.

Cabang Inti

Inti cabang untuk SpongeDocs adalah guru. Masing-masing baru berkomitmen untuk master pemicu rebuild docs website. Berkomitmen untuk master pada umumnya dibuat untuk dokumen yang paling saat ini SpongeAPI rilis atau untuk memperbaiki kesalahan-kesalahan kecil pada Dokumen.

Fitur cabang

Setiap kali fitur baru dijelaskan, teks yang lebih lama akan diperbarui atau dicetak ulang atau dokumen direstrukturisasi, dilakukan di cabang `` feature / foo`` atau `` fix / bar``. Cabang-cabang tersebut kemudian akan ditinjau dan, setelah dianggap selesai, maka dapat digabungkan.

Fitur cabang hanya dapat digabungkan menjadi Master jika perubahan / penambahan dibuat di dalamnya sudah benar mengenai ** spongeapi rilis saat ini ditargetkan oleh spongedocs **. setiap fitur cabang yang menjelaskan fitur belum termasuk dalam rilis tinggal unmerged sampai yang sesuai versi api dilepaskan dan menjadi baru ditargetkan versi untuk spongedocs. Namun dokumentasi tim mungkin mengumpulkan tambahan untuk versi tertentu pada satu cabang.

release branch example

Lepaskan Cabang

SpongeDocs menggunakan cabang `` release / x.y.z`` untuk menerbitkan Documents untuk versi API lama seperti API `` 3.1.0``. Rilis API yang lebih lama tersedia di cabang masing-masing. Setiap kali versi API baru dilepaskan, Staf Dokumen akan membuat cabang `` release / x.y.z`` baru dan benjolan master ke versi API yang baru sesudahnya. Sebuah komit ke cabang `` release`` juga memicu penataan kembali rilis Documents yang lebih tua, seperti di cabang inti.