Załóżmy, że chcę opublikować pakiet NuGet na stronie nuget.org.Jak autorzy pakietów NuGet unikają wersji Hell?
Zależy od, na przykład, Newtonsoft.Json. Tak więc ustawię tę zależność w .nuspec
i dołączam numer wersji N..Json 1 (dla sake args).
Jeśli N..Json przenosi się na 2, a ludzie używający mojego pakietu również przechodzą na 2, to czy są teraz w pikle, ponieważ mój pakiet chce 1 i używają 2?
Przypuszczalnie, aby dodać do mojej paczki, musieliby mieć albo nie mieć już zainstalowanego N..Json, albo, jeśli tak było, być na dokładnej wersji, której używa mój pakiet.
Podejrzewam, że ustalenie dokładnej wersji jest złe. Więc pomijam wersję, ale teraz mój pakiet może się zepsuć w przyszłości, jeśli N..Json złamie zmiany.
Zamiast tego dodałem zakres w moim .nuspec
i teraz jestem w drodze.
Ale czy nie narzuciłem limitu na wszystkich moich klientów na jaką maksymalną wersję N..Json mogą użyć?
Czy muszę teraz stale sprawdzać wersje pakietów, z których korzysta mój pakiet i upewnić się, że testuję do końca życia?
Czy istnieje jakiś system w NuGet.org, który może ostrzec mnie, że moja paczka jest w tyle lub może zostać naruszona przez łamanie cudzej pracy?
Co stanie się, jeśli klienci spróbują zaktualizować N..Json do najnowszej wersji, czy oczywiste będzie, że mój pakiet jest blokerem?
Jaka jest ustalona najlepsza praktyka?