Testovací PYPI pro vyladění releasu balíčků

, upraveno

Při vývoji open-source balíčků pro PYPI (the Python Package Index) se mi i přes veškeré automatické testování kódu často stává, že objevím nějakou chybu související s releasem až po releasu. Typicky se jedná o chybně naformátované README.rst (parser na PYPI je extrémně citlivý a podpora Markdownu se bohužel nekoná), omylem zveřejněnou __pycache__ atd.

Soubory na PYPI je možné smazat, ale od ledna 2015 už není možné soubory se stejnou verzí znovu nahrát.

Nezbývá tedy než vydat novou verzi balíčku (v kontextu sémantického verzování se jedná o inkrementaci x.x.PATCH segmentu). Bohužel v případě zmiňovaného formátování README.rst se stejně nedozvíte, kde reálně chyba je, opravujete tak naslepo… a verze mohou přibývat.

Test PYPI

Pro otestování samotného releasu přichází ke slovu testovací PYPI, o kterém jsem se nedávno dozvěděl. Nachází se na adrese https://testpypi.python.org/pypi a funguje stejně jako jeho „ostrá“ verze – tj. zaregistrujete svou osobu a package, vytváříte releasy atd.

Registrace balíčku:

python setup.py register -r https://testpypi.python.org/pypi

Release balíčku:

python setup.py sdist upload -r https://testpypi.python.org/pypi
python setup.py bdist_wheel upload -r https://testpypi.python.org/pypi

Ačkoliv je testovací PYPI skvělý pomocník, stoprocentně na něj spoléhat nelze. V době psaní článku např. neuměl testovací PYPI tagy pro nové Django 1.10:

running register
running egg_info
...
running check
Registering ... to https://testpypi.python.org/pypi
Server response (400): Invalid classifier "Framework :: Django :: 1.10"

Komentáře