TLDR;
Вопрос в том, как говорится в заголовке.
Натыкаться или не натыкаться?
Я начал использовать bump2version, а затем обнаружил setuptools_scm (довольно новый для разработки полноценных программ на Python), и теперь я в замешательстве.
https://setuptools.readthedocs.io/en/latest/history.html#v20-6-0 (древний, я знаю, и я использую v40-x-x) упоминает интеграцию bumpversion, однако в последующих журналах изменений нет упоминания об отказе от поддержки bumpversion.
Между тем, в разделе 1.4 Расширение и повторное использование Setuptools документации setuptools упоминается setuptools_scm (и setuptools_svn) для интеграции с git, Hg и svn.
BLAB (нижний предел на дне)
Итак, вопрос: является ли bumpversion устаревшим/устаревшим?
Приложение
Чтобы уточнить, я попытаюсь немного объяснить свой вариант использования.
У меня есть суперпроект, который имеет несколько подпроектов.
super
├───base/
├───core/
├───lib/
├───version/requirements.txt
└───modules/
├───module-1/
├───module-2/
├───module-3/
├───module-4/
└───module-5/
Супер - это главный git, в котором каждый подпроект является подмодулем (у которого есть свои собственные подмодули), и, конечно же, каждый из них поддерживает свои собственные версии выпуска (что достаточно просто)
Релиз проекта состоит из подписанных модулей, которые взаимосовместимы со всем остальным.
Мой текущий подход
В настоящее время я использую подмодуль под названием версия, который поддерживает requirements.txt
+ pyproject.toml
и собирает все вместе в распространяемый пакет. Следуйте рекомендациям в https://github.com/pypa/pipfile/issues/27 и несколько взято из https://caremad.io/posts/2013/07/setup-vs-requirement/
Остается вопрос: существует ли канонический подход к выполнению чего-то подобного?
bumpversion
; если это последний тег VCS, а тегирование является событием распространения (например, создание тега запускает новую сборку с обновленной версией var в сценарии установки), используйтеsetuptools-scm
. Оба являются жизнеспособными подходами. - person hoefling   schedule 07.07.2019