2014-05-20 7 views
5

Rozwidla się pakiet python, w którym oczekuję autora pakietu, aby scalić moje zmiany w najbliższej przyszłości. Autor pakietu nie wypuszcza zbyt często, więc spodziewam się, że mój tymczasowy fork będzie zależał od niektórych moich innych pakietów. Potrzebuję utworzyć odpowiedni numer wersji dla mojego fork, który jest zgodny z pip/setuptools.Jaki jest dobry numer wersji zgodnej z pip/setuptools dla widelca paczki?

Załóżmy, że obecna wersja to 1.6.4, i oczekuję, że kolejną wersją tego autora będzie 1.6.5. Czy odpowiednia wersja dla widelca to 1.6.4.1 lub 1.6.5.dev20140520? Oba wydają się być zgodne z PEP440, ale miałem również doświadczenie z ostatnimi wersjami pip nie znajdowania dev wydań, chyba że używasz konkretnie flagi pre. Wydaje się, że dobrym wyborem byłby 1.6.4.1, ale nie wiem, jak szczęśliwy będzie format w formacie N.N.N.N (np. potraktuje to jako wydanie 01).

Czy jest jakaś standardowa konwencja dla tego? Uwaga: nie chcę zmieniać nazwy pakietu autora, ale potrzebuję tymczasowego rozwidlenia, które moje inne pakiety mogą zainstalować przy minimalnych problemach.

+3

Nie ma standardu. W rzeczywistości nie widziałem jeszcze dobrego schematu kontroli wersji (i częściowego porządku na numerach wersji) dla pakietów, które mogą się rozwidlać; 1.6.4-yourname-1.0 jest używane przez programy pakujące Linux. –

+0

Tej konwencji używam od lat w takiej sytuacji. Problem polega jednak na tym, że instalatory pakietów Pythona nie rozpoznają N.N.N-fork-N jako prawidłowej konwencji nazewnictwa, więc szukam czegoś innego. –

+1

Czy pip nie obsługuje adresów URL kontroli wersji w pliku 'requirements.txt'? –

Odpowiedz

2

Wygląda na to, że nie ma oficjalnej konwencji nazywania widelca dla pakietu Pythona. Jak zaznaczył @larsman w komentarzach do pytań, standardowa konwencja rozwidlająca package-1.6.4 jest package-1.6.4-forkname-0.1 - i chociaż jest używana przez społeczność Linuksa (i inne) od lat, ostatnio straciła przychylność dla pakietów Pythona. Jednym z głównych problemów jest to, że konwencja ta nie jest zgodna z przyjętymi konwencjami wersjonowania używanymi przez pip - iw związku z tym ma mniejsze wykorzystanie w ostatnich latach dla pakietów Pythona. Jeśli nie wyszukiwania dla „widelec” na indeksie pakietu PyPI za (https://pypi.python.org/pypi?%3Aaction=search&term=fork&submit=search) zobaczysz, że wydaje się, że są dwa przypadki pip zgodny ze wschodzących:

  1. package-forkname-1.6.4
  2. forkname-1.6.4, gdzie forkname jest " sprytny "wariant na packagename (np. PIL i pillow)
Powiązane problemy