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
Untuk menghentikan paket, buka Kelola paket dan pilih Penghentian:
Pilih versi yang ingin Anda hentikan. Jika Anda ingin menghentikan semua versi, pilih opsi Pilih semua versi .
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.
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).
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
- Tinjau persyaratan transfer popularitas.
- 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.Web
Contoso.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 .