Cette fonctionnalité n'est pas interdite, elle n'est tout simplement pas très courante en raison du fonctionnement de la plupart des bibliothèques de numérotation et en raison de l'inconvénient des changements de nom de package.
Si vous utilisez un schéma de numéro de version en pointillé XYZ La version "micro" Z change souvent sur les corrections de bogues, le numéro "mineur" Y change sur les modifications rétrocompatibles et le numéro de version "majeur" X doit changer sur les changements d'API (et parfois le fait sur fonctionnalités supplémentaires majeures).
Il ne devrait jamais y avoir de raison pour que vous ne vouliez pas que les derniers bugs soient corrigés, et les modifications rétrocompatibles ne devraient pas non plus casser votre logiciel.
Si la bibliothèque est développée de cette façon, vous devriez toujours pouvoir remplacer XYZ par X. (Y + m). (Z + n). pour tout m et n donné. C'est-à-dire que vous devriez toujours pouvoir remplacer votre bibliothèque par la dernière de la même série de nombres majeurs. Et si les développeurs de la bibliothèque sont prudents et que le prochain numéro majeur est compatible (par exemple par l'annonce pour déprécier les choses, mais pas encore les supprimer), vous pouvez même utiliser le prochain numéro majeur.
Pour les développeurs de packages, cela signifie qu'ils peuvent utiliser le nom avec un seul, voire aucun nom de numéro pour vous donner la dernière version en mettant simplement à jour le package. S'ils expédient une bibliothèque dans un package, abc2
ils doivent passer par des cercles pour déplacer leur propre logiciel qui comptait sur la abc2
mise à niveau pour l'utiliser abc3
, parfois avec des packages de transition. Il est plus pratique de supprimer le numéro de version principal d'une bibliothèque si cela fonctionne pour la plupart des packages dépendants. Donc, même si les deux abc2
et abc3
devraient être disponibles à un moment donné dans une distribution, abc3
est souvent appelé abc
(tout comme il l' abc2
était quand il n'y en avait pas abc3
encore), et dès qu'aucun package ne dépend de abc2
la distribution, il devient possible de le supprimerabc2
tout à fait.
Le schéma de numérotation n'est pas suivi de manière uniforme, mais je ne peux qu'imaginer qu'avec l'avènement d'Internet, la diffusion d'informations sur la façon d'utiliser un tel schéma, et la pression des utilisateurs de la bibliothèque (y compris les développeurs de distribution) pour rendre les choses importantes comme la rétrocompatibilité claires sans avoir à lire un fichier CHANGES inclus dans la bibliothèque, ont contribué à ce que cela soit devenu plus courant.
Un exemple de compteur, mais pas d'une bibliothèque, est l'interpréteur python, qui n'est pas compatible sur ses objets partagés et le format de décapage lors d'un changement mineur de nombre. Par conséquent, vous verrez des packages pour python (le dernier de la série 2.7), et python3 (le dernier de la série python3.4 actuellement) ainsi que des packages explicites pour python 2.6 (qui ne deviennent pas moins courants) ainsi que python 3.3.