2009-10-03 8 views
5

Mam kilka jajek, które utrzymuję na Pypi, ale do tej pory zawsze koncentrowałem się na Pythonie 2.5x. Chciałbym zwolnić moje jaja pod zarówno Python 2.5 & Pythona 2.6 w sposób zautomatyzowany tznPython Pypi: jaki jest twój proces uwalniania pakietów dla różnych wersji Pythona? (Linux)

  1. systemem testów
  2. generujących doc
  3. przygotowanie jajka
  4. przesyłania do PyPI

Jak to osiągnąć?

Powiązane pytanie: jak oznaczać jajko jako "niezależne od wersji"? działa pod wszystkimi wersjami Pythona?

Odpowiedz

1

Nie musisz wydawać jaj dla niczego innego niż system Windows, a tylko wtedy, gdy pakiet używa rozszerzeń C, tak aby zawierały skompilowane części. W przeciwnym razie po prostu zwolnij jedną dystrybucję źródłową. To wystarczy dla wszystkich wersji Pythona na wszystkich platformach.

Przeprowadzanie testów dla różnych wersji automatycznych jest trudne, jeśli nie masz buildbota. Ale po uruchomieniu testów z wydaniem 2.5 i 2.6 jest tylko kwestia uruchomienia python setup.py sdist register upload i nie ma znaczenia, jakiej wersji Pythona używasz do tego.

+1

Dziwne ... Ostatni raz, kiedy załadowałem jajko w sposób jaki opisałeś, został on oznaczony wersją pythona używaną do jej utworzenia ... a jeśli spróbuję * easy_install * na nim z inną wersją Pythona, to nie zadziała ... Czy mógłbyś podać wyjaśnienie? – jldupont

+0

Nie, oznaczanie wersjami Pythona jest wykonywane tylko podczas tworzenia dystrybucji binarnych. W twoim przypadku użyłeś bdist_egg, o ile widzę. Ponieważ nie masz kodu C, z tego, co widzę w twoich pakietach, powinieneś użyć sdist. –

+0

@ Lennart: DZIĘKI !!! to musiał być mój problem! – jldupont

0

Używam skryptu do zmiany wersji Pythona, uruchomienia testów, przejścia do następnej wersji Pythona, ponownego uruchomienia testów i tak dalej. Używam tego do testowania w wersjach 2.3, 2.4, 2.5, 2.6 i 3.1. Ponadto uruchamiam wszystkie moje testy w dwóch różnych scenariuszach konfiguracji (rozszerzenie C jest dostępne lub nie), więc uruchamiam mój pełny zestaw testów 10 razy.

Używam podobnego skryptu do budowania zestawów, choć buduję instalatory systemu Windows dla każdej wersji, a następnie jeden zestaw źródłowy.

Do przesyłania, po prostu robię to ręcznie.

Dla dokumentów jest tylko jedna wersja do zbudowania, a to odbywa się za pomocą celu Makefile.

To wszystko dla coverage.py, możesz zobaczyć kod na bitbucket, choć powinienem Cię ostrzec, są to skrypty Windows .cmd.

+0

@nne: wielkie dzięki za Twój wkład. Jestem na Linuksie i już nie mam pod ręką Windowsa. – jldupont

+0

To samo podejście zadziała w Linuksie, po prostu musisz zdecydować, jak zmienić wersje Pythona .. –

Powiązane problemy