Repolode
pypa

pypa/setuptools-scm

Инструмент для Python, который определяет версии пакетов по тегам Git или Mercurial и интегрируется с setuptools.

Звёзды
954
Форки
251
Открытые issues
26
Последний коммит
7 часов назад

Что это?

setuptools-scm извлекает версии Python-пакетов из метаданных системы контроля версий проекта — обычно из тегов Git или Mercurial. Вместо того чтобы вручную указывать строку версии в файлах настройки сборки, версию вычисляют во время сборки по последнему тегу и состоянию коммитов. Так версии релизов и сборок для разработки остаются согласованными с историей репозитория.

Пакет интегрируется с setuptools, а также может использоваться отдельно с помощью собственных инструментов. Репозиторий представляет собой монорепозиторий с двумя проектами: самим setuptools-scm и vcs-versioning — базовой библиотекой для определения версий по VCS, которую можно использовать независимо от setuptools.

Для управления зависимостями репозиторий использует uv. В нём есть команды для установки всех пакетов и групп зависимостей, запуска наборов тестов pytest для каждого проекта и сборки общей документации mkdocs.

Ключевые возможности

  • 01Определяет версии по тегам Git или Mercurial во время сборки.
  • 02Интегрируется с setuptools для сборки Python-пакетов.
  • 03Включает vcs-versioning — отдельную библиотеку, которую можно использовать без setuptools.
  • 04Включает наборы тестов для запуска с pytest и документацию, собираемую с помощью mkdocs.

Сценарии использования

  • Поддерживать версии Python-пакетов в соответствии с тегами Git без ручного редактирования строк версии.
  • Определять версии Python-проекта, хранящегося в Git или Mercurial.
  • Повторно использовать определение версий на основе VCS в инструментах, не использующих setuptools.

Быстрый старт

  1. 1

    Установите все пакеты и группы зависимостей с помощью uv

    uv sync --all-packages --all-groups
  2. 2

    Запустите набор тестов

    uv run pytest -n12

Темы

Частые вопросы

Что такое setuptools-scm?
Инструмент для Python, который определяет версии пакетов по тегам Git или Mercurial и интегрируется с setuptools. setuptools-scm извлекает версии Python-пакетов из метаданных системы контроля версий проекта — обычно из тегов Git или Mercurial. Вместо того чтобы вручную указывать строку версии в файлах настройки сборки, версию вычисляют во время сборки по последнему тегу и состоянию коммитов. Так версии релизов и сборок для разработки остаются согласованными с историей репозитория.
setuptools-scm можно использовать бесплатно? Какая у него лицензия?
У setuptools-scm не указана лицензия. Код открыт, но без лицензии нет явного разрешения на его использование — уточните у автора, прежде чем на него полагаться.
setuptools-scm всё ещё поддерживается?
Активно поддерживается. Последний коммит в setuptools-scm — 6 нояб. 2026 г..
Для чего можно использовать setuptools-scm?
Поддерживать версии Python-пакетов в соответствии с тегами Git без ручного редактирования строк версии. Определять версии Python-проекта, хранящегося в Git или Mercurial. Повторно использовать определение версий на основе VCS в инструментах, не использующих setuptools.
Как установить setuptools-scm?
Установите все пакеты и группы зависимостей с помощью uv: uv sync --all-packages --all-groups Запустите набор тестов: uv run pytest -n12
Где скачать setuptools-scm?
Исходный код и инструкции по установке — на GitHub: https://github.com/pypa/setuptools-scm

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Коллекция шаблонов .gitignore для языков программирования, фреймворков, редакторов и операционных систем, используемая на страницах GitHub для создания репозиториев.

176,2 тыс.+69 за неделю82 тыс.CC0-1.0Активно поддерживаетсяОбновлён позавчера