PyPIに登録するパッケージバージョンをGitから取得する

Posted: , Modified:   Python PyPI GitHub Qiita

本稿は Qiita 投稿記事 のバックアップです.

概要

PyPI にパッケージを登録する場合,setup.py で呼び出す setup 関数に version 引数を渡す必要がある. このバージョン情報を今までは手作業で編集していたのだが,Gitのタグから引っ張ってこれたので備忘録として記しておく.

setuptools_scm

setuptools_scm はバージョン管理システムから適当に情報を引っ張ってきて,setup.py を設定してくれるライブラリである. これを使えば,タグ情報を元にバージョン番号を算出し設定できる. また,トラッキングされているパッケージデータを自動的にパッケージへ追加する機能もある.

setuptools_scm を使用してバージョン番号を設定する場合, setup.py の setup 関数に次のようなパラメータを渡す.

from setuptools import setup

setup(
    use_scm_version=True,
    setup_requires=[
        "setuptools_scm"
    ],
    ... # 他の項目は省略
)

これで,python setup.py sdistとする時に適切にバージョン番号が計算される. バージョン番号の計算方法は次のルールに従っている.

より詳しい情報はマニュアルを参照のこと.

パッケージデータの追加

トラッキングされているパッケージデータを自動で追加する場合, setup 関数に include_package_data=True を追加する. つまり,

from setuptools import setup

setup(
    use_scm_version=True,
    include_package_data=True,
    setup_requires=[
        "setuptools_scm"
    ],
    ... # 他の項目は省略
)

とする. なお,トラッキングしているけれどパッケージには含めたくないデータファイルがある場合, exclude_package_data で指定できる.詳細はマニュアルを参照.