Bagikan melalui


Paket yang tidak digunakan lagi

Anda dapat menghentikan paket jika Anda tidak lagi mempertahankan paket atau jika ingin mendorong konsumen paket Anda untuk pindah ke paket lain.

Penghentian paket berbeda dari membatalkan daftar paket Anda seperti yang dijelaskan di bawah ini:

  • Membatalkan daftar paket mencegah penemuannya karena disembunyikan dalam hasil pencarian.
  • Menghentikan paket memungkinkan konsumen paket Anda yang sudah ada mencari tahu apakah mereka telah menginstal atau menggunakannya dalam proyek mereka. Ini juga memungkinkan mereka mengetahui alasan penghentian dan paket alternatif yang direkomendasikan seperti yang ditentukan oleh Anda (penerbit paket). Menghentikan paket tidak mendasarkan paket.

Sebagai penerbit, Anda dapat memilih untuk membatalkan daftar serta menghentikan paket.

Alur kerja penghentian

  1. Untuk menghentikan paket, buka Kelola paket dan pilih Penghentian:

    Go to deprecate package option

  2. Pilih versi yang ingin Anda hentikan. Jika Anda ingin menghentikan semua versi, pilih opsi Pilih semua versi .

    Select package versions to deprecate

  3. Pilih alasan penghentian. Jika paket tidak lagi dipertahankan, pilih opsi Warisan . Jika versi tertentu memiliki bug penting, pilih opsi memiliki bug penting . Untuk alasan lain, pilih Lainnya. Anda selalu dapat menentukan paket alternatif yang direkomendasikan (dan versi) dan pesan kustom kepada pemilik.

    Select reasons alternate package recommendation and custom message

Catatan

Pesan kustom hanya ditampilkan pada nuget.org tetapi tidak dari klien. Saat ini, klien seperti dotnet.exe dan Pengelola Paket NuGet tidak menampilkan pesan kustom.

Pengalaman klien untuk paket yang tidak digunakan lagi

Setelah paket tidak digunakan lagi, konsumennya diberi tahu tentang paket tersebut dengan cara berikut (tergantung pada klien yang digunakan).

Visual Studio

Tersedia mulai Visual Studio 2019 versi 16.3

Visual Studio memperingatkan tentang penggunaan paket yang tidak digunakan lagi pada tabInstalled. Ini akan menunjukkan peringatan untuk paket dan informasi penghentiannya (termasuk alasan tidak digunakan lagi dan paket alternatif untuk digunakan sebagai gantinya, jika ada).

Deprecated packages on Visual Studio installed tab of package manager

dotnet.exe

Tersedia dimulai dengan .NET SDK 3.0

Jika Anda menggunakan dotnet.exe, Anda dapat menjalankan perintah dotnet list package --deprecated pada folder solusi atau proyek untuk mendapatkan daftar paket yang tidak digunakan lagi bersama dengan informasi penghentian:

> 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

Mentransfer popularitas ke paket yang lebih baru

Penulis paket yang telah menghentikan paket warisan dapat memilih untuk mentransfer "popularitas" ke paket yang lebih baru untuk meningkatkan peringkat pencarian paket yang lebih baru. Ini membantu pelanggan menemukan paket yang lebih baru alih-alih paket yang tidak digunakan lagi.

Misalnya, saya memiliki dua paket:

  • Paket warisan saya yang tidak digunakan lagi, Contoso.Legacy dengan 3 juta unduhan
  • Paket terbaru saya, Contoso.Latest dengan 5 unduhan

NuGet.org lebih suka hasil pencarian dengan unduhan/popularitas yang lebih tinggi. Mengingat kueri pencarian "Contoso", paket Contoso.Legacy saya yang tidak digunakan lagi kemungkinan akan berada di atas paket Contoso.Latest terbaru saya dalam hasil pencarian.

Untuk mengatasi masalah ini, saya dapat mengajukan untuk mentransfer popularitas paket warisan saya yang tidak digunakan lagi ke paket terbaru saya. Ini akan menyebabkan Contoso.Latest peringkat lebih tinggi dalam hasil pencarian, sementara Contoso.Legacy akan peringkat lebih rendah. Hanya skor popularitas internal untuk paket yang terpengaruh, jumlah unduhan aktual untuk setiap paket tidak akan terpengaruh.

Catatan

Transfer popularitas dapat membuatnya jauh lebih sulit bagi konsumen untuk menemukan paket warisan.

