dai-motoki / zoltraak

GNU General Public License v3.0
419 stars 47 forks source link

pythonでpypi作る時のプロジェクトで、一般的なバージョン管理とテストフロー、そのためのディレクトリ構成について #90

Open dai-motoki opened 7 months ago

dai-motoki commented 7 months ago

Pythonでパッケージを作成し、PyPIで公開する際の一般的なバージョン管理とテストフロー、およびそのためのディレクトリ構成について説明します。

  1. バージョン管理:

    • Gitを使用してプロジェクトのバージョン管理を行います。
    • GitHub、GitLab、BitBucketなどのリモートリポジトリにプロジェクトをホストすることが一般的です。
    • セマンティックバージョニング (例: 1.0.0、1.1.0、2.0.0) を使用して、パッケージのバージョンを管理します。
  2. テストフロー:

    • 自動化されたテストを実行して、コードの品質を維持します。
    • ユニットテスト、統合テスト、機能テストなどを実装します。
    • テストフレームワークとしては、pytestunittestnoseなどが一般的に使用されます。
    • CIツール(例: Travis CI、CircleCI、GitHub Actions)を使用して、プルリクエストやマージ時に自動的にテストを実行します。
    • カバレッジツール(例: coverage)を使用して、テストカバレッジを測定し、カバレッジレポートを生成します。
  3. ディレクトリ構成: プロジェクトのディレクトリ構成は以下のようになります。

    project_name/
    ├── project_name/
    │   ├── __init__.py
    │   └── ...
    ├── tests/
    │   ├── __init__.py
    │   └── ...
    ├── docs/
    │   └── ...
    ├── setup.py
    ├── requirements.txt
    ├── README.md
    ├── LICENSE
    ├── .gitignore
    └── ...
    • project_name/: プロジェクトのソースコードを含むディレクトリ。パッケージ名と同じ名前にします。
    • tests/: テストコードを含むディレクトリ。
    • docs/: ドキュメントを含むディレクトリ。
    • setup.py: パッケージのメタデータ、依存関係、ビルド設定などを定義するファイル。
    • requirements.txt: パッケージの依存関係を記述するファイル。
    • README.md: プロジェクトの概要、インストール方法、使用方法などを説明するファイル。
    • LICENSE: ライセンス情報を含むファイル。
    • .gitignore: Gitで無視するファイルやディレクトリを指定するファイル。
  4. その他の考慮事項:

    • コードの品質を維持するために、リンター(例: flake8pylint)やフォーマッター(例: blackyapf)を使用することが推奨されます。
    • ドキュメントの生成には、SphinxMkDocsなどのツールを使用できます。
    • パッケージの配布には、setuptoolswheelを使用します。
    • PyPIへのパッケージのアップロードには、twineを使用します。

以上が、Pythonでパッケージを作成し、PyPIで公開する際の一般的なバージョン管理とテストフロー、およびそのためのディレクトリ構成の概要です。プロジェクトの規模や要件に応じて、適宜カスタマイズしてください。