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 и начните использовать уже сегодня для повышения эффективности работы над проектами.