- PVSM.RU - https://www.pvsm.ru -
После поста про смотрелку сериалов [1] пришло пожелание добавить subliminal [2] для загрузки субтитров. Увидев его зависимости [3], из которых в репозитории присутствуют только два пакета, и то не подходящих версий. Я понял, что жизнь боль и мне придётся создать пять debian/control, сделать пять changelog'ов и создать 20 тасков в jenkins.
Но зачем тратить на всё это целых два часа, если можно потратить всего несколько дней на автоматизацию этого процесса. В результате появился pytoppa [4], он:
В ubuntu пакет можно поставить из ppa:
sudo add-apt-repository ppa:nvbn-rm/ppa
sudo apt-get update
sudo apt-get install pytoppa
Нужно вручную установить dh-make
и cdbs
, а после этого поставить pytoppa через pip:
pip install pytoppa
В корне репозитория с проектом нужно создать .pytoppa.yml, его формат:
section: секция # по умолчанию python, можно не указывать
dependencies:
- зависимость-1
- зависимость-2
releases:
- релиз-1
- релиз-2
Например, для приложения series_list:
section: net
dependencies:
- python-requests
- python-beautifulsoup
- python-requests
- python-gevent
- python-decorator
- python-libtorrent
- python-pyside
- subliminal
releases:
- saucy
- precise
- quantal
- raring
И запустить:
pytoppa ключ-зарегистрированный-на-launchpad ppa
Например, я запускаю:
pytoppa 'Vladimir Iakovlev <nvbn.rm@gmail.com>' 'ppa:nvbn-rm/ppa'
Немного нетривиальным оказалось считывание параметров из setup.py. Самым простым способом оказалось заменить setuptools.setup
и distutils.core.setup
на свой метод, просто сохраняющий параметры.
И формирование changelog [5], для него пришлось:
На остальных этапах происходит просто копирование или запуск команд.
github проекта [4];
ppa с проектом [6].
Автор: nvbn
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/49776
Ссылки в тексте:
[1] смотрелку сериалов: http://habrahabr.ru/post/204134/
[2] subliminal: https://github.com/Diaoul/subliminal
[3] зависимости: https://github.com/Diaoul/subliminal/blob/master/requirements.txt
[4] pytoppa: https://github.com/nvbn/pytoppa
[5] формирование changelog: https://github.com/nvbn/pytoppa/blob/develop/pytoppa/parsers/git_parser.py
[6] ppa с проектом: https://launchpad.net/~nvbn-rm/+archive/ppa
[7] Источник: http://habrahabr.ru/post/204526/
Нажмите здесь для печати.