0Pricing
Python Academy · レッスン

バージョン管理とメタデータ

パッケージのメタデータを管理します

「バージョン管理とメタデータ」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. プロジェクト構成とpyproject.toml
  2. buildによるビルド
  3. バージョン管理とメタデータ
  4. twineによる公開
← Python Academyに戻る