Aracılığıyla paylaş


Paketleri kullanım dışı bırakılıyor

Bir paketi artık tutmazsanız veya paketinizin tüketicilerini başka bir pakete geçmeye teşvik etmek istiyorsanız paketi kullanımdan kaldırabilirsiniz.

Paketin kullanımdan kaldırılması, aşağıda açıklandığı gibi paketinizin listesini kaldırmaktan farklıdır:

  • Bir paketin listesinin kaldırılması , arama sonuçlarında gizlendiği için paketin bulunmasını engeller.
  • Paketin kullanım dışı bırakılması , paketinizin mevcut tüketicilerinin paketin projelerinde yüklü olup olmadığını veya kullanılıp kullanılmadıklarını öğrenmesine olanak tanır. Ayrıca kullanımdan kaldırma nedenini ve sizin belirttiğiniz (paket yayımcısı) alternatif bir önerilen paketi de bilmelerini sağlar. Paketin kullanım dışı bırakılması paketin listesini kaldırmaz.

Yayımcı olarak hem listeden kaldırmayı hem de paketleri kullanımdan kaldırmayı seçebilirsiniz.

Kullanımdan kaldırma iş akışı

  1. Paketi kullanımdan kaldırma için Paketleri yönet'e gidin ve Kullanımdan kaldır'ı seçin:

    Go to deprecate package option

  2. Kullanımdan kaldırmayı istediğiniz sürümü seçin. Tüm sürümü kullanımdan kaldıracaksanız Tüm sürümleri seç seçeneğini belirleyin.

    Select package versions to deprecate

  3. Kullanımdan kaldırılması için bir neden seçin. Paket artık korunmazsa Eski seçeneğini belirleyin. Belirli bir sürümde kritik bir hata varsa , Kritik hataları var seçeneğini belirleyin. Başka bir nedenle Diğer'i seçin. İstediğiniz zaman alternatif bir önerilen paket (ve sürüm) ve sahiplere özel bir ileti belirtebilirsiniz.

    Select reasons alternate package recommendation and custom message

Not

Özel ileti yalnızca nuget.org gösterilir ancak istemcilerden gösterilmez. Şu anda ve gibi dotnet.exe istemciler NuGet Paket Yöneticisi özel iletiyi göstermiyor.

Kullanım dışı paketler için istemci deneyimi

Bir paket kullanım dışı bırakıldıktan sonra, tüketicilerine bu konuda aşağıdaki yollarla bildirim gönderilir (kullanılan istemciye bağlı olarak).

Visual Studio

Visual Studio 2019 sürüm 16.3'den itibaren kullanılabilir

Visual Studio, sekmedeki kullanım dışı bir paketin kullanımı hakkında uyarırInstalled. Paket ve kullanımdan kaldırma bilgileri için bir uyarı gösterir (kullanım dışı olmasının nedeni ve varsa bunun yerine kullanılacak alternatif paket de dahil).

Deprecated packages on Visual Studio installed tab of package manager

dotnet.exe

.NET SDK 3.0'dan itibaren kullanılabilir

dotnet.exe kullanıyorsanız, kullanım dışı bırakılan paketlerin listesini ve kullanımdan kaldırma bilgilerini almak için çözüm veya proje klasöründe komutunu dotnet list package --deprecated çalıştırabilirsiniz:

> 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

Popülerliği daha yeni bir pakete aktarma

Eski bir paketi kullanımdan kaldırmış olan paket yazarları, daha yeni paketin arama derecelendirmesini artırmak için "popülerliğini" daha yeni bir pakete aktarmayı seçebilir. Bu, müşterilerin kullanım dışı bırakılan paket yerine daha yeni paketi bulmasına yardımcı olur.

Örneğin, iki paketim olduğunu varsayalım:

  • 3 milyon indirme ile kullanım dışı bırakılan eski paketim Contoso.Legacy
  • En son paketim, Contoso.Latest 5 indirme ile

NuGet.org daha yüksek indirme/popülerliğe sahip arama sonuçlarını tercih eder. "Contoso" arama sorgusu göz önünde bulundurulduğunda, kullanım dışı bırakılan paketim Contoso.Legacy büyük olasılıkla arama sonuçlarında en son paketimin Contoso.Latest üzerinde yer alır.

Bu sorunu çözmek için, kullanım dışı bırakılan eski paketimin popülerliğini en son paketime aktarmak için başvurabilirim. Bu, arama sonuçlarında Contoso.Legacy daha yüksek, daha düşük bir sıralamaya neden Contoso.Latest olur. Yalnızca paketlerin iç popülerlik puanları etkilenir, her paket için gerçek indirme sayısı etkilenmez.

Not

Popülerlik aktarımları, tüketicilerin eski paketi bulmasını önemli ölçüde zorlaştırabilir.

