المساهمة في مستودع TFDS

شكرا لاهتمامك بمكتبتنا! نحن سعداء بوجود مثل هذا المجتمع المتحمس.

البدء

  • إذا كنت جديدًا في استخدام TFDS، فإن أسهل طريقة للبدء هي تنفيذ إحدى مجموعات البيانات المطلوبة لدينا، مع التركيز على المجموعات الأكثر طلبًا. اتبع دليلنا للحصول على التعليمات.
  • المشكلات، وطلبات الميزات، والأخطاء،... لها تأثير أكبر بكثير من إضافة مجموعات بيانات جديدة، حيث إنها تفيد مجتمع TFDS بأكمله. انظر قائمة المساهمة المحتملة . يبدأ بالمشاكل التي تحمل علامة الترحيب بالمساهمة ، وهي مشكلات صغيرة قائمة بذاتها وسهلة للبدء بها.
  • لا تتردد في معالجة الأخطاء التي تم تعيينها بالفعل، ولكن لم يتم تحديثها منذ فترة.
  • لا حاجة للحصول على هذه القضية المسندة إليك. ما عليك سوى التعليق على المشكلة عندما تبدأ العمل عليها :)
  • لا تتردد في طلب المساعدة إذا كنت مهتمًا بمشكلة ما ولكنك لا تعرف كيفية البدء. ويرجى إرسال مسودة العلاقات العامة إذا كنت تريد الحصول على تعليقات مبكرة.
  • لتجنب الازدواجية غير الضرورية في العمل، تحقق من قائمة طلبات السحب المعلقة ، وقم بالتعليق على المشكلات التي تعمل عليها.

يثبت

استنساخ الريبو

للبدء، قم باستنساخ مستودع 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

لاحظ أن هناك أيضًا pip install -e ".[tests-all]" لتثبيت جميع عمليات الإقلاع الخاصة بمجموعة البيانات.

كود الاستوديو المرئي

عند التطوير باستخدام Visual Studio Code ، يأتي الريبو الخاص بنا مزودًا ببعض الإعدادات المحددة مسبقًا للمساعدة في التطوير (تصحيح المسافة البادئة، واللوحة،...).

  • إذا كنت تواجه بعض رسائل التحذير الخاصة بـ TensorFlow، فجرب هذا الإصلاح .
  • إذا فشل الاكتشاف بسبب فقدان الاستيراد الذي كان من المفترض تثبيته، فيرجى إرسال PR لتحديث تثبيت نقطة dev .

قائمة مراجعة العلاقات العامة

قم بالتوقيع على اتفاقية CLA

يجب أن تكون المساهمات في هذا المشروع مصحوبة باتفاقية ترخيص المساهم (CLA). تحتفظ أنت (أو صاحب العمل) بحقوق الطبع والنشر لمساهمتك؛ وهذا ببساطة يمنحنا الإذن باستخدام وإعادة توزيع مساهماتك كجزء من المشروع. انتقل إلى < https://cla.developers.google.com/ > للاطلاع على اتفاقياتك الحالية المسجلة أو لتوقيع اتفاقية جديدة.

بشكل عام، تحتاج إلى إرسال CLA مرة واحدة فقط، لذلك إذا كنت قد أرسلت واحدًا بالفعل (حتى لو كان لمشروع مختلف)، فمن المحتمل أنك لن تحتاج إلى القيام بذلك مرة أخرى.

اتبع أفضل الممارسات

  • سهولة القراءة أمر مهم. يجب أن تتبع التعليمات البرمجية أفضل ممارسات البرمجة (تجنب الازدواجية، وتقسيمها إلى وظائف صغيرة قائمة بذاتها، وأسماء المتغيرات الواضحة،...)
  • الأبسط هو الأفضل (على سبيل المثال، تقسيم التنفيذ إلى عدة عمليات رئيسية أصغر حجمًا قائمة بذاتها والتي يسهل مراجعتها).
  • أضف الاختبارات عند الحاجة، ويجب أن تكون الاختبارات الحالية ناجحة.
  • إضافة التعليقات التوضيحية للكتابة

تحقق من دليل أسلوبك

يعتمد أسلوبنا على دليل Google Python Style Guide ، والذي يعتمد على دليل أسلوب PEP 8 Python . يجب أن يحاول الكود الجديد اتباع نمط الكود الأسود ولكن مع:

  • طول الخط: 80
  • مسافة بادئة 2 بدلا من 4.
  • اقتباس واحد '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

يمكنك تجربة yapf لتنسيق ملف تلقائيًا، لكن الأداة ليست مثالية، لذلك من المحتمل أن تضطر إلى تطبيق الإصلاحات يدويًا بعد ذلك.

yapf tensorflow_datasets/core/some_file.py

يجب تثبيت كل من pylint و yapf باستخدام pip install -e ".[dev]" ولكن يمكن أيضًا تثبيتهما يدويًا باستخدام pip install . إذا كنت تستخدم VS Code، فيجب دمج هذه الأدوات في واجهة المستخدم.

سلاسل المستندات والتعليقات التوضيحية للكتابة

يجب توثيق الفئات والوظائف باستخدام سلاسل المستندات والتعليق التوضيحي للكتابة. يجب أن تتبع سلاسل المستندات أسلوب 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
  """

إضافة وتشغيل Unittests

تأكد من اختبار الميزات الجديدة باستخدام اختبارات الوحدة. يمكنك إجراء الاختبارات من خلال واجهة VS Code أو سطر الأوامر. على سبيل المثال:

pytest -vv tensorflow_datasets/core/

pytest vs unittest : تاريخيًا، كنا نستخدم وحدة unittest لكتابة الاختبارات. يفضل أن تستخدم الاختبارات الجديدة pytest وهو أكثر بساطة ومرونة وحداثة وتستخدمه معظم المكتبات الشهيرة (numpy، pandas، sklearn، matplotlib، scipy، six، ...). يمكنك قراءة دليل pytest إذا لم تكن معتادًا على pytest.

تعتبر اختبارات DatasetBuilders خاصة وموثقة في دليل إضافة مجموعة بيانات .

إرسال العلاقات العامة للمراجعات!

تهاني! راجع تعليمات GitHub لمزيد من المعلومات حول استخدام طلبات السحب.