Il semble que vous contourniez les conventions normales juste pour éviter les frais généraux / audits de processus. Cela ... me semble inquiétant.
Ce que vous faites est effectivement faire un numéro de version supplémentaire (votre chiffre PCI mineur) un peu intentionnellement afin de déplacer votre fonction / petits numéros de version dos un endroit, pour ne plus déclencher vos critères de vérification interne.
Quoi qu'il en soit, pour en venir à votre question sur le contrôle de version sémantique, la spécification pour le contrôle de version sémantique indique:
Étant donné un numéro de version MAJOR.MINOR.PATCH, incrémentez:
- Version MAJEURE lorsque vous apportez des modifications d'API incompatibles,
- Version MINEURE lorsque vous ajoutez des fonctionnalités d'une manière rétrocompatible, et
- Version PATCH lorsque vous effectuez des corrections de bogues rétrocompatibles.
- Des étiquettes supplémentaires pour les métadonnées de pré-version et de génération sont disponibles en tant qu'extensions au format MAJOR.MINOR.PATCH .
Je souligne.
La question est donc la suivante: utilisez-vous le quatrième caractère pour les métadonnées de pré-version / génération? Ou est-ce essentiellement une autre indication de version que vous publiez?
Si "oui", alors la spécification du versioning sémantique le permet. Si «non», vous ne suivez techniquement pas le versioning sémantique.
Et en tant que question secondaire de niveau supérieur et plus discutable, est-ce vraiment important?
Que vous souhaitiez le suivre de manière rigide ou non est une décision que vous et votre équipe devez prendre. Le but du versioning sémantique est d'aider à la compatibilité des API:
Les corrections de bogues n'affectant pas l'incrémentation de l'API de la version du correctif, les ajouts / modifications d'API rétrocompatibles incrémentent la version mineure et les modifications d'API incompatibles en arrière incrémentent la version principale.
J'appelle ce système «Versioning sémantique». Dans ce schéma, les numéros de version et la façon dont ils changent donnent une signification au code sous-jacent et à ce qui a été modifié d'une version à la suivante.
C'est un système qui permet de rendre plus clair lorsque le contrôle de version affecte les utilisateurs en aval de l'API.
Tant que votre API est tout aussi claire, ce n'est pas une grosse affaire que vous choisissez. Le versioning sémantique se trouve être simple, par exemple si j'utilise 3.4.2 et que je dois passer à 3.4.10, je sais que je peux le faire sans rien casser. Si la nouvelle version est la 3.5.1, je sais qu'elle est rétrocompatible. Et je sais que la version 4.0.1 serait un changement de rupture.
Cela fait partie de la signification des numéros de version.
@enderland Oui, fondamentalement. MAJOR (PCI) .MINOR (PCI) .FEATURE.HOTFIX + BUILD. Nous ne sommes fondamentalement autorisés qu'à modifier les 3e et 4e composants sans impliquer PCI (et par la suite les suzerains PCI de l'entreprise). Pour moi, cela semble un peu artificiel, je ne suis pas sûr qu'ils soient justifiés dans la façon dont ils gèrent le numéro de version, mais je ne connais pas suffisamment le PCI et le processus d'audit pour dire le contraire.
Ok, ça va. Vous avez un système qui fonctionne pour vous et répond à vos besoins. C'est le point du versioning.
Si votre API est privée (uniquement en interne), la façon dont vous versionnez n'a pas d'importance tant que cela a du sens pour vous et pour tous ceux qui l'utilisent. Lorsque le contrôle de version dans un format standard est important, c'est lorsque de nombreux autres utilisateurs de votre API ont besoin de savoir «que signifie cette version?
Le fait d'avoir un système de version arbitraire confondra les personnes habituées à d'autres systèmes, comme le versioning sémantique. Mais si personne n'utilise vraiment votre système de version, sauf les personnes qui le créent - cela n'a pas vraiment d'importance.