Popülerlik aktarımının "Contoso" sorgusunun arama derecelendirmelerini nasıl etkileyebileceklerine ilişkin somut bir fikir edinmek için aşağıdaki tabloya bakın:

Arama derecelendirmesi Popülerlik aktarımı öncesinde Popülerlik aktarımının ardından
1 Contoso.Legacy, 3M indirmeleri Contoso.Latest, 5 indirme
2 Contoso.Scanner, 2M indirme Contoso.Scanner, 2M indirme
3 Contoso.Core, 1,5M indirme Contoso.Core, 1,5M indirme
4 Contoso.UI, 1M indirme Contoso.UI, 1M indirme
... ... ...
20 Contoso.Latest, 5 indirme Contoso.Legacy, 3M indirmeleri

Popülerlik aktarımı uygulama süreci

  1. Popülerlik aktarımı gereksinimlerini gözden geçirin.
  2. Popülerliği aktarılması gereken kullanım dışı paketi ve popülerlik aktarımını alması gereken kararlı paket listesini içeren e-posta account@nuget.org .

Başvuru gönderildikten sonra, uygulamanızın kabulü veya reddedilmesi (reddedilmesine neden olan ölçütler ile) hakkında sizi bilgilendireceğiz. Sahip kimliğini onaylamak için ek tanımlayıcı sorular sormamız gerekebilir.

Popülerlik aktarımı gereksinimleri

  • Eski paketler ve yeni paketler tüm sahipleri paylaşmalıdır.
  • Yeni paketlerin adlandırma ve işlevdeki eski paketle (yani bir evrim veya yeni nesil) açıkça ilişkili olması gerekir.
  • Eski paketlerin tüm sürümleri kullanım dışı bırakılmalıdır ve aktarımı alan yeni paketlere işaret etmelidir.
  • Popülerlik aktarımı, NuGet kullanıcılar için karışıklığa neden olmamalıdır veya NuGet arama deneyimini kötülememelidir.
  • Yeni paketlerin kararlı bir sürümü olmalıdır.
  • Eski paket, başka bir kullanım dışı paketten popülerlik aktarımları almamalıdır.

Gelişmiş popülerlik aktarımı senaryoları

Paket birleştirmeleri

Kullanım dışı bırakılan birden çok paketin popülerliğini tek bir yeni pakete göre aktarabilirim. Örneğin, 3 paketim olduğunu varsayalım:

  • İlk kullanım dışı bırakılan eski paketim, Contoso.Legacy1
  • İkinci kullanım dışı bırakılan eski paketim, Contoso.Legacy2
  • Yeni birleştirilmiş paketim, Contoso.Latest

ve Contoso.Legacy2'yi kullanımdan Contoso.Legacy1 kaldırdıktan sonra, popülerliklerini 'a aktarmak için Contoso.Latestbaşvurabilirim.

Paket bölmeleri

Kullanım dışı bırakılan bir paketin popülaritesi en fazla 5 yeni pakete aktarılabilir ve bunlar arasında bölünebilir. Kullanım dışı bırakılmış bir paketin işlevselliği birden çok yeni paket arasında bölünmüşse bu yararlı olur. Örneğin, 3 paketim olduğunu varsayalım:

  • Kullanım dışı bırakılan eski paketim, Contoso.Legacy
  • İlk yeni paketim, Contoso.Web
  • İkinci yeni paketim, Contoso.Cloud

Contoso.Legacy hem web hem de bulut işlevselliğini içeriyor, ancak bu işlevselliği yeni nesil için farklı paketlere ayırmaya karar verdim. 'yi kullanımdan Contoso.Legacykaldırdıktan sonra popülerliğini hem hem de Contoso.WebContoso.Cloud'ye aktarmak için başvurabilirim.

Uyarı

Aktarılan popülerlik tüm yeni paketler arasında eşit olarak bölünür. Sonuç olarak, kullanım dışı bırakılan paketinizin popülerliğini mümkün olduğunca az pakete aktarmanızı öneririz.

Popülerlik aktarım zincirleri

Kullanım dışı bırakılmış bir paket, zaten başka bir kullanım dışı paketten popülerlik alıyorsa popülerliğini aktaramaz. Örneğin, 3 paketim olduğunu varsayalım:

  • Kullanım dışı bırakılan eski paketim, Contoso.First
  • Kullanım dışı bırakılan eski paketim, Contoso.Second
  • Yeni paketim, Contoso.Latest

Popülaritesini 'a Contoso.SecondContoso.Second, aktarırsaContoso.First, popülaritesini adresine Contoso.Latestaktaramaz. Bunun yerine, paket birleştirme senaryosuna göre hem hem de Contoso.FirstContoso.Second 'nin popülerliğini 'e Contoso.Latestaktarmanızı öneririz.