pythonスクリプト内からcommit hashを取得する
自作のパッケージを使っているとバージョニングが疎かになりがちなので、gitのcommit hashをパッケージのAPIから取得したい。
いめーじとしては、pandasのpandas.show_versions
みたいな感じ。
pandas.pydata.org
↓のポストだとgit rev-parse HEAD
かgit describe --always
を使えばいいようだ。
stackoverflow.com
とりあえず以下のようなコードを書いて使ってみる。
__version__ = "0.3.2" import os import subprocess # e.g. return 'b3a73ed' def get_git_commit_hash() -> str: cwd = os.path.dirname(os.path.abspath(__file__)) out = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD'], cwd=cwd) return out.strip().decode('ascii') # e.g. return '0.3.2+b3a73ed' def get_version() -> str: out = __version__ + '+' + get_git_commit_hash() return out