Python Setuptools и PBR - как создать выпуск пакета, используя тег git в качестве версии? - PullRequest
1 голос
/ 21 октября 2019

Как мне на самом деле создать релиз / дистрибутив пакета python, который использует тег git repo для управления версиями, используя setuptools и pbr?

Существует много информации о базовой настройкеи требуемая конфигурация:

Но где простая информация о том, как на самом деле создать дистрибутив?

т.е. я ищу любую команду, которая находит тег git с информацией о версии и вытягивает его в информацию о конфигурации, поэтому источникс этой новой версией информация может распространяться, и информация о версии может быть обнаружена из сценариев, используя метод, подобный описанному в этот ответ .


Дополнительные сведения

Я работаю над PRoject, который будет распространяться среди других разработчиков только через git-репо, а не через PyPi . Проект будет выпущен пользователям в виде исполняемого файла с использованием pyinstaller, поэтому этот дистрибутив пакета будет служить только нескольким основным целям:

  1. Установить / настроить пакет для других разработчиков, чтобы зависимости / среда моглибыть полностью воссозданным.
  2. Управление версиями - в настоящее время планируется использовать pbr для генерации версий из тегов репозитория Git, поэтому эти теги могут быть нашим источником правды для управления версиями
  3. Использование pbr для другого автоматического генерирования мирских элементов из Git, таких как авторы, файл manifest.in, заметки о выпуске и т. д.

Поскольку setuptools документы фокусируются на создании полностью распространяемого и повторно используемого пакета сДокументы PyPi и pip и pbr действительно только говорят вам, как изменить конфигурацию setuptools для использования pbr, я не могу найти информацию о том, как просто запустить рассылку / выпускprocess.

Я уверен, что это существует где-то в документации, но после нескольких неудачных попыток я спрашиваю здесь. Везде, где я выгляжу, подразумевается, что все либо знают, как это сделать, либо это просто волшебным образом происходит как часть процесса.

Я просто упускаю очевидное?


Обновление:

Судя по ответу sinoroc, мне кажется, мне нужно изучить установки в режиме разработки. т.е. любой, кто разрабатывает проект, будет клонирован из git, а затем установлен с использованием setuptools режима установки разработки.

Это не было частью первоначального вопроса, но подразумевалось, и я полагаю, будет интереснолюдям, находящимся в той же ситуации (информация, которую я не мог легко найти).

Более подробная информация доступна в его ответе об обновлении некоторых метаданных, а также по этой setuptools ссылке на документацию для работы в«Режим разработки»

1 Ответ

1 голос
/ 22 октября 2019

Короче говоря:

  • python3 setup.py sdist
  • python3 setup.py bdist_wheel

Как на самом деле создать релиз / дистрибутивпакет python, использующий тег git repo для управления версиями с использованием setuptools и pbr?

Обычные команды для создания (исходного и колесного) дистрибутивов вашего пакета Python с setuptools : python3 setup.py sdist и python3 setup.py bdist_wheel. Затем дистрибутивы можно найти в каталоге dist по умолчанию.

Поскольку документы setuptools сосредоточены на настройке полностью распространяемого и повторно используемого пакета с PyPi и pip, а документы pbr только действительно говорят вам, какчтобы изменить конфигурацию setuptools для использования pbr, я не могу найти информацию о том, как просто запустить процесс распространения / выпуска.

Это правда, что setuptools не документирует это,Это только документирует различия к distutils, и это действительно сбивает с толку. Ниже приведена актуальная документация ...

Но где простая информация о том, как на самом деле создать дистрибутив?


Обновление

Поскольку вы не планируете публиковать дистрибутивы своихпроецируйте на индекс, такой как PyPI , и вместо этого вы планируете использовать pyinstaller , тогда вы, скорее всего, действительно можете игнорировать команды setuptools , такие как sdist иbdist_wheel.

Тем не менее, вы, возможно, захотите знать эти команды на этапе разработки:

  • Используйте такие команды, как python3 setup.py --version, python3 setup.py --fullname, чтобы выяснить, есть ли setuptools (а в вашем случае pbr) ловит нужную информацию.
  • Используйте python3 setup.py develop (или pip install --editable .) для размещения псевдо-ссылки (egg-link) в ваших пакетах сайта , указывающих на вашу работу впрогресс. Таким образом, ваши изменения всегда установлены и импортированы. Важно: не используйте python3 setup.py install, это скопирует текущую версию в site-package , и более новые изменения не будут импортированы.

Теперь я не знаю, каквсе это будет работать, как только вы перейдете на pyinstaller . Тем более, что вы упомянули, что вы хотите, чтобы мета-информация (например, номер версии) была обнаруживаемой из ваших сценариев. Техника с setuptools pkg_resources может работать или не работать в контексте pyinstaller .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...