2013-07-15 7 views
8

Tak, wydałem małą bibliotekę na pypi, bardziej jako ćwiczenie ("zobacz, jak to się robi") niż cokolwiek innego.Uwalnianie pakietu python - czy należy dołączyć dokument i testy?

Załadowałem dokumentację na readthedocs i mam zestaw testów w moim repozytorium git.

Ponieważ sądzę, że każdy, kto może być zainteresowany przeprowadzeniem testu, prawdopodobnie po prostu sklonuje repozytorium, a dokument jest już dostępny w Internecie, postanowiłem nie dołączać dokumentów i katalogów testowych do wydanego pakietu, a ja po prostu zastanawiasz się, czy to była "właściwa" rzecz.

Wiem, że odpowiedzi na to pytanie będą raczej subiektywne, ale czułem, że było to dobre miejsce, aby dowiedzieć się, co społeczność uważa za najlepszą praktykę.

+0

Nie mogę znaleźć żadnych PEP ani sekcji dokumentacji Setuptools, które faktycznie mówią cokolwiek o testach i dokumentach, ale ogólny wzorzec jaki widzę, to to, że pakiety pakują testy i nie pakują dokumentacji. – Blender

+0

Hmm. W pewnym sensie spodziewałem się czegoś odwrotnego - choć widzę, że warto uwzględnić dokumentację, z której można korzystać w trybie offline, wydaje mi się, że większość zwykłych użytkowników (tj. Ludzie, którzy po prostu zainstalują bibliotekę i użyją jej, zakładając, że po prostu działa, a nie ludzie zainteresowani hackowaniem twoich rzeczy) prawdopodobnie nigdy nie uruchomi uwzględnionych testów, więc ich łączenie wydaje mi się (pomijalne, ale wciąż) marnowaniem. Dzięki za odpowiedź tak czy inaczej :) – astrognocci

+0

Dokumentacja dla tych pakietów jest generowana z kodu źródłowego tak czy inaczej, więc po prostu robisz 'help (funkcja)' i ta sama dokumentacja jest pobierana z docstringu metody lub modułu. – Blender

Odpowiedz

5

Nie jest to wymagane, ale zalecane jest dołączenie do pakietu dokumentacji oraz testów jednostkowych.

Odnośnie dokumentacji:

Staromodny lub lepiej powiedzieć wersje źródłowe old-school z oprogramowania open source zawiera dokumentację, jest to standardowy (spojrzeć na oprogramowaniu GNU, dla (de facto?) przykład). Dokumentacja jest częścią kodu i powinna być częścią wydania, po prostu dlatego, że po pobraniu wersji źródłowej jesteś niezależny. Czy byłeś kiedyś w sytuacji, gdy byłeś gdzieś w pociągu, gdzie musiałeś rzucić okiem na dokumentację modułu X, ale nie miałeś dostępu do Internetu? A potem z ulgą uświadomiłeś sobie, że doktorzy już tam są, lokalnie.

Inną ważną kwestią w tym względzie jest to, że dokumentacja, którą pakujesz razem z kodem na pewno dotyczy wersji kodu. Kod i dokumenty są zsynchronizowane.

Jeszcze jedna rzecz, szczególnie w odniesieniu do Pythona: możesz pisać swoje dokumenty za pomocą Sphinx, a następnie budować piękne wydruki HTML na podstawie źródła dokumentacji podczas instalacji pakietu. Widziałem różne pakiety Pythona robiące dokładnie to.

dotyczące testu:

wyobrazić sobie testy są zgrupowane w wersji źródłowej i są łatwe do uruchomienia przez użytkownika (należy udokumentować, jak to zrobić). Następnie, jeśli użytkownik zauważy problem z kodem, który nie jest tak łatwy do wyśledzenia, może po prostu uruchomić testy jednostkowe w swoim środowisku i sprawdzić, czy przynajmniej te mijają. Jeśli nie, prawdopodobnie podałeś błędne założenie, określając zachowanie swojego kodu, o czym dobrze jest wiedzieć. Chcę powiedzieć, że może to być bardzo dobre dla Ciebie jako programisty, jeśli bardzo ułatwisz użytkownikowi wykonywanie testów jednostkowych.

+0

Używam już sfinksa do dokumentacji i hostuję go na readthedocs, dlatego pomyślałem, że mogę go pominąć. Ale twój punkt widzenia ma wiele sensu, zgaduję, że przyzwyczaiłam się do tego, że mam po prostu Google. Z pewnością zgadzam się na wersjonowanie go wraz z kodem, chociaż nie robię zbyt dobrze, aby go aktualizować ... Heck, dziękuję za twój wkład, zgadnij, że włączę oba od teraz;) – astrognocci

+0

@astrognocci Powinieneś teraz zaakceptować odpowiedź ... – gaborous

Powiązane problemy