コンテンツにスキップ

貢献する促進する投稿する寄付する(この言葉には様々な意味があり、具体的な翻訳は文脈によって確定する必要がある)

Starletteへの貢献に興味を持っていただき、ありがとうございます。このプロジェクトに貢献する方法はいくつかあります:

バグやその他の問題を報告する

Starletteがサポートすべきものを発見しましたか?偶然に予期しない行動に遭遇しましたか?

貢献は通常、議論から始めるべきです。考えられるエラーは「潜在的な問題」の議論として、機能要求は「アイデア」の議論として提出できます。次に、その議論を「問題」にアップグレードする必要があるかどうか、またはプルリクエストを検討するかどうかを判断できます。

できるだけ詳細に説明し、バグレポートを提出する場合は、次のような可能な限り多くの情報を提供してください。

  • オペレーティングシステムプラットフォーム
  • Pythonバージョン
  • インストールされている依存関係とバージョン(python -m pip freeze)
  • コードスニペット
  • エラートレースバックトラック

例は常に、問題を説明できる最も単純なケースに簡略化するようにしてください。

開発する

Starletteの開発を開始するには、GitHubでStarletteリポジトリのブランチを作成します。

次に、次のコマンドを使用してブランチをクローンし、YOUR-USERNAME をGitHubユーザー名に置き換えます。

$gitクローンhttps://github.com/YOUR-USERNAME/starlette

次のコマンドを使用して、プロジェクトとその依存関係をインストールできるようになりました。

$cdスターレット
$scripts/インストール

テストとコードチェック

カスタムシェルスクリプトを使用して、テスト、コードチェック、ドキュメント構築のワークフローを自動化します。

これらのテストを実行するには:

スクリプト/テスト

他の引数は pytest に渡されます。詳しくはpytestのドキュメントを参照してください。

たとえば、単一のテストスクリプトを実行します。

$scripts/test test/test_application.py

コードの自動書式設定を実行するには:

スクリプト/lint

最後に、コードチェックを個別に実行するには(scripts/test の一部としても実行されます)、次のように実行します。

スクリプト/チェック

文書化する

ドキュメントページは docs/ フォルダの下にあります。

ドキュメントサイトをローカルで実行するには(変更のプレビューに便利です)、次のようにします。

スクリプト/ドキュメント

ビルド/継続的インテグレーションの失敗の解決

プルリクエストを送信すると、テストスイートが自動的に実行され、結果がGitHubに表示されます。テストスイートが失敗した場合は、「詳細」リンクをクリックして、テストスイートが失敗した原因を特定する必要があります。

失敗したPRコミットステータス

テストスイートが失敗する一般的な方法は次のとおりです。

ジョブのチェックに失敗しました

失敗するGitHub action lint job

この作業が失敗したということは、コードの書式に問題があるか、型注釈に問題があることを意味します。作業出力を見て、失敗した理由を調べるか、シェルで実行できます。

スクリプト/チェック

$ scripts/lint を実行してコードを自動的にフォーマットし、成功した場合は変更をコミットすることを試みる価値があるかもしれません。

ドキュメントジョブに失敗しました

この失敗は、ドキュメントの構築に失敗したことを意味します。これは、無効なMark downや mkdocs.yml 内の設定の欠如など、さまざまな理由で発生する可能性があります。

Python 3. Xのジョブが失敗しました

GitHubアクションテストジョブの失敗

この作業の失敗は、単体テストが失敗したか、すべてのコードパスが単体テストで上書きされていないことを意味します。

テストに失敗した場合、カバレッジレポートの下にこのメッセージが表示されます。

=== 1 failed, 435 passed, 1 skipped, 1 xfailed in 11.09s ===

テストが成功したが、カバレッジが現在のしきい値に達していない場合は、カバレッジレポートの下にこのメッセージが表示されます。

FAIL Required test coverage of 100% not reached. Total coverage: 99.00%

リリースする

このセクションはStarletteメンテナ向けです。

新しいバージョンをリリースする前に、次のプルリクエストを作成します。

  • 変更ログの更新:
    • keepachangelogの形式に従います。
    • は master を最新バージョンのタグと比較し、ユーザーが興味を持っているすべてのエントリをリストします。
      • 変更ログに記録する必要があるもの:追加、変更、廃止、または削除された機能とバグ修正。
      • 変更ログに記録すべきでないもの:ドキュメント、テスト、またはツールの変更。
      • エントリを影響/重要度の高い順に並べ替えてみてください。
      • 簡潔で要点を突く。🎯
  • バージョンアップ:を参照してください __version__.py 。

例えば#1600を参照。

パブリケーションPR(PR)が統合されると、以下を含む新しいパブリケーションが作成されます。

0.13.3 のような* タグのバージョン。 * リリースタイトル Version 0.13.3 * 説明は変更ログからコピーされます。

作成されると、このバージョンは自動的にPyPIにアップロードされます。

PyPIタスクに問題がある場合は、scripts/publish スクリプトを使用してバージョンをリリースできます。