Convertisseur de formats de versions de paquets
Collez une ou plusieurs chaînes de version (une par ligne) pour savoir lesquelles sont valides en SemVer, PEP 440, dans les deux ou dans aucun format, et pourquoi une version acceptée dans un écosystème peut être rejetée ou avoir silencieusement un autre sens dans l'autre.
Traitement effectué localement dans votre navigateur. Votre fichier n’est jamais téléversé.
Comment utiliser cet outil outil
- Collez une ou plusieurs chaînes de version, une par ligne ; rien ne quitte votre navigateur.
- Sélectionnez « Vérifier les versions ».
- Examinez chaque valeur signalée : grammaire non respectée ou différence sémantique subtile, et pourquoi.
- Utilisez la réécriture proposée lorsqu'elle existe. Certaines conversions ne sont qu'approximatives ; elles sont expliquées plutôt qu'appliquées silencieusement.
Hypothèses
- Reconnaît les formes courantes de deux grammaires : SemVer 2.0.0 (`MAJOR.MINOR.PATCH[-prerelease][+build]`) et PEP 440 (`[N!]N(.N)*[{a|b|rc}N][.postN][.devN][+local]`). Les schémas inhabituels ou propres à un fournisseur (suffixes époque/révision Debian, qualificateurs Maven) ne sont pas couverts.
- La comparaison et l'ordre de deux numéros de version ne sont pas implémentés : seuls l'analyse correcte, la validation et les conversions sûres aller-retour le sont.
- Une réécriture n'est proposée que si elle est sans ambiguïté et sans perte, par exemple retirer le préfixe `v` d'une étiquette git ou compléter une version à deux composants. Un suffixe dev/post PEP 440 n'a pas d'équivalent SemVer exact et n'est pas réécrit automatiquement, même si une correspondance approximative est expliquée.
Sources et données de référence
Méthodologie
Chaque ligne est analysée selon les deux grammaires au moyen d'expressions régulières établies à partir des spécifications (expression officielle de SemVer 2.0.0 et motif PEP 440 couvrant époque, version, préversion, postversion, développement et version locale). Les divergences documentées sont ensuite vérifiées : tiret exigé par SemVer avant une préversion mais pas par PEP 440, versions dev/post PEP 440 sans équivalent SemVer, sémantique différente des métadonnées de build (ignorées pour l'ordre SemVer, contrairement aux versions locales PEP 440), préfixe d'étiquette git `v` inattendu, zéro initial invalide en SemVer strict et version à deux composants permise en PEP 440 mais pas SemVer.
Exemple détaillé
Préversion Python sans le tiret exigé par SemVer
Données d’entrée: 1.0.0a1
Résultat: Valide en PEP 440 (alpha 1), mais SemVer strict exige un tiret avant tout identifiant de préversion et le rejette. Signalé comme erreur avec la réécriture SemVer `1.0.0-a1`.
Métadonnées de build et version locale PEP 440
Données d’entrée: 1.2.3+build1
Résultat: Texte valide dans les deux grammaires, mais SemVer ignore `+build1` pour l'ordre (`1.2.3+build1` == `1.2.3+build2`), tandis que le segment équivalent de version locale PEP 440 influe sur l'ordre. Avertissement sur cette différence sémantique ; aucune réécriture, car l'ambiguïté vient des spécifications et non de la chaîne.
Suffixe de version de développement PEP 440
Données d’entrée: 1.0.0.dev0
Résultat: Valide en PEP 440 (version de développement antérieure à 1.0.0), mais SemVer n'a pas de concept directement équivalent. Signalé comme erreur ; une forme approximative telle que `1.0.0-dev.0` est parfois utilisée, mais elle impose des règles d'ordre différentes et n'est pas proposée comme conversion automatique.
Conseils pratiques
- Si un paquet doit être publié à la fois sous une identité de style npm (SemVer) et PyPI (PEP 440), choisissez une forme conforme à la grammaire la plus stricte : `MAJOR.MINOR.PATCH` avec préversion précédée d'un tiret (ex. `1.2.3-rc1`) est valide et a le même sens dans les deux.
- Ne vous fiez pas à l'ordre des métadonnées de build ou des versions locales PEP 440 pour une décision importante : les deux écosystèmes divergent sur leur effet de précédence.
- Retirez le préfixe `v` d'une étiquette git avant de transmettre la version à un analyseur ou une bibliothèque de comparaison ; il peut être supprimé sans risque et aucune grammaire ne l'attend.
Erreurs fréquentes
- Supposer que `1.0.0a1` et `1.0.0-a1` ont le même sens partout : la première n'est valide qu'en PEP 440 ; la seconde dans les deux. Un analyseur SemVer strict rejette la première.
- Traiter un suffixe dev/post PEP 440 comme s'il avait une traduction SemVer exacte. Il n'en existe pas ; toute correspondance est approximative et modifie l'ordre.
Questions fréquentes
Pourquoi `1.0.0a1` est-il signalé comme erreur plutôt que comme avertissement ?
Ce n'est pas seulement une forme inhabituelle : un analyseur SemVer strict ne peut pas l'analyser, comme un analyseur JSON échoue sur une virgule finale. C'est une incompatibilité franche, pas une préférence de style.
Pourquoi l'outil ne réécrit-il pas automatiquement `1.0.0.dev0` en équivalent SemVer ?
Aucune forme n'a une équivalence garantie. Les versions dev/post PEP 440 modélisent l'avant/après d'une version différemment des champs préversion/métadonnées de build SemVer ; toute forme SemVer est une approximation dont l'ordre change. Les réécritures automatiques sont réservées aux transformations réellement sans perte.
`1.2.3+build1` est-il réellement cassé ?
Non, le texte est valide dans les deux grammaires. Le risque concerne l'effet du suffixe build/version locale sur la comparaison, qui diffère entre les outils des deux écosystèmes.
Une version `.dev` PEP 440 peut-elle être traduite exactement en SemVer ?
Il n'existe pas de traduction exacte garantie. L'ordre des versions de développement PEP 440 n'est pas reproduit dans tous les cas par les identifiants de préversion SemVer. Une forme comme `1.0.0-dev.0` peut être une approximation, pas une version équivalente. Cet outil vérifie les formes reconnues et les notes de portabilité ; il n'exécute pas de résolveur de gestionnaire de paquets ni ne compare les versions.
Dernière vérification : 2026-09-25
Vérificateur de grammaire, pas résolveur complet de versions de gestionnaire de paquets : reconnaît SemVer 2.0.0 et les formes courantes de PEP 440, pas les schémas spécifiques (révisions Debian, qualificateurs Maven), et n'implémente pas la comparaison ni l'ordre de l'un ou l'autre format.
Les préférences de thème et d’outils, ainsi que les listes enregistrées et récemment utilisées, sont stockées uniquement dans ce navigateur.