Как автоматизировать управление версиями через CI в проекте Python?Python

Программы на Python
Ответить
Anonymous
 Как автоматизировать управление версиями через CI в проекте Python?

Сообщение Anonymous »

У меня есть проект Python, использующий pyproject.toml, и я хочу найти лучший метод автоматизации увеличения версии. Требования:
  • Каждый раз при изменении пакета (например: src/**, pyproject.toml или require.txt) автоматически увеличивает версию исправления и публикует новый пакет.
  • Разрешить вручную увеличивать основную/дополнительную версию при необходимости
Мое решение до сих пор заключалось в установке переменной $NEXT_VERSION в настройках репозитория. Это определяет, какую версию использовать при следующей публикации пакета. Тогда мой pyproject.toml содержит:

Код: Выделить всё

[tool.hatch.version]
source = "env"
variable = "NEXT_VERSION"
Каждый раз, когда я объединяю изменения в указанных файлах, конвейер CI публикует пакет, а затем увеличивает версию исправления $NEXT_VERSION, которая будет использоваться при следующей публикации.
Если мне нужно увеличить основную/дополнительную версию, перед объединением изменений я перейду к настройкам репозитория и обновлю эту $NEXT_VERSION до любого желаемого значения. быть.
Это выполняет то, что мне нужно, но меня раздражает, когда я устанавливаю из исходного кода; Мне всегда нужно определить эту переменную env, иначе сборка завершится неудачно:

Код: Выделить всё

NEXT_VERSION=0.0.1 pip install .
Я подумывал о переключении стратегии на определение версии в pyproject.toml или src/myproject/__init__.py и использовании интерфейса командной строки штриховки для увеличения, например: патч версии штриховки.
Но это немного усложняет конвейер CI, поскольку после увеличения версии конвейер затем должен зафиксировать это изменение в ветке и опубликовать его и пометить из этого обновленного commit.
Итак, каков общий/лучший метод автоматизации увеличения версии пакета в проектах Python?

Подробнее здесь: https://stackoverflow.com/questions/798 ... on-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»