Udostępnij za pośrednictwem


Przestarzałe pakiety

Możesz wycofać pakiet, jeśli nie będziesz już obsługiwać pakietu lub chcesz zachęcić użytkowników pakietu do przejścia do innego pakietu.

Wycofanie pakietu różni się od wyrejestrowania pakietu, jak wyjaśniono poniżej:

  • Usunięcie listy pakietu uniemożliwia odnajdywanie , ponieważ jest ukryte w wynikach wyszukiwania.
  • Wycofanie pakietu umożliwia istniejącym użytkownikom pakietu dowiedzieć się, czy ma on zainstalowany lub używany w swoich projektach. Informuje również o przyczynie wycofania i alternatywnego zalecanego pakietu określonego przez Ciebie (wydawcę pakietów). Wycofanie pakietu nie powoduje cofnięcia listy pakietu.

Jako wydawca możesz zrezygnować z listy, a także wycofać pakiety.

Przepływ pracy wycofywania

  1. Aby wycofać pakiet, przejdź do pozycji Zarządzaj pakietami i wybierz pozycję Wycofaj:

    Go to deprecate package option

  2. Wybierz wersję, którą chcesz wycofać. Jeśli chcesz wycofać całą wersję, wybierz opcję Wybierz wszystkie wersje .

    Select package versions to deprecate

  3. Wybierz przyczynę wycofania. Jeśli pakiet nie jest już obsługiwany, wybierz opcję Starsza wersja. Jeśli określona wersja ma krytyczną usterkę, wybierz opcję ma krytyczne usterki . Z jakiegokolwiek innego powodu wybierz pozycję Inne. Zawsze można określić alternatywny zalecany pakiet (i wersję) oraz niestandardowy komunikat dla właścicieli.

    Select reasons alternate package recommendation and custom message

Uwaga

Komunikat niestandardowy jest wyświetlany tylko w nuget.org, ale nie od klientów. Obecnie klienci, tacy jak dotnet.exe i NuGet Menedżer pakietów, nie wyświetlają komunikatu niestandardowego.

Środowisko klienta dla przestarzałych pakietów

Gdy pakiet został przestarzały, jego odbiorcy są powiadamiani o nim w następujący sposób (w zależności od używanego klienta).

Visual Studio

Dostępne od Visual Studio 2019 w wersji 16.3

Visual Studio ostrzega o użyciu przestarzałego pakietu na Installed karcie. Zostanie wyświetlone ostrzeżenie dotyczące pakietu i jego informacji o wycofaniu (w tym przyczynę, dla którego został przestarzały, oraz alternatywny pakiet do użycia, jeśli istnieje).

Deprecated packages on Visual Studio installed tab of package manager

dotnet.exe

Dostępne począwszy od zestawu .NET SDK 3.0

Jeśli używasz dotnet.exe, możesz uruchomić polecenie dotnet list package --deprecated w folderze rozwiązania lub projektu, aby uzyskać listę przestarzałych pakietów wraz z informacjami o wycofaniu:

> 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

Przenoszenie popularności do nowszego pakietu

Autorzy pakietów, którzy przestali korzystać ze starszego pakietu, mogą zdecydować się przenieść swoją "popularność" do nowszego pakietu, aby zwiększyć ranking wyszukiwania nowszego pakietu. Ułatwia to klientom odnajdywanie nowszego pakietu zamiast przestarzałego pakietu.

Załóżmy na przykład, że mam dwa pakiety:

  • Mój przestarzały starszy pakiet z Contoso.Legacy 3 milionami plików do pobrania
  • Mój najnowszy pakiet z Contoso.Latest 5 plikami do pobrania

NuGet.org preferuje wyniki wyszukiwania z większą popularnością/pobieraniem. Biorąc pod uwagę zapytanie wyszukiwania "Contoso", mój przestarzały pakiet Contoso.Legacy prawdopodobnie plasuje się powyżej mojego najnowszego pakietu Contoso.Latest w wynikach wyszukiwania.

Aby rozwiązać ten problem, mogę zastosować się do przeniesienia popularności mojego przestarzałego starszego pakietu do mojego najnowszego pakietu. Może to spowodować Contoso.Latest , że pozycja będzie wyższa w wynikach wyszukiwania, podczas gdy Contoso.Legacy pozycja będzie niższa. Dotyczy to tylko wewnętrznych wyników popularności pakietów. Rzeczywista liczba pobierania dla każdego pakietu nie będzie miała wpływu.

Uwaga

Transfery popularności mogą znacznie utrudnić konsumentom znalezienie starszego pakietu.

