Système de version

Astuce

Sponge suit les spécifications SemVer pour ses projets. Vous pouvez lire le guide général sur SemVer à cette adresse https://semver.org/.

Les deux implémentations de SongeAPI (SpongeForge/SpongeVanilla) suivent des politiques différentes. Comprendre nos versions revient à interpréter la chaine de version SemVer. SpongeAPI utilise les Majeur et Mineur dans la chaine de version SemVer alors que les implémentations utilisent Majeur, Mineur et Correction.

API

Les développeurs qui créent des plugins le font pour des versions particulières de SpongeAPI, comme 7.0, 7.3, ou 7.9 ; ce qui signifie que le plugin fonctionne dans cette version spécifique. Les versions sont incrémentées reflétant les ajouts, suppressions et modifications. Les changements de versions peuvent affecter les plugins et leur fonctionnement.

Majeur

Un changement majeur de numéro (X.Y.Z) indique que des changements ont cassé certains comportements de l’API. Les plugins peuvent alors ne plus correctement fonctionner dans cette version. Par exemple, un plugin conçut pour fonctionner en 6.9 pourrait ne pas fonctionner avec la version 7.0.

Mineur

Un changement mineur de nombre (X.**Y**.Z) indique que des changements ont été opérés sur l’API mais que les plugins qui fonctionnaient dans la version mineure précédente sont toujours garantis de fonctionner. Par exemple, un plugin conçut pour fonctionner en 7.3 fonctionnera toujours en 7.4 ou 7.5. Cependant, ce n’est pas nécessairement vrai dans le sens inverse. Un plugin pour la version 7.4 n’est pas garanti de fonctionner en 7.3.

Note

Le nombre mineur est toujours remis à zéro lors d’un changement du nombre majeur.

Des exemples de chaines de version pour SpongeAPI sont spongeapi-7.1.0 ou encore spongeapi-7.2.0`.

Implémentation

La chaine de version de l’implémentation de Sponge inclut la version de Minecraft cible ainsi que la version de SpongeAPI. L’implémentation SpongeForge inclut également la version recommandée pour laquelle elle est garantie d’être compatible.

Correction

Un changement du numéro de patch (X.Y. Z) se produit avec les versions d’implémentation. Ces versions contiennent des corrections de bugs, des améliorations de performances, des changements de configuration, et d’autres changement qui ne sont pas liés à l’API. Lorsque un numéro de patch est seulement composé d’un nombre, cette version est une version recommandée. Tout plugin développé pour la version de SpongeAPI notée dans la chaîne, ou qui est compatible avec cette version, est garanti de fonctionner.

Note

Le nombre patch est toujours remis à zéro lors d’un changement du nombre mineur.

Exemples de chaînes de version d’implémentation : spongevanilla-1.12.2-7.1.5 et spongeforge-1.12.2-2768-7.1.5.

Avertissement

Les développeurs de plugins peuvent choisir de développeur leur plugin pour une implémentation particulière. La page Ore du plugin devrait afficher cette décision avec un tag de la version. Sponge ne garantie pas la compatibilité du plugin.

Version instantanée

Une version qui possède le label -SNAPSHOT représente la prochaine version en développement de l’API. Par exemple, 7.2.0-SNAPHOT signifie que la 7.2.0 est en développement. Un autre exemple est 8.0.0-SNAPSHOT, qui signifie que la prochaine version majeure (8.0.0) est en développement. Les nouvelles fonctionnalités ajoutées dans les snapshots peuvent ne plus fonctionner à tout moment.

Note

Si la version mineure est zéro (par exemple, 8.0-SNAPSHOT), tout peut casser avant que la version sorte, et les plugins ne peuvent pas attendre de stabilité. Si la version mineure est plus grande que zéro (par exemple, 7.2-SNAPSHOT), tout ce qui fonctionnait dans la version mineure précédente est garanti de fonctionner (dans ce cas, 7.1). Cependant, tout ce qui est ajouté depuis peut ne pas fonctionner et l’instabilité est probable.

Quand les numéros de version mineur et patch sont zéro, et que le label -SNAPSHOT est attaché, les versions sont des builds bleeding seulement pour tester la prochaine version de SpongeAPI et peuvent mal fonctionner à tout moment.

L’étiquette -SNAPSHOT sur un fichier SpongeCommon indique que l’implémentation est presque complète mais pas encore dans une version stable. Plus important encore, Gradle détermine si oui ou non il ajoute le -RC{build number} à la chaine de version en fonction de la présence de l’étiquette.

Version candidate

Tout push fait vers GitHub qui n’est pas une Version Recommandée est une Version Candidate (RC). Ça peut devenir une version recommandée après plus de tests. Il est également possible qu’une version candidate ne fonctionne pas correctement.

Astuce

SNAPSHOT apparaît dans les chaînes de version de SpongeAPI et SpongeCommon alors que RC apparaît dans les chaînes de version des implémentations.