Lihat tabel di bawah ini untuk mendapatkan gambaran konkret tentang bagaimana transfer popularitas dapat memengaruhi peringkat pencarian untuk kueri "Contoso":

Mencari peringkat Sebelum transfer popularitas Setelah transfer popularitas
1 Contoso.Legacy, unduhan 3M Contoso.Latest, 5 unduhan
2 Contoso.Scanner, unduhan 2M Contoso.Scanner, unduhan 2M
3 Contoso.Core, unduhan 1.5M Contoso.Core, unduhan 1.5M
4 Contoso.UI, unduhan 1M Contoso.UI, unduhan 1M
... ... ...
20 Contoso.Latest, 5 unduhan Contoso.Legacy, unduhan 3M

Proses aplikasi transfer popularitas

  1. Tinjau persyaratan transfer popularitas.
  2. Email account@nuget.org dengan paket yang tidak digunakan lagi yang popularitasnya harus ditransfer, dan, daftar paket stabil yang harus menerima transfer popularitas.

Setelah aplikasi diajukan, kami akan memberi tahu Anda tentang penerimaan atau penolakan aplikasi Anda (dengan kriteria yang menyebabkan penolakan). Kami mungkin perlu mengajukan pertanyaan identifikasi tambahan untuk mengonfirmasi identitas pemilik.

Persyaratan transfer popularitas

  • Paket warisan dan paket baru harus berbagi semua pemilik.
  • Paket baru harus jelas terkait dengan paket warisan dalam penamaan dan fungsi (yaitu evolusi atau generasi berikutnya).
  • Semua versi paket warisan harus tidak digunakan lagi dan menunjuk ke paket baru yang menerima transfer.
  • Transfer popularitas tidak boleh menyebabkan kebingungan bagi pengguna NuGet atau memperburuk pengalaman pencarian NuGet.
  • Paket baru harus memiliki versi yang stabil.
  • Paket warisan tidak boleh menerima transfer popularitas dari paket lain yang tidak digunakan lagi.

Skenario transfer popularitas tingkat lanjut

Konsolidasi paket

Saya dapat mentransfer popularitas beberapa paket yang tidak digunakan lagi demi satu paket baru. Misalnya, saya memiliki 3 paket:

  • Paket warisan pertama saya yang tidak digunakan lagi, Contoso.Legacy1
  • Paket warisan kedua saya yang tidak digunakan lagi, Contoso.Legacy2
  • Paket konsolidasi baru saya, Contoso.Latest

Setelah saya menghentikan Contoso.Legacy1 dan Contoso.Legacy2, saya dapat mengajukan permohonan untuk mentransfer popularitas mereka ke Contoso.Latest.

Pemisahan paket

Popularitas paket yang tidak digunakan lagi dapat ditransfer ke, dan dibagi di antara, hingga 5 paket yang lebih baru. Ini berguna jika fungsionalitas paket yang tidak digunakan lagi telah dibagi di antara beberapa paket baru. Misalnya, saya memiliki 3 paket:

  • Paket warisan saya yang tidak digunakan lagi, Contoso.Legacy
  • Paket baru pertamaku, Contoso.Web
  • Paket baru kedua saya, Contoso.Cloud

Contoso.Legacy mencakup fungsionalitas web dan cloud, tetapi saya memutuskan untuk memisahkan fungsionalitas tersebut menjadi paket yang berbeda untuk generasi berikutnya. Setelah saya menghentikan Contoso.Legacy, saya dapat mengajukan permohonan untuk mentransfer popularitasnya ke dan Contoso.WebContoso.Cloud.

Peringatan

Popularitas yang ditransfer akan dibagi secara merata di antara semua paket baru. Akibatnya, sebaiknya transfer popularitas paket Anda yang tidak digunakan lagi ke paket seserang mungkin.

Rantai transfer popularitas

Paket yang tidak digunakan lagi tidak dapat mentransfer popularitasnya jika sudah menerima popularitas dari paket lain yang tidak digunakan lagi. Misalnya, saya memiliki 3 paket:

  • Paket warisan saya yang tidak digunakan lagi, Contoso.First
  • Paket warisan saya yang tidak digunakan lagi, Contoso.Second
  • Paket baru saya, Contoso.Latest

Jika Contoso.First mentransfer popularitasnya ke Contoso.Second, maka Contoso.Second tidak dapat mentransfer popularitasnya ke Contoso.Latest. Sebagai gantinya, sebaiknya transfer popularitas baik Contoso.First dan Contoso.Second ke Contoso.Latest, sesuai skenario Konsolidasi paket .