Cela semble évident à dire, mais: le but des numéros de version est de vous permettre de déterminer facilement la version du logiciel que n'importe qui exécute.
S'il y a une chance que quelqu'un ait accès à une itération particulière du code et ne soit pas autrement en mesure de déterminer facilement un identifiant unique, alors cette itération devrait avoir un numéro de version unique. Je vois cela comme la «première règle». Par conséquent, les versions distinctes auront clairement besoin de numéros de version distincts.
Cependant, d'autres éléments entrent en jeu:
Une façon de s'en assurer consiste à augmenter les numéros de version avec chaque commit, mais ce n'est généralement pas une bonne idée. Cela peut prendre plusieurs validations / itérations pour obtenir un changement relativement petit, et il est déroutant pour le monde extérieur de voir la version 0.0.1 -> 0.0.2 à la suite d'un grand nombre de changements accumulés, puis 0.0.2 -> 0.0 .56 car quelqu'un qui a commis un espace blanc corrige un fichier à la fois et n'a rien changé de fonctionnel.
La distance entre "une version par version complète" et "une version pour chaque commit" dépend vraiment de vous, des autres utilisateurs et des systèmes que vous êtes prêt à utiliser pour combler les lacunes.
Personnellement, je suis habitué à travailler sur de petits projets, et je suis heureux d'utiliser des hachages git jusqu'à une version que d'autres utilisent et une version bump pour chacun d'entre eux (peu importe le nombre de personnes que je m'attends à mettre la main dessus). Cependant, dans les grandes entreprises et les projets plus importants, il existe quelque chose en dehors des numéros de version sémantiques, mais une fidélité inférieure à chaque commit, comme la numérotation des candidats aux versions, est utilisée. Ceux-ci ont des avantages mais ajoutent de la complexité.