Нужна ли версия bump (или версия bump2), когда доступен setuptools_scm?

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/

Остается вопрос: существует ли канонический подход к выполнению чего-то подобного?


person Ahmed Masud    schedule 07.07.2019    source источник
comment
Это зависит от того, где вы храните Единый Источник Истины для версии. Если это сценарий установки и обновление строки версии в нем является событием распространения (например, фиксация сценария с измененной версией var создает новые теги VCS), то вы можете использовать bumpversion; если это последний тег VCS, а тегирование является событием распространения (например, создание тега запускает новую сборку с обновленной версией var в сценарии установки), используйте setuptools-scm. Оба являются жизнеспособными подходами.   -  person hoefling    schedule 07.07.2019
comment
Мой случай - последний, поэтому setuptools_scm кажется подходящим вариантом :^)   -  person Ahmed Masud    schedule 07.07.2019
comment
Привет @AhmedMasud, тебе все еще нужна информация о bumpversion и setuptools-scm? Или только на ваш оставшийся вопрос о каноническом способе выполнения ваших потребностей в управлении версиями?   -  person Bsquare ℬℬ    schedule 27.07.2019
comment
@Bsquareℬℬ приветствуется любая информация! Если вы хотите добавить мудрости из своего опыта, я сочту это хорошим ответом :-)   -  person Ahmed Masud    schedule 29.07.2019


Ответы (1)


Если вы используете setuptools_scm, вам, вероятно, не нужен bump2version. Наоборот.

В Python нет «канонического» способа поднять версию. Существует несколько инструментов, и вы можете использовать тот, который вам нравится (или вообще не использовать).

Сообщение в журнале изменений setuptools касается того, что авторы setuptools используют в своем собственном репозитории Git. Они по-прежнему используют bump2version, как показано в этом файле конфигурации.

Проекты setuptools_scm и setuptools похожи по названию, но полностью независимы.

person florisla    schedule 12.05.2021