Esta funcionalidad no está prohibida, simplemente no es muy común como resultado de la forma en que funciona la numeración de la mayoría de las bibliotecas y debido a la inconveniencia de los cambios en el nombre del paquete.
Si utiliza un esquema de número de versión punteado XYZ La versión "micro" Z a menudo cambia en las correcciones de errores, el número "menor" Y cambia en los cambios compatibles con versiones anteriores y el número de versión "mayor" X tiene que cambiar en los cambios de API (y a veces lo hace en mayor funcionalidad adicional).
Nunca debería haber una razón por la que no desea que se corrijan los errores más recientes, y los cambios compatibles con versiones anteriores tampoco deberían dañar su software.
Si la biblioteca se desarrolla de esa manera, siempre debería poder reemplazar XYZ por X. (Y + m). (Z + n). para cualquier m y n dado. Es decir, siempre debe poder reemplazar su biblioteca con la última de la misma serie de números principales. Y si los desarrolladores de la biblioteca son cuidadosos y el próximo número principal es compatible (por ejemplo, por el anuncio de desaprobar las cosas, pero no eliminarlas aún), incluso puede usar el siguiente número principal.
Para los desarrolladores de paquetes, esto significa que pueden usar el nombre con solo uno, o incluso sin nombre de número para darle la última versión simplemente actualizando el paquete. Si envían una biblioteca en un paquete, abc2
entonces tienen que pasar por aros para mover su propio software que se basa en la abc2
actualización para usar abc3
, a veces con paquetes de transición. Es más conveniente omitir el número de versión principal de una biblioteca si eso funciona para la mayoría de los paquetes dependientes. Entonces, incluso si ambos abc2
y abc3
deberían estar disponibles en algún momento disponibles en una distribución, a abc3
menudo se llama abc
(tal como abc2
se llamó cuando abc3
aún no había), y tan pronto como ningún paquete depende de abc2
la distribución, es posible descartarabc2
en total.
El esquema de numeración no se sigue de manera uniforme, pero solo puedo imaginar que con el advenimiento de Internet difundiendo información sobre cómo usar dicho esquema, y la presión de los usuarios de la biblioteca (incluidos los desarrolladores de distribución) para aclarar cosas importantes como la compatibilidad con versiones anteriores sin tener que leer un archivo de CAMBIOS incluido en la biblioteca, ha contribuido a que esto se haya vuelto más común.
Un ejemplo de contador, pero no de una biblioteca es el intérprete de python, que no es compatible con sus objetos compartidos y el formato de decapado en un cambio de número menor. Por lo tanto, verá paquetes para python (el último en la serie 2.7) y python3 (el último en la serie actualmente python3.4), así como paquetes explícitos para python 2.6 (que no se vuelven menos comunes) y python 3.3.