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 Recommandée
Les Versions Recommandées sont aussi connues sont le nom de Builds ou Releases Recommandées. Ce sont des versions de qualité raisonnable dont les implémentations peuvent utiliser pleinement les fonctionnalités disponibles dans SpongeAPI, et les plugins compatibles avec l’API sont garantis de fonctionner comme prévu.
Avertissement
Les informations suivantes sont destinées aux développeurs Sponge. Les développeurs de plugins et les administrateurs de serveurs doivent seulement utiliser les Versions Recommandées pour le développement et l’installation de serveurs. Utiliser une version non-recommandée introduit de l’instabilité et garantit quasiment des problèmes. Nous décourageons vivement l’utilisation des versions non-recommandées pour les développeurs de plugins et les administrateurs de serveurs.
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.