J’ai créé une toute petite librairie nommée “panversion” permettant de comparer et donc trier des versions.
L’idée de base c’est de l’utiliser dans mon autre projet “packmon”, mais je voulais la séparer pour qu’elle puisse potentiellement servir à d’autres projets.
Elle support les versions sémantiques et les versions specifiers de Python pour le moment. Si vous connaissez un autre système de numérotation de version, ça m’intéresse ;o)
mais leur classe Version n’implémente pas de parseur, les classes filles s’en occupent, c’est différent. Par contre j’aime bien leur implémentation des comparaison riches !
une regex verbeuse c’est un truc avec des commentaires ?
Je peux en rajouter. J’ai fait une ligne par “truc important” pour bien visualiser. Je mélange plusieurs regex (semantic et specifiers), je trouvais ça plus lisible.
Je vais voir pour les tests oui, merci !
Et enfin, c’est quoi ce que tu appelles les comparaisons riches ?
Mais les numéros de version, même s’il ne sont pas des Semantic Version, doivent être conforme à la spécification
Selon la spécification et la librairie de vérification, "1.0.0-alpha.beta” n’est pas une “version” conforme. Le build d’un package échoue avec cette chaîne de caractères.
On peut avoir “1.0.0-alpha”, “1.0.0-beta”, “1.0.0-alpha.post”, “1.0.0-alpha+beta” mais quel en serait le sens ?
Oui, mais mon paquet python n’est pas fait que pour du python. Il gère plusieurs types de Version. Donc pour un paquet python, utiliser la lib packaging peut être suffisante.
Mais pour d’autres sujets, ça prend en compte les autres types de nommage de Versions.