Pythonの依存関係を固定した再現可能なrequirementsファイルにまとめ、環境をその内容に同期するコマンドラインツール(pip-compile、pip-sync)のセット。
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
uvですべてのパッケージと依存関係グループをインストールする
uv sync --all-packages --all-groups - 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 の数値は毎日更新されます。
関連プロジェクト
ビルド、環境構築、テスト、Lint、バージョン管理、公開までをカバーする、モダンで拡張性の高いPythonプロジェクト管理ツール。
バージョン更新、Gitタグ付け、変更履歴の生成、GitHub/GitLabリリース、npmへの公開を自動化する汎用CLIツールです。
tox、pytest、Sphinxドキュメント、Gitによるバージョン管理をあらかじめ設定した、PyPI公開可能なPythonパッケージを生成するツール。
Jupyter notebookをプレーンなMarkdownやPython、Julia、Rのスクリプトとして保存し、Gitで差分を確認しやすく、きれいにバージョン管理できます。
GitHubのリポジトリ作成ページで使われている、プログラミング言語、フレームワーク、エディター、OS向けの.gitignoreテンプレート集。