Versioning¶
Configuration¶
バージョンが[statically set]されていない場合(config/metadata.md#version)、設定はtool.hatch.versionテーブルで定義されます。sourceオプションは、バージョンのretrievingおよびupdatingに使用するsourceを決定します。デフォルトでは、regexソースが使用されます。
regexソースには、プロジェクトのバージョンを含むファイルへの相対パスを表すオプションpathが必要です。:
[tool.hatch.version]
path = "src/hatch_demo/__about__.py"
[version]
path = "src/hatch_demo/__about__.py"
デフォルトのパターンでは、__version__またはVERSIONという名前の変数が検索されます。この変数は、バージョンを含む文字列に設定され、オプションで小文字のvが先頭に付くこともあります。
これがバージョンの保存方法を反映していない場合は、patternオプションを使用して別の正規表現を定義できます。:
[tool.hatch.version]
path = "pkg/__init__.py"
pattern = "BUILD = 'b(?P<version>[^']+)'"
[version]
path = "pkg/__init__.py"
pattern = "BUILD = 'b(?P<version>[^']+)'"
このパターンには、バージョンを表すversionという名前付きグループが必要です。
Display¶
引数を指定せずにversionコマンドを実行すると、プロジェクトの現在のバージョンが表示されます。:
$ hatch version
0.0.1
Updating¶
You can update the version like so:
次のようにバージョンを更新できます。:
$ hatch version "0.1.0"
Old: 0.0.1
New: 0.1.0
schemeオプションは、既存のバージョンと新しいバージョンの両方を解析するために使用するschemeを決定します。standardスキームはデフォルトで使用され、PEP 440に基づいています。
バージョンを明示的に設定するのではなく、バージョンを増分するために使用されるsegmentの名前を選択できます。:
$ hatch version minor
Old: 0.1.0
New: 0.2.0
カンマを使用して、複数のセグメントの更新を連鎖させることができます。たとえば、プロジェクトの最初のメジャーバージョンのプレビューをリリースする場合は、次のようにします。:
$ hatch version major,rc
Old: 0.2.0
New: 1.0.0rc0
最終バージョンをリリースする場合は、次の手順を実行します。:
$ hatch version release
Old: 1.0.0rc0
New: 1.0.0
Supported segments¶
サポートされているセグメントと、それらが1.0.0の既存のバージョンにどのように影響するかを以下に示します:
| Segments | New version |
|---|---|
release | 1.0.0 |
major | 2.0.0 |
minor | 1.1.0 |
micropatchfix | 1.0.1 |
aalpha | 1.0.0a0 |
bbeta | 1.0.0b0 |
crcprepreview | 1.0.0rc0 |
rrevpost | 1.0.0.post0 |
dev | 1.0.0.dev0 |