Share via


Dépréciation des packages

Vous pouvez déprécier un package si vous ne conservez plus de package ou si vous souhaitez encourager les consommateurs de votre package à passer à un autre package.

La dépréciation du package est différente de la non-liste de votre package, comme expliqué ci-dessous :

  • La suppression de la liste d’un package empêche sa découverte, car elle est masquée dans les résultats de la recherche.
  • La dépréciation d’un package permet aux consommateurs existants de votre package de déterminer s’ils l’ont installé ou utilisé dans leurs projets. Il leur permet également de connaître la raison de la dépréciation et d’un autre package recommandé comme spécifié par vous (l’éditeur de package). La dépréciation d’un package ne supprime pas la liste du package.

En tant qu’éditeur, vous pouvez choisir d’annuler la liste et de déprécier les packages.

Flux de travail de dépréciation

  1. Pour déprécier un package, accédez à Gérer les packages et sélectionnez Dépréciation :

    Go to deprecate package option

  2. Sélectionnez la version que vous souhaitez déprécier. Si vous souhaitez déprécier toutes les versions, sélectionnez l’option Sélectionner toutes les versions .

    Select package versions to deprecate

  3. Choisissez une raison de dépréciation. Si le package n’est plus conservé, choisissez l’option Héritée . Si la version spécifique présente un bogue critique, choisissez l’option bogues critiques . Pour toute autre raison, sélectionnez Autre. Vous pouvez toujours spécifier un autre package recommandé (et une version) et un message personnalisé aux propriétaires.

    Select reasons alternate package recommendation and custom message

Notes

Le message personnalisé s’affiche uniquement sur nuget.org mais pas à partir des clients. Actuellement, les clients tels que dotnet.exe et les NuGet Gestionnaire de package n’affichent pas le message personnalisé.

Expérience client pour les packages déconseillés

Une fois qu’un package a été déprécié, ses consommateurs sont avertis de lui de la manière suivante (en fonction du client utilisé).

Visual Studio

Disponible à partir de Visual Studio 2019 version 16.3

Visual Studio avertit de l’utilisation d’un package déconseillé sur l’ongletInstalled. Il affiche un avertissement pour le package et ses informations de dépréciation (y compris la raison pour laquelle il a été déconseillé et le package alternatif à utiliser à la place, s’il est présent).

Deprecated packages on Visual Studio installed tab of package manager

dotnet.exe

Disponible à partir du Kit de développement logiciel (SDK) .NET 3.0

Si vous utilisez dotnet.exe, vous pouvez exécuter la commande dotnet list package --deprecated sur la solution ou le dossier du projet pour obtenir la liste des packages déconseillés, ainsi que les informations de dépréciation :

> dotnet list package --deprecated

The following sources were used:
   https://api.nuget.org/v3/index.json

Project `My.Test.Project` has the following deprecated packages
   [netcoreapp3.0]:
   Top-level Package      Resolved   Reason(s)   Alternative
   > My.Sample.Lib        6.0.0      Legacy      My.Awesome.Package

Transférer la popularité vers un package plus récent

Les auteurs de packages qui ont déprécié un package hérité peuvent choisir de transférer sa « popularité » vers un package plus récent pour améliorer le classement de recherche du package plus récent. Cela permet aux clients de découvrir le package plus récent au lieu du package déprécié.

Par exemple, supposons que j’ai deux packages :

  • Mon package hérité déconseillé, Contoso.Legacy avec 3 millions de téléchargements
  • Mon dernier package, Contoso.Latest avec 5 téléchargements

NuGet.org préfère les résultats de recherche avec des téléchargements/popularité plus élevés. Compte tenu de la requête de recherche « Contoso », mon package Contoso.Legacy déconseillé est probablement classé au-dessus de mon dernier package Contoso.Latest dans les résultats de recherche.

Pour résoudre ce problème, je peux appliquer pour transférer la popularité de mon package hérité déconseillé vers mon dernier package. Cela entraînerait Contoso.Latest un classement plus élevé dans les résultats de recherche, tandis que Contoso.Legacy le classement serait inférieur. Seuls les scores de popularité internes pour les packages sont affectés, le nombre réel de téléchargements pour chaque package n’est pas affecté.

Notes

