Repolode
pypa

pypa/setuptools-scm

GitまたはMercurialのタグからパッケージのバージョンを判定し、setuptoolsと連携するPythonツール。

スター
954
フォーク
251
未解決の Issue
26
最終コミット
11 時間前

これは何?

setuptools-scmは、プロジェクトのバージョン管理システムのメタデータ(通常はGitまたはMercurialのタグ)からPythonパッケージのバージョンを取得します。setupファイルでバージョン文字列を手作業で管理する代わりに、ビルド時に最新のタグとコミットの状態からバージョンを算出するため、リリース版と開発版のバージョンをリポジトリの履歴と一致させられます。

このパッケージはsetuptoolsに組み込めるほか、付属のツールを使って単独でも利用できます。このリポジトリはモノレポで、setuptools-scm本体と、setuptoolsに依存せず単独で使えるコアVCSバージョン管理ライブラリvcs-versioningの2つのプロジェクトを収録しています。

このリポジトリでは依存関係の管理にuvを使用しています。すべてのパッケージと依存関係グループのインストール、各プロジェクトのpytestテストスイートの実行、共通のmkdocsドキュメントのビルドに使うコマンドが用意されています。

主な機能

  • 01ビルド時にGitまたはMercurialのタグからバージョンを判定します。
  • 02Pythonパッケージのビルドでsetuptoolsと連携します。
  • 03setuptoolsなしでも利用できる単独ライブラリvcs-versioningを収録しています。
  • 04pytestで実行するテストスイートと、mkdocsでビルドするドキュメントが含まれています。

ユースケース

  • バージョン文字列を手作業で編集せずに、PythonパッケージのバージョンをGitタグに連動させる。
  • GitまたはMercurialで管理されているPythonプロジェクトのバージョンを管理する。
  • setuptoolsを使わないツールで、VCSに基づくバージョン判定を再利用する。

クイックスタート

  1. 1

    uvですべてのパッケージと依存関係グループをインストールする

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

    テストスイートを実行する

    uv run pytest -n12

トピック

よくある質問

setuptools-scm とは?
GitまたはMercurialのタグからパッケージのバージョンを判定し、setuptoolsと連携するPythonツール。 setuptools-scmは、プロジェクトのバージョン管理システムのメタデータ(通常はGitまたはMercurialのタグ)からPythonパッケージのバージョンを取得します。setupファイルでバージョン文字列を手作業で管理する代わりに、ビルド時に最新のタグとコミットの状態からバージョンを算出するため、リリース版と開発版のバージョンをリポジトリの履歴と一致させられます。
setuptools-scm は無料で使えますか?ライセンスは?
setuptools-scm にはライセンスが明記されていません。コードは公開されていますが、ライセンスがない場合は再利用の許諾がないため、利用前に作者に確認することをおすすめします。
setuptools-scm は今もメンテナンスされていますか?
活発にメンテナンス中。setuptools-scm の最終コミットは 2026年11月6日 です。
setuptools-scm は何に使えますか?
バージョン文字列を手作業で編集せずに、PythonパッケージのバージョンをGitタグに連動させる。 GitまたはMercurialで管理されているPythonプロジェクトのバージョンを管理する。 setuptoolsを使わないツールで、VCSに基づくバージョン判定を再利用する。
setuptools-scm のインストール方法は?
uvですべてのパッケージと依存関係グループをインストールする: uv sync --all-packages --all-groups テストスイートを実行する: uv run pytest -n12
setuptools-scm はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/pypa/setuptools-scm

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

Pythonの依存関係を固定した再現可能なrequirementsファイルにまとめ、環境をその内容に同期するコマンドラインツール(pip-compile、pip-sync)のセット。

8003686PythonBSD-3-Clause活発にメンテナンス更新 昨日