Berkontribusi pada repositori TFDS

Terima kasih atas minat Anda pada perpustakaan kami! Kami sangat senang memiliki komunitas yang termotivasi.

Memulai

  • Jika Anda baru menggunakan TFDS, cara termudah untuk memulai adalah dengan menerapkan salah satu kumpulan data yang kami minta , dengan fokus pada kumpulan data yang paling banyak diminta. Ikuti panduan kami untuk mendapatkan instruksi.
  • Masalah, permintaan fitur, bug,... memiliki dampak yang jauh lebih besar dibandingkan penambahan kumpulan data baru, karena hal tersebut menguntungkan seluruh komunitas TFDS. Lihat daftar kontribusi potensial . Mulailah dengan yang diberi label dengan selamat datang kontribusi yang merupakan masalah kecil mandiri yang mudah untuk dimulai.
  • Jangan ragu untuk mengambil alih bug yang sudah ada, namun sudah lama tidak diperbarui.
  • Tidak perlu menugaskan masalah tersebut kepada Anda. Cukup komentari masalahnya saat Anda mulai mengerjakannya :)
  • Jangan ragu untuk meminta bantuan jika Anda tertarik pada suatu masalah namun tidak tahu bagaimana memulainya. Dan silakan kirimkan draf PR jika Anda ingin umpan balik awal.
  • Untuk menghindari duplikasi pekerjaan yang tidak perlu, periksa daftar Pull Requests yang tertunda , dan beri komentar pada masalah yang sedang Anda kerjakan.

Mempersiapkan

Mengkloning repo

Untuk memulai, clone atau download repositori Tensorflow Datasets dan instal repo secara lokal.

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

Instal dependensi pengembangan:

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

Perhatikan juga ada pip install -e ".[tests-all]" untuk menginstal semua deps khusus kumpulan data.

Kode Visual Studio

Saat mengembangkan dengan Visual Studio Code , repo kami dilengkapi dengan beberapa pengaturan yang telah ditentukan sebelumnya untuk membantu pengembangan (memperbaiki lekukan, pylint,...).

  • Jika Anda menemukan pesan peringatan TensorFlow, coba perbaikan ini .
  • Jika penemuan gagal karena hilangnya impor yang seharusnya diinstal, silakan kirim PR untuk memperbarui instalasi dev pip.

Daftar periksa PR

Menandatangani PKB

Kontribusi pada proyek ini harus disertai dengan Perjanjian Lisensi Kontributor (CLA). Anda (atau perusahaan Anda) memegang hak cipta atas kontribusi Anda; ini hanya memberi kami izin untuk menggunakan dan mendistribusikan kembali kontribusi Anda sebagai bagian dari proyek. Kunjungi < https://cla.developers.google.com/ > untuk melihat perjanjian Anda saat ini yang tercatat atau untuk menandatangani perjanjian baru.

Biasanya Anda hanya perlu mengirimkan CLA satu kali, jadi jika Anda sudah mengirimkannya (walaupun untuk proyek yang berbeda), Anda mungkin tidak perlu melakukannya lagi.

Ikuti praktik terbaik

  • Keterbacaan itu penting. Kode harus mengikuti praktik pemrograman terbaik (hindari duplikasi, memfaktorkan menjadi fungsi mandiri kecil, nama variabel eksplisit,...)
  • Lebih sederhana lebih baik (misalnya implementasi dibagi menjadi beberapa PR mandiri yang lebih kecil sehingga lebih mudah untuk ditinjau).
  • Tambahkan tes bila diperlukan, tes yang ada harus lulus.
  • Tambahkan anotasi pengetikan

Periksa panduan gaya Anda

Gaya kami didasarkan pada Panduan Gaya Python Google , yang didasarkan pada panduan gaya Python PEP 8 . Kode baru harus mencoba mengikuti gaya kode Hitam tetapi dengan:

  • Panjang garis: 80
  • Indentasi 2 spasi, bukan 4.
  • Kutipan tunggal '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

Anda dapat mencoba yapf untuk memformat file secara otomatis, namun alat ini tidak sempurna, jadi Anda mungkin harus menerapkan perbaikan secara manual setelahnya.

yapf tensorflow_datasets/core/some_file.py

Baik pylint maupun yapf seharusnya sudah diinstal dengan pip install -e ".[dev]" tetapi juga dapat diinstal secara manual dengan pip install . Jika Anda menggunakan VS Code, alat tersebut harus terintegrasi di UI.

Dokumen dan anotasi pengetikan

Kelas dan fungsi harus didokumentasikan dengan dokumen dan anotasi pengetikan. Docstrings harus mengikuti gaya Google . Misalnya:

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
  """

Tambahkan dan jalankan unittests

Pastikan fitur baru diuji dengan pengujian unit. Anda dapat menjalankan pengujian melalui antarmuka VS Code, atau baris perintah. Contohnya:

pytest -vv tensorflow_datasets/core/

pytest vs unittest : Secara historis, kami telah menggunakan modul unittest untuk menulis tes. Pengujian baru sebaiknya menggunakan pytest yang lebih sederhana, fleksibel, modern dan digunakan oleh sebagian besar perpustakaan terkenal (numpy, pandas, sklearn, matplotlib, scipy, six,...). Anda dapat membaca panduan pytest jika Anda belum familiar dengan pytest.

Pengujian untuk DatasetBuilders bersifat khusus dan didokumentasikan dalam panduan untuk menambahkan kumpulan data .

Kirim PR untuk ditinjau!

Selamat! Lihat Bantuan GitHub untuk informasi selengkapnya tentang penggunaan permintaan tarik.