Les transferts de popularité peuvent compliquer considérablement la recherche du package hérité par les consommateurs.

Consultez le tableau ci-dessous pour obtenir une idée concrète de la façon dont un transfert de popularité peut avoir un impact sur les classements de recherche pour la requête « Contoso » :

Classement de la recherche Avant le transfert de popularité Après le transfert de popularité
1 Contoso.Legacy, téléchargements 3M Contoso.Latest, 5 téléchargements
2 Contoso.Scanner, 2M téléchargements Contoso.Scanner, 2M téléchargements
3 Contoso.Core, téléchargements 1.5M Contoso.Core, téléchargements 1.5M
4 Contoso.UI, 1M téléchargements Contoso.UI, 1M téléchargements
... ... ...
20 Contoso.Latest, 5 téléchargements Contoso.Legacy, téléchargements 3M

Processus d’application de transfert de popularité

  1. Passez en revue les exigences de transfert de popularité.
  2. E-mail account@nuget.org avec le package déconseillé dont la popularité doit être transférée, et la liste des packages stables qui doivent recevoir le transfert de popularité.

Une fois l’application soumise, nous vous informerons de l’acceptation ou du rejet de votre demande (avec les critères qui ont provoqué le rejet). Il nous arrive de poser des questions d’identification supplémentaires pour confirmer l’identité du propriétaire.

Exigences de transfert de popularité

  • Les packages hérités et les nouveaux packages doivent partager tous les propriétaires.
  • Les nouveaux packages doivent être clairement liés aux packages hérités dans le nommage et la fonction (c’est-à-dire une évolution ou une prochaine génération).
  • Toutes les versions des packages hérités doivent être déconseillées et pointer vers les nouveaux packages recevant le transfert.
  • Le transfert de popularité ne doit pas entraîner de confusion pour NuGet utilisateurs ou aggraver l’expérience de recherche NuGet.
  • Les nouveaux packages doivent avoir une version stable.
  • Le package hérité ne doit pas recevoir de transferts de popularité d’un autre package déconseillé.

Scénarios avancés de transfert de popularité

Consolidations de packages

Je peux transférer la popularité de plusieurs packages déconseillés en faveur d’un seul nouveau package. Par exemple, supposons que j’ai 3 packages :

  • Mon premier package hérité déconseillé, Contoso.Legacy1
  • Mon deuxième package hérité déconseillé, Contoso.Legacy2
  • Mon nouveau package consolidé, Contoso.Latest

Après avoir déprécié Contoso.Legacy1 et Contoso.Legacy2, je peux appliquer pour transférer leur popularité à Contoso.Latest.

Fractionnements de package

La popularité d’un package déprécié peut être transférée et divisée entre, jusqu’à 5 packages plus récents. Cela est utile si la fonctionnalité d’un package déconseillé a été divisée entre plusieurs nouveaux packages. Par exemple, supposons que j’ai 3 packages :

  • Mon package hérité déconseillé, Contoso.Legacy
  • Mon premier nouveau package, Contoso.Web
  • Mon deuxième nouveau package, Contoso.Cloud

Contoso.Legacy inclut à la fois les fonctionnalités web et cloud, mais j’ai décidé de séparer cette fonctionnalité en différents packages pour la prochaine génération. Après avoir déprécié Contoso.Legacy, je peux appliquer pour transférer sa popularité à la fois Contoso.Web et Contoso.Cloud.

Avertissement

La popularité transférée sera répartie uniformément entre tous les nouveaux packages. Par conséquent, nous vous recommandons de transférer la popularité de votre package déconseillé vers le moins de packages possible.

Chaînes de transfert de popularité

Un package déconseillé ne peut pas transférer sa popularité s’il reçoit déjà la popularité d’un autre package déprécié. Par exemple, supposons que j’ai 3 packages :

  • Mon package hérité déconseillé, Contoso.First
  • Mon package hérité déconseillé, Contoso.Second
  • Mon nouveau package, Contoso.Latest

Si Contoso.First transfère sa popularité à Contoso.Second, alors Contoso.Second ne peut pas transférer sa popularité à Contoso.Latest. Au lieu de cela, nous vous recommandons de transférer la popularité des deux Contoso.First et Contoso.Second vers Contoso.Latest, conformément au scénario de consolidation des packages .