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

  1. Collez une ou plusieurs chaînes de version, une par ligne ; rien ne quitte votre navigateur.
  2. Sélectionnez « Vérifier les versions ».
  3. Examinez chaque valeur signalée : grammaire non respectée ou différence sémantique subtile, et pourquoi.
  4. 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

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
Erreurs fréquentes

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.