TFDS リポジトリに貢献する

私たちのライブラリにご興味をお持ちいただきありがとうございます。私たちはこのような意欲的なコミュニティを持つことに興奮しています。

始めましょう

  • TFDS を初めて使用する場合、最も簡単に始める方法は、リクエストされたデータセットの 1 つを実装し、最もリクエストの多かったデータセットに重点を置くことです。手順についてはガイドに従ってください
  • 問題、機能リクエスト、バグなどは、TFDS コミュニティ全体に利益をもたらすため、新しいデータセットを追加するよりもはるかに大きな影響を及ぼします。潜在的な貢献リストを参照してください。貢献歓迎のラベルが付いたものから始めます。これらは、小規模で自己完結型の簡単に始めることができる問題です。
  • すでに割り当てられているものの、しばらく更新されていないバグは、ためらわずに引き継いでください。
  • 問題を自分に割り当ててもらう必要はありません。問題に取り組み始めたら、問題についてコメントしてください:)
  • 問題に興味はあるが、どのように始めればよいかわからない場合は、遠慮せずに助けを求めてください。また、早期のフィードバックが必要な場合は、PR の草案を送信してください。
  • 作業の不必要な重複を避けるために、保留中のプル リクエストのリストを確認し、取り組んでいる問題についてコメントしてください。

設定

リポジトリのクローン作成

開始するには、 Tensorflow Datasetsリポジトリを複製またはダウンロードし、リポジトリをローカルにインストールします。

git clone https://github.com/tensorflow/datasets.git
cd datasets/

開発の依存関係をインストールします。

pip install -e .  # Install minimal deps to use tensorflow_datasets
pip install -e ".[dev]"  # Install all deps required for testing and development

すべてのデータセット固有の deps をインストールするためのpip install -e ".[tests-all]"もあることに注意してください。

Visual Studio コード

Visual Studio Codeで開発する場合、私たちのリポジトリには、開発に役立ついくつかの事前定義された設定(インデントの修正、pylint など) が付属しています。

  • TensorFlow 警告メッセージが表示された場合は、この修正を試してください。
  • インストールされているはずのインポートが見つからないために検出が失敗した場合は、PR を送信してdev pip インストールを更新してください。

PRチェックリスト

CLAに署名する

このプロジェクトへの貢献には、貢献者ライセンス契約 (CLA) が伴う必要があります。あなた (またはあなたの雇用主) はあなたの投稿に対する著作権を保持します。これは単に、あなたの投稿をプロジェクトの一部として使用および再配布する許可を与えるだけです。 < https://cla.developers.google.com/ > にアクセスして、ファイル上の現在の契約を確認するか、新しい契約に署名します。

通常、CLA を提出する必要があるのは 1 回だけであるため、すでに CLA を提出している場合は (別のプロジェクトのためのものであっても)、おそらく再度提出する必要はありません。

ベストプラクティスに従ってください

  • 読みやすさは重要です。コードはプログラミングのベストプラクティスに従う必要があります (重複を避ける、小さな自己完結型関数に因数分解する、明示的な変数名など)。
  • シンプルであるほど優れています (例: 実装を複数の小さな自己完結型 PR に分割すると、レビューが容易になります)。
  • 必要に応じてテストを追加します。既存のテストは合格するはずです。
  • 入力注釈を追加する

スタイルガイドを確認してください

私たちのスタイルはGoogle Python スタイル ガイドに基づいており、これはPEP 8 Python スタイル ガイドに基づいています。新しいコードは、ブラック コード スタイルに従う必要がありますが、次の点が異なります。

  • 線の長さ: 80
  • インデントはスペース 4 つではなく 2 つです。
  • 一重引用符'
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

yapf使用してファイルを自動フォーマットすることもできますが、このツールは完璧ではないため、後で手動で修正を適用する必要がある可能性があります。

yapf tensorflow_datasets/core/some_file.py

pylintyapf両方ともpip install -e ".[dev]"使用してインストールする必要がありますが、 pip installを使用して手動でインストールすることもできます。 VS Code を使用している場合は、これらのツールを UI に統合する必要があります。

ドキュメント文字列と注釈の入力

クラスと関数は、docstring と入力注釈を使用して文書化する必要があります。 docstring はGoogle スタイルに従う必要があります。例えば:

def function(x: List[T]) -> T:
  """One line doc should end by a dot.

  * Use `backticks` for code and tripple backticks for multi-line.
  * Use full API name (`tfds.core.DatasetBuilder` instead of `DatasetBuilder`)
  * Use `Args:`, `Returns:`, `Yields:`, `Attributes:`, `Raises:`

  Args:
    x: description

  Returns:
    y: description
  """

単体テストを追加して実行する

新しい機能が単体テストでテストされていることを確認してください。テストは、VS Code インターフェイスまたはコマンド ラインを通じて実行できます。例えば:

pytest -vv tensorflow_datasets/core/

pytestunittest : 歴史的に、私たちはテストを作成するためにunittestモジュールを使用してきました。新しいテストでは、よりシンプルで柔軟、最新で、最も有名なライブラリ (numpy、pandas、sklearn、matplotlib、scipy、six など) で使用されているpytestを使用することをお勧めします。 pytest に詳しくない場合は、 pytest ガイドを読んでください。

DatasetBuilders のテストは特別であり、データセットの追加ガイドに記載されています。

レビューのために PR を送信してください!

おめでとうございます!プル リクエストの使用方法の詳細については、 GitHub ヘルプを参照してください。