Vue d’ensemble de la façon dont .NET est versionné

Le runtime et le Kit de développement logiciel (SDK) .NET ajoutent de nouvelles fonctionnalités à différentes fréquences. En général, le Kit de développement logiciel (SDK) est mis à jour plus fréquemment que le runtime. Cet article explique les numéros de version du runtime et du Kit de développement logiciel (SDK).

.NET publie une nouvelle version majeure tous les mois de novembre. Les versions numérotées paires, telles que .NET 6 ou .NET 8, sont prises en charge à long terme (LTS). Les versions numérotées impaires sont prises en charge jusqu’à la prochaine version majeure. La dernière version de .NET est .NET 6.

Informations détaillées sur la gestion des versions

Le runtime .NET adopte une approche de type majeur/mineur/correctif de la gestion de versions qui adhère à la gestion sémantique de versions.

Toutefois, le Kit de développement logiciel (SDK) .NET ne suit pas le contrôle de version sémantique. Le Kit de développement logiciel (SDK) .NET est publié plus rapidement et ses numéros de version doivent communiquer à la fois le runtime aligné et les versions mineures et correctives du SDK.

Les deux premières positions du numéro de version du Kit de développement logiciel (SDK) .NET correspondent à la version du runtime .NET avec laquelle il a été publiée. Chaque version du SDK peut créer des applications pour ce runtime ou toute version antérieure.

La troisième position du numéro de la version du SDK indique le numéro mineur et de correctif. La version mineure est multipliée par 100. Les deux derniers chiffres représentent le numéro du correctif. La version mineure 1 avec version de correctif 2 serait représentée par le chiffre 102. Par exemple, voici une séquence possible de numéros de version du runtime et du SDK :

Modifier Runtime .NET KIT DE DÉVELOPPEMENT LOGICIEL (SDK) .NET (*)
Version initiale 5.0.0 5.0.100
Correctif de SDK 5.0.0 5.0.101
Correctif de SDK et du runtime 5.0.1 5.0.102
Modifications de fonctionnalités du SDK 5.0.1 5.0.200

REMARQUES :

  • Si le Kit de développement logiciel (SDK) a 10 mises à jour de fonctionnalités avant une mise à jour de fonctionnalité de runtime, les numéros de version sont ajoutés à la série 1000. La version 5.0.1000 suit la version 5.0.900. Cette situation n’est pas censée se produire.
  • Il ne se produira pas 99 publications de correctifs sans une publication de fonctionnalité. Si une publication est proche de ce numéro, cela force une publication de fonctionnalité.

Vous trouverez plus de détails dans la proposition initiale dans le dépôt dotnet/designs.

Gestion sémantique de version

Le runtime .NET Core adhère globalement à la Gestion sémantique de version (SemVer), adoptant ainsi l’utilisation de la gestion de versions MAJOR.MINOR.PATCH, qui utilise différentes parties du numéro de version pour décrire le degré et le type de modification.

MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]

Les pièces facultatives PRERELEASE et BUILDNUMBER ne feront jamais partie des versions prises en charge, elles existent seulement sur les builds générés pendant la nuit, builds locaux générés à partir des cibles de la source et préversions non prises en charge.

Description des changements de numéro de version du runtime

  • MAJOR est incrémenté une fois par an et peut contenir :

    • Des changements significatifs dans le produit ou une nouvelle direction de produit.
    • L’API a introduit des modifications cassantes. La barre est haute pour accepter les changements cassants.
    • Une version MAJOR plus récente d’une dépendance existante est adoptée.

    Les versions majeures se produisent une fois par an et les versions numérotées paires sont des versions prises en charge à long terme (LTS). La première version LTS utilisant ce schéma de contrôle de version est .NET 6. La dernière version non-LTS est .NET 5.

  • MINOR est incrémenté quand :

    • Une surface d’exposition d’API publique est ajoutée.
    • Un nouveau comportement est ajouté.
    • Une version MINOR plus récente d’une dépendance existante est adoptée.
    • Une nouvelle dépendance est introduite.
  • PATCH est incrémenté quand :

    • Des correctifs de bogues sont effectués.
    • La prise en charge d’une plateforme plus récente est ajoutée.
    • Une version PATCH plus récente d’une dépendance existante est adoptée.
    • Toute autre modification ne relevant pas d’un des cas précédents.

Quand il existe plusieurs modifications, l’élément le plus élevé affecté par des modifications individuelles est incrémenté et les suivants sont remis à zéro. Par exemple, quand MAJOR est incrémenté, MINOR.PATCH sont remis à zéro. Lorsqu’il MINOR est incrémenté, PATCH est réinitialisé à zéro tout et MAJOR ne change pas.

Numéros de version dans les noms de fichiers

Les fichiers téléchargés pour .NET mentionnent la version, par exemple dotnet-sdk-5.0.301-win10-x64.exe.

Préversions

Pour les préversions, un -preview.[number].[build] est ajouté au numéro de version. Par exemple : 6.0.0-preview.5.21302.13.

Versions de maintenance

Une fois qu’une version est publiée, les branches de la version arrêtent généralement de produire des builds quotidiens pour commencer à produire des builds de maintenance. Pour les versions de maintenance, un -servicing-[number] est ajouté à la version. Par exemple : 5.0.1-servicing-006924.

Voir aussi