Zapoznaj się z poniższą tabelą, aby dowiedzieć się, jak transfer popularności może mieć wpływ na rankingi wyszukiwania dla zapytania "Contoso":

Ranking wyszukiwania Przed transferem popularności Po transferze popularności
1 Contoso.Legacy, 3 mln plików do pobrania Contoso.Latest, 5 plików do pobrania
2 Contoso.Skaner, 2 mln plików do pobrania Contoso.Skaner, 2 mln plików do pobrania
3 Pliki do pobrania contoso.Core, 1,5 mln Pliki do pobrania contoso.Core, 1,5 mln
4 Contoso.UI, 1 mln plików do pobrania Contoso.UI, 1 mln plików do pobrania
... ... ...
20 Contoso.Latest, 5 plików do pobrania Contoso.Legacy, 3 mln plików do pobrania

Proces aplikacji transferu popularności

  1. Przejrzyj wymagania dotyczące transferu popularności.
  2. Wiadomość e-mail account@nuget.org z przestarzałym pakietem, którego popularność powinna zostać przeniesiona, oraz lista stabilnych pakietów, które powinny otrzymać transfer popularności.

Po przesłaniu wniosku powiadomimy Cię o zaakceptowaniu lub odrzuceniu aplikacji (z kryteriami, które spowodowały odrzucenie). Może być konieczne zadawanie dodatkowych pytań identyfikujących, aby potwierdzić tożsamość właściciela.

Wymagania dotyczące transferu popularności

  • Starsze pakiety i nowe pakiety muszą współużytkować wszystkich właścicieli.
  • Nowe pakiety muszą być wyraźnie powiązane ze starszymi pakietami w nazewnictwie i funkcji (tj. ewolucji lub nowej generacji).
  • Wszystkie wersje starszych pakietów muszą być przestarzałe i wskazywać nowe pakiety odbierające transfer.
  • Transfer popularności nie może spowodować nieporozumień dla użytkowników NuGet lub pogorszyć środowisko wyszukiwania NuGet.
  • Nowe pakiety muszą mieć stabilną wersję.
  • Starszy pakiet nie może otrzymywać transferów popularności z innego przestarzałego pakietu.

Zaawansowane scenariusze transferu popularności

Konsolidacje pakietów

Mogę przenieść popularność wielu przestarzałych pakietów na rzecz jednego nowego pakietu. Załóżmy na przykład, że mam 3 pakiety:

  • Mój pierwszy przestarzały starszy pakiet, Contoso.Legacy1
  • Mój drugi przestarzały starszy pakiet, Contoso.Legacy2
  • Mój nowy skonsolidowany pakiet, Contoso.Latest

Po wycofaniu Contoso.Legacy1 i Contoso.Legacy2, mogę zastosować się do przeniesienia ich popularności do Contoso.Latest.

Podziały pakietów

Popularność przestarzałego pakietu można przenieść do i podzielić między maksymalnie 5 nowszych pakietów. Jest to przydatne, jeśli funkcjonalność przestarzałego pakietu została podzielona między wiele nowych pakietów. Załóżmy na przykład, że mam 3 pakiety:

  • Mój przestarzały starszy pakiet, Contoso.Legacy
  • Mój pierwszy nowy pakiet, Contoso.Web
  • Mój drugi nowy pakiet, Contoso.Cloud

Contoso.Legacy obejmuje zarówno funkcje internetowe, jak i w chmurze, ale postanowiłem oddzielić te funkcje od różnych pakietów dla następnej generacji. Po przestarzałym Contoso.Legacy, mogę zastosować się do przeniesienia jego popularności zarówno do Contoso.Web i Contoso.Cloud.

Ostrzeżenie

Przeniesiona popularność zostanie podzielona równomiernie między wszystkie nowe pakiety. W związku z tym zalecamy przeniesienie popularności przestarzałego pakietu do jak najmniejszej liczby pakietów.

Łańcuchy transferu popularności

Przestarzały pakiet nie może przenieść jego popularności, jeśli już otrzymuje popularność z innego przestarzałego pakietu. Załóżmy na przykład, że mam 3 pakiety:

  • Mój przestarzały starszy pakiet, Contoso.First
  • Mój przestarzały starszy pakiet, Contoso.Second
  • Mój nowy pakiet, Contoso.Latest

Jeśli Contoso.First jego popularność zostanie przeniesiona, Contoso.Second, nie Contoso.Second może przenieść jego popularności do Contoso.Latest. Zamiast tego zalecamy przeniesienie popularności zarówno, Contoso.First jak i Contoso.Second do Contoso.Latest, zgodnie ze scenariuszem konsolidacji pakietów .