TFDS リポジトリに貢献する
ライブラリにご関心いただきありがとうございます!これほど意気込みに満ちたコミュニティが存在することを嬉しく思っています。
はじめに
TFDS に新しい方は、リクエストされたデータセットの 1 つを実装することから始めるのが最も簡単です。一番リクエストの多いデータセットに専念してください。手順については、ガイドに従ってください。
課題、機能リクエスト、バグなどには、新しいデータセットを追加するよりもはるかに大きなインパクトがあります。これらは TFDS コミュニティ全体にメリットをもたらすためです。potential contribution list(潜在的な貢献リスト)をご覧ください。contribution-welcome のラベルが付いたものから着手してください。これらは手始めに対応できる規模の小さな自己完結型の簡単な課題です。
割り当て済みであっても、しばらく更新のないバグにぜひ対応してください。
課題の割り当てを待つ必要はありません。対応し始める際に、コメントを残してください 😃
課題に関心があっても対応の仕方がわからない場合は、すぐに気軽に問い合わせください。早期にフィードバックが必要な場合は、PR 草案を送信してください。
不要な重複作業を行わないためにも、pending Pull Requests(保留中のプルリクエスト)リストを確認し、作業中の課題にはコメントを残すようにしてください。
MNIST モデルをビルドする
リポジトリを複製する
はじめに、Tensorflow Datasets リポジトリを Clone してダウンロードし、ローカルにインストールします。
開発依存関係をインストールします。
データベース固有のすべての依存関係をインストールする pip install -e ".[tests-all]"
もあることに注意してください。
Visual Studio Code
Visual Studio Code を使って開発する場合、リポジトリには開発を支援する事前定義済みの設定(適切なインデント設定や pylint など)がいくつか含まれています。
注意: VS Code でテスト検出を有効しても、VS Code の #13301 と #6594 のバグにより失敗する可能性があります。この問題を解決するには、テスト検出ログを確認してください。
TensorFlow 警告メッセージが出力されている場合は、こちらの修正を試してみてください。
インストールされているはずのインポートが欠落している理由で検出が失敗する場合は、
dev
pip インストールを更新する PR を送信してください。
PR チェックリスト
CLA に署名する
このプロジェクトへの貢献には、コントリビューターライセンス契約(CLA)が伴います。あなた(またはあなたの従業員)が貢献への著作権を保持する場合、この契約によってプロジェクトの一環としてあなたの貢献を使用し再配布する権限を私たちに付与することができます。https://cla.developers.google.com/ にアクセスし、現在提出済みの契約を確認するか、新しい契約に署名してください。
一般的に CLA の提出は 1 回だけで済みます。過去に提出したことがあれば、別のプロジェクトであっても、もう一度署名する必要はありません。
ベストプラクティスに従う
可読性は重要です。コードは、プログラミングのベストプラティス(重複を回避する、小さな自己完結型の関数に分解する、明示的な変数名など)に従ってください。
単純であるほど最適です(たとえば、実装が複数の小さな自己完結型の PR に分割されている方がレビューしやすくなります)。
必要に応じてテストを追加し、終了テストに合格することが推奨されます。
型指定の注釈を追加してください。
スタイルガイドを確認する
スタイルガイドは Google Python Style Guide に基づいており、これは PEP 8 Python style guide に従っています。新しいコードは Black code style に従いますが、以下の点に注意してください。
行の長さ: 80
インデントはスペース 4 個ではなく 2 個とする。
一重引用符
'
重要: コードに必ず pylint
を実行し、コードのフォーマットが正しいことを確認してください。
yapf
を使ってファイルを自動フォーマットできますが、このツールは完璧ではありません。そのため、実行後にほぼ手動で修正する必要があります。
pylint
と yapf
はいずれも pip install -e ".[dev]"
でインストールされるはずですが、pip install
を使って手動でインストールすることも可能です。VS Code を使用している場合は、これらのツールが UI に統合されています。
ドキュメント文字列と型指定の注釈
クラスと関数は、ドキュメント文字列と型指定の注釈で文書化されている必要があります。ドキュメント文字列は、Google スタイルに従ってください。以下に例を示します。
ユニットテストを追加して実行する
新しい機能は、必ずユニットテストを使って検証してください。テストは、VS Code インターフェースを通じて実行できます。またはコマンドラインも使用可能です。たとえば、以下のようにします。
pytest
と unittest
: これまで、unittest
モジュールを使用してテストを記述してきましたが、新しいテストでは、より単純で自由度の高い最新の pytest
を使用するようにしてください。これはほとんどの有名なライブラリ(numpy、pandas、sklearn、matplotlib、scipy、six など)で使用されているものです。pytest に精通していない場合は、pytest ガイドをお読みください。
DatasetBuilders のテストは特殊で、データセットの追加ガイドに説明されています。
PR を送信してレビューを依頼しましょう!
お疲れ様です!プルリクエストの使用に関する詳細は、GitHub ヘルプをご覧ください。