バージョン管理とメタデータ
パッケージのメタデータを管理します
「バージョン管理とメタデータ」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
メタデータが重要な理由
メタデータとは、コード以外のパッケージに関するすべての情報です。バージョン、説明、ライセンス、作成者、リンクなどが含まれます。PyPIはこれを使ってプロジェクトを表示し、pipは依存関係を解決します。
適切なメタデータによって、パッケージの信頼性とインストール可能性が高まります。
セマンティックバージョニング
一般的な規則はMAJOR.MINOR.PATCHです。
- MAJOR 破壊的変更
- MINOR 後方互換性のある新機能
- PATCH 後方互換性のあるバグ修正
ユーザーはこの規則をもとに、アップグレードしても安全かどうかを判断します。
version = '2.4.1'
major, minor, patch = version.split('.')
print('Major', major, 'Minor', minor, 'Patch', patch)
print('Bug fix -> bump patch to', major + '.' + minor + '.' + str(int(patch) + 1))次のバージョンの選び方
バージョンの更新幅はルールに基づいて決めます。APIを壊したのか、機能を追加したのか、それともバグを修正しただけなのかを判断します。このルールを明文化すると、リリースに一貫性を持たせられます。
def bump(version, kind):
major, minor, patch = (int(x) for x in version.split('.'))
if kind == 'major':
return str(major + 1) + '.0.0'
if kind == 'minor':
return str(major) + '.' + str(minor + 1) + '.0'
return str(major) + '.' + str(minor) + '.' + str(patch + 1)
print(bump('1.2.3', 'minor'))
print(bump('1.2.3', 'major'))プレリリース版と開発版
Pythonでは、1.0.0a1(アルファ版)、1.0.0b2(ベータ版)、1.0.0rc1(リリース候補)、1.0.0.dev3のような接尾辞を使用できます。pipはこれらを最終版の1.0.0より前のバージョンとして扱うため、テスターは通常のユーザーに影響を与えずに利用できます。
信頼できる唯一の情報源
バージョンは必ず1か所だけで管理してください。pyproject.tomlに静的に宣言するか、dynamicとして指定し、setuptools-scmなどのツールを介してコード(またはタグ)から読み取ります。2か所にコピーすると、必ず次第に食い違います。
descriptionとREADME
短いdescriptionは検索結果に表示されます。長い説明はreadme(通常はREADME.md)から取得され、PyPIのプロジェクトページとして表示されます。readme = 'README.md'で指定します。
分かりやすいREADMEは、最も効果的な紹介資料です。
ライセンス
ユーザーが自分の権利を確認できるように、ライセンスを宣言します。最新のプロジェクトでは、license = 'MIT'のようなSPDX式を使用します。ライセンスがない場合はすべての権利が留保されるため、利用が進みにくくなります。
popular = ['MIT', 'Apache-2.0', 'BSD-3-Clause', 'GPL-3.0-only']
for lic in popular:
print('SPDX:', lic)classifier
classifiersは、PyPIの一覧にある標準化されたタグです。たとえば'Programming Language :: Python :: 3.11'や'Development Status :: 4 - Beta'があります。PyPIのフィルターに使われるほか、成熟度や対応バージョンを示します。
プロジェクトURL
[project.urls]の下に、ホームページ、ドキュメント、ソース、変更履歴などへのリンクを追加します。これらはPyPIのサイドバーに表示され、ユーザーがリポジトリやドキュメントを見つけやすくなります。
urls = {
'Homepage': 'https://example.com',
'Source': 'https://github.com/me/mytool',
'Issues': 'https://github.com/me/mytool/issues',
}
for label, link in urls.items():
print(label.ljust(10), link)検索用キーワード
keywordsフィールドは、ユーザーが検索でパッケージを見つけるのに役立つ短い語句のリストです。一般的な語を埋めるのではなく、['cli', 'automation', 'excel']のように、ユーザーが実際に入力しそうな言葉を選びます。
classifierと組み合わせることで、プロジェクトを見つけてもらいやすくなります。
変更履歴
各バージョンで何が変わったかを記録したCHANGELOGを管理します。ユーザーはアップグレード前に、新機能や破壊的変更を確認するために読みます。[project.urls]の下にリンクを追加すれば、PyPIのページからワンクリックで開けます。
優れた変更履歴があれば、バージョン番号をユーザーが追えるストーリーに変えられます。
クイックチェック
バージョニングの知識を確認しましょう。
振り返り
パッケージのメタデータを管理できるようになりました:
- セマンティックバージョニング MAJOR.MINOR.PATCHと、プレリリースサフィックス
- バージョンを単一の信頼できる情報源で管理する
description、READMEの詳細な説明、licenseを設定するclassifiersと[project.urls]を追加して、PyPIでプロジェクトが適切に表示されるようにする
よくある質問
「バージョン管理とメタデータ」レッスンは無料ですか?
はい。「バージョン管理とメタデータ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「バージョン管理とメタデータ」で何を学びますか?
パッケージのメタデータを管理します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「バージョン管理とメタデータ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プロジェクト構成とpyproject.toml
- buildによるビルド
- バージョン管理とメタデータ
- twineによる公開