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
Pour déprécier un package, accédez à Gérer les packages et sélectionnez Dépréciation :
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 .
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.
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).
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é
- Passez en revue les exigences de transfert de popularité.
- 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 .