2015-12-16 17 views
5

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?

Odpowiedz

1

Nie wierzę, że nuget.org oferuje pomoc przy zarządzaniu wersjami. Powinieneś stosować się do wskazówek semver.org dotyczących wersjonowania pakietów i zależności między pakietami. Może to powodować problemy dla osób, które mają już zainstalowaną wyższą wersję swojego zależnego pakietu. Jednak nic nie stoi na przeszkodzie, aby wiele wersji było zainstalowanych obok siebie.

Powiązane problemy