python3-setuptools_scm
Пакет python3-setuptools_scm предоставляет инструменты для автоматического управления версиями Python-проектов на основе данных из систем контроля версий, таких как Git.
Домашняя страница: https://pypi.python.org/pypi/setuptools_scm
Доступные версии
Версия | Релиз | Архитектура | Лицензия | Дата сборки | Размер | Версии ОС | Подробности |
---|---|---|---|---|---|---|---|
8.1.0 | 1.niceos5 | noarch | MIT | 24 апр. 2025 г. | 245,659 МиБ | Подробности |
Описание
Обзор пакета python3-setuptools_scm
Пакет python3-setuptools_scm является мощным инструментом для разработчиков Python, который упрощает управление версиями проектов. Он интегрируется с системами контроля версий, такими как Git, Mercurial и Subversion, чтобы автоматически определять версию проекта на основе тегов, коммитов и других метаданных. Этот пакет особенно полезен для автоматизации процессов сборки и публикации пакетов на PyPI, минимизируя ручной ввод данных о версии.
Основные возможности python3-setuptools_scm
- Автоматическое определение версии проекта из данных системы контроля версий.
- Поддержка популярных систем, таких как Git, Mercurial и SVN.
- Интеграция с setuptools для упрощения настройки Python-пакетов.
- Гибкая настройка формата версии через конфигурационные файлы.
- Поддержка разработки в локальной среде с динамическими версиями (например,
dev
-версии).
Зачем использовать python3-setuptools_scm?
Управление версиями вручную может быть трудоемким и подверженным ошибкам процессом, особенно в крупных проектах с частыми релизами. Пакет python3-setuptools_scm решает эту проблему, автоматически извлекая информацию о версии из репозитория. Это позволяет разработчикам сосредоточиться на коде, а не на обновлении номеров версий в файлах конфигурации, таких как setup.py
.
Кроме того, использование данного инструмента обеспечивает согласованность версий между репозиторием и опубликованными пакетами, что особенно важно при работе в команде или при автоматизации CI/CD-процессов.
Установка пакета в Найс.ОС
Для установки python3-setuptools_scm в системе Найс.ОС с использованием пакетного менеджера dnf выполните следующую команду:
sudo dnf install python3-setuptools_scm
После установки пакет будет доступен для использования в ваших Python-проектах. Убедитесь, что у вас установлен Python 3 и setuptools, так как они являются зависимостями.
Использование python3-setuptools_scm в проекте
Для начала работы с пакетом необходимо настроить ваш проект. Добавьте setuptools_scm в зависимости вашего проекта, указав его в файле setup.py
или pyproject.toml
. Пример настройки в setup.py
:
from setuptools import setup
setup(
name="my_project",
use_scm_version=True,
setup_requires=["setuptools_scm"],
# Другие параметры...
)
После этого setuptools_scm автоматически определит версию вашего проекта на основе данных из системы контроля версий. Например, если у вас есть тег v1.0.0
в Git, версия проекта будет установлена как 1.0.0
. Если вы работаете в ветке разработки, может быть добавлен суффикс, например, 1.0.0.dev1+ga1b2c3d
, где ga1b2c3d
— хэш последнего коммита.
Настройка формата версии
Формат версии можно настроить с помощью файла конфигурации или параметров в setup.py
. Например, чтобы изменить схему версионирования, можно указать:
setup(
name="my_project",
use_scm_version={
"version_scheme": "guess-next-dev",
"local_scheme": "node-and-date"
},
setup_requires=["setuptools_scm"],
)
В этом примере используется схема guess-next-dev
для основной версии и node-and-date
для локальной части версии, что добавляет информацию о дате и узле в версию разработки.
Проверка версии проекта
Чтобы убедиться, что версия определена корректно, выполните команду:
python setup.py --version
Это выведет текущую версию проекта, основанную на данных из системы контроля версий. Если вы работаете с Git, убедитесь, что репозиторий инициализирован и содержит хотя бы один коммит.
Интеграция с CI/CD
Пакет python3-setuptools_scm идеально подходит для использования в автоматизированных процессах непрерывной интеграции и доставки (CI/CD). Например, при сборке пакета на сервере CI/CD версия будет автоматически определена на основе тегов или ветки, что исключает необходимость ручного обновления файлов. Это особенно полезно для публикации релизов на PyPI с помощью инструментов, таких как twine.
Пример команды для сборки и публикации пакета:
python setup.py sdist bdist_wheel
twine upload dist/*
В данном случае версия пакета будет автоматически взята из системы контроля версий благодаря setuptools_scm.
Преимущества и ограничения
Ключевые преимущества пакета включают автоматизацию, снижение вероятности ошибок и интеграцию с популярными инструментами Python. Однако есть и ограничения: для корректной работы необходимо, чтобы репозиторий был правильно настроен (например, в Git должны быть теги для релизов). Также в некоторых специфических случаях может потребоваться дополнительная настройка формата версии.
Заключительные замечания
Пакет python3-setuptools_scm — это незаменимый инструмент для Python-разработчиков, стремящихся упростить управление версиями своих проектов. Благодаря поддержке систем контроля версий, таких как Git, и гибкой настройке, он помогает автоматизировать рутинные задачи и сосредоточиться на разработке. Установите его в своей системе Найс.ОС с помощью dnf и начните использовать уже сегодня для повышения эффективности работы над проектами.