Инфраструктура Python как дистрибутив
Базовые ссылки:
Интересное: Python Packaging History
- разр
- согл
- дост
- депл
- сопр
Под пакетом будем понимать «packaged distribution»
Python core + Python Packaging Authority
- Core — типичный свободный проект вокруг одного продукта
- Строгая дисциплина программирования, оформления и модификации
- Единая дистрибуция
- Релизы
PyPA — начинающий (2011) свободный проект вокруг репозитория PyPI
- доукментирование и регламенты
- формат метаданных
- Source Distribution 2.0 формат (а то ж его нет!)
- wheel формат
- поведение утилит
- орг
- Pypi
- портал, веб-сайт, теги, поиск, …
- склад, версионирование, метаинформация
- подписи
- документация (readthedocs)
Tools
- сборка и установка проекта
- в т. ч. универсальная из каких-то исходников, например, на Си!
- подготовка и формирование пакета egg/wheel
- сборка и установка проекта
Twine utility for interacting with PyPI.
pip — pip supports installing from PyPI, version control, local projects, and directly from distribution files.
pip install pip download pip uninstall pip freeze pip list pip show pip search pip wheel (всё окружение в 1 wheel) pip hash
- зависимости (как написано, resolver примитивный)
- скачивание (в т. ч. из github/git/bazaar/hg/svn/…)
- запуск setuptools (сборка wheel, установка)
нет дерева зависимостей, рекурсивного удаления, блокировки удаления по зависимостям и т. п.
- conda,
- spack какой-то
- virtualenv
TODO сравнение (Core — не дистрибутив) PyPA сильно моложе Python (почему?)
- Разработка — отдельные утилиты, хранилище
- неразрешимая задача универсальной разработки
- согласование — форматы+, немного по зависимостям
- доставка
- деплоймент
- сопровождение
Почему? TODO