تخطي إلى المحتوى

المساهمة في Ultralytics مشاريع مفتوحة المصدر

مرحباً بكم! يسعدنا أنكم تفكرون في المساهمة في Ultralytics في مشاريعنا مفتوحة المصدر. فمشاركتك لا تساعد فقط في تحسين جودة مستودعاتنا بل تفيد المجتمع بأكمله. يوفر هذا الدليل إرشادات واضحة وأفضل الممارسات لمساعدتك على البدء.

Ultralytics المساهمون في المصادر المفتوحة

مدونة قواعد السلوك

لضمان توفير بيئة ترحيبية وشاملة للجميع، يجب على جميع المساهمين الالتزام بمدونة قواعد السلوك الخاصة بنا. فالاحترام واللطف والاحترافية هي أساس مجتمعنا.

المساهمة عبر طلبات السحب

نحن نقدر كثيراً المساهمات في شكل طلبات سحب. لجعل عملية المراجعة سلسة قدر الإمكان، يرجى اتباع الخطوات التالية:

  1. فورك المستودع: ابدأ بتفرع مستودع Ultralytics YOLO إلى حسابك على GitHub.

  2. إنشاء فرع: أنشئ فرعًا جديدًا في مستودعك المتشعب باسم وصفي واضح يعكس التغييرات التي أجريتها.

  3. قم بإجراء تغييراتك: تأكد من التزام الكود الخاص بك بإرشادات نمط المشروع وعدم إدخال أي أخطاء أو تحذيرات جديدة.

  4. اختبر تغييراتك: قبل الإرسال، اختبر التغييرات التي أجريتها محليًا للتأكد من أنها تعمل كما هو متوقع ولا تتسبب في أي مشكلات جديدة.

  5. التزم بتغييراتك: التزم بتغييراتك برسالة التزام موجزة ووصفية. إذا كانت تغييراتك تتناول مشكلة محددة، فقم بتضمين رقم المشكلة في رسالة الالتزام الخاصة بك.

  6. إنشاء طلب سحب: أرسل طلب سحب من مستودعك المتشعب إلى المستودع الرئيسي Ultralytics YOLO . قدِّم شرحًا واضحًا ومفصلاً للتغييرات التي أجريتها وكيف تعمل على تحسين المشروع.

توقيع CLA

قبل أن نتمكن من دمج طلب السحب الخاص بك، يجب عليك التوقيع على اتفاقية ترخيص المساهمين (CLA). تضمن هذه الاتفاقية القانونية أن تكون مساهماتك مرخصة بشكل صحيح، مما يسمح بمواصلة توزيع المشروع بموجب الترخيص AGPL-3.0 .

بعد إرسال طلب السحب الخاص بك، سيرشدك روبوت CLA خلال عملية التوقيع. للتوقيع على CLA، ما عليك سوى إضافة تعليق في طلب العلاقات العامة الخاص بك ينص على:

I have read the CLA Document and I sign the CLA

Googleسلاسل المستندات ذات الطراز -Style Docstrings

عند إضافة دوال أو فئات جديدة، يُرجى تضمين Google-style -style docstrings. توفر هذه السلاسل الوثائقية وثائق واضحة وموحدة تساعد المطورين الآخرين على فهم شفرتك البرمجية والحفاظ عليها.

أمثلة على سلاسل المستندات

يوضح هذا المثال سلسلة مستندات Google-style -style docstring. تأكد من أن كلاً من المدخلات والمخرجات types دائمًا بين قوسين، على سبيل المثال (bool).

def example_function(arg1, arg2=4):
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1 (int): The first argument.
        arg2 (int): The second argument, with a default value of 4.

    Returns:
        (bool): True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

يتضمن هذا المثال كلاً من سلسلة المستندات Google-style -style وتلميحات النوع للوسائط والإرجاعات، على الرغم من أن استخدام أي منهما بشكل مستقل مقبول أيضًا.

def example_function(arg1: int, arg2: int = 4) -> bool:
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1: The first argument.
        arg2: The second argument, with a default value of 4.

    Returns:
        True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

بالنسبة للدوال الأصغر أو الأبسط، قد تكون سلسلة المستندات ذات السطر الواحد كافية. يجب أن تستخدم سلسلة المستندات ثلاث علامات اقتباس مزدوجة، وأن تكون جملة كاملة، وأن تبدأ بحرف كبير وتنتهي بنقطة.

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """Example function with a single-line docstring."""
    return arg1 == arg2

اختبارات CI لإجراءات GitHub إجراءات GitHub

يجب أن تجتاز جميع طلبات السحب اختبارات التكامل المستمر (CI) الخاصة بإجراءات GitHub قبل أن يتم دمجها. وتتضمن هذه الاختبارات التنضيد واختبارات الوحدة وغيرها من الفحوصات للتأكد من أن تغييراتك تفي بمعايير جودة المشروع. قم بمراجعة مخرجات التكامل المستمر ومعالجة أي مشاكل تظهر.

الإبلاغ عن الأخطاء

نحن نقدر بشدة تقارير الأخطاء لأنها تساعدنا في الحفاظ على جودة مشاريعنا. عند الإبلاغ عن أي خطأ، يُرجى تقديم الحد الأدنى من الأمثلة القابلة للتكرار - وهومثال بسيط وواضح على التعليمات البرمجية التي تعيد إنتاج المشكلة باستمرار. يسمح لنا ذلك بتحديد المشكلة وحلها بسرعة.

الترخيص

Ultralytics تستخدم رخصة جنو أفيرو العمومية GNU Affero Public Public License v3.0 (AGPL-3.0 ) لمستودعاتها. تعزز هذه الرخصة الانفتاح والشفافية والتحسين التعاوني في تطوير البرمجيات. ويضمن تمتع جميع المستخدمين بحرية استخدام البرمجيات وتعديلها ومشاركتها، مما يعزز مجتمعًا قويًا من التعاون والابتكار.

نحن نشجع جميع المساهمين على التعرف على شروط الترخيص AGPL-3.0 للمساهمة بفعالية وأخلاقية في مجتمع المصدر المفتوح Ultralytics .

افتح مصادر مشاريعك مع YOLO و AGPL-3.0 الامتثال

إذا كنت تخطط لتطوير وإصدار مشروعك الخاص باستخدام نماذج YOLO ، فإن رخصة جنو أفيرو العمومية GNU Affero Public Public License v3.0 (AGPL-3.0 ) تضمن بقاء جميع الأعمال المشتقة مفتوحة ومتاحة. يوفر هذا القسم إرشادات، بما في ذلك الخطوات وأفضل الممارسات والمتطلبات، لمساعدتك في فتح مصدر مشروعك مع الامتثال للرخصة AGPL-3.0.

خيارات لبدء مشروعك

يمكنك بدء مشروعك باستخدام أحد هذه الأساليب:

  1. Fork the Ultralytics YOLO Repository
    Fork المستودع الرسمي Ultralytics YOLO مباشرة من https://github.com/ultralytics/ ultralytics.

    • استخدم هذا الخيار إذا كنت تخطط للبناء مباشرةً على أحدث تطبيق YOLO .
    • قم بتعديل الكود المتشعب حسب الحاجة مع ضمان التوافق مع AGPL-3.0.
  2. ابدأ من مستودع القوالب Ultralytics
    استخدم مستودع القوالب Ultralytics المتاح على https://github.com/ultralytics/ القالب.

    • مثالي لبدء مشروع نظيف ونموذجي مع أفضل الممارسات المهيأة مسبقًا.
    • يوفر هذا الخيار نقطة انطلاق خفيفة الوزن للمشاريع التي تدمج أو توسع نماذج YOLO .

ما تحتاجه لفتح المصدر

للامتثال إلى AGPL-3.0 ، يجب عليك إتاحة المكونات التالية من مشروعك بشكل علني:

  1. الكود المصدري لمشروعك بالكامل

    • قم بتضمين جميع التعليمات البرمجية للمشروع الأكبر الذي يحتوي على نماذج YOLO والنصوص البرمجية والأدوات المساعدة.
  2. أوزان الطراز (في حالة تعديلها):

    • شارك أي أوزان نموذجية معدلة أو معدلة كجزء من مشروع مفتوح المصدر.
  3. ملفات التكوين:

    • توفير ملفات التكوين مثل .yaml أو .json التي تحدد إعدادات التدريب، أو المعلمات الفائقة، أو تكوينات النشر.
  4. بيانات التدريب (إذا كانت قابلة لإعادة التوزيع):

    • إذا قمت بتضمين بيانات تمت معالجتها مسبقًا أو تم إنشاؤها قابلة لإعادة التوزيع، فتأكد من أنها جزء من المستودع أو تم ربطها بوضوح.
  5. مكونات تطبيقات الويب:

    • قم بتضمين جميع التعليمات البرمجية المصدرية للواجهة الخلفية والواجهة الأمامية إذا كان مشروعك تطبيق ويب، خاصةً المكونات من جانب الخادم.
  6. التوثيق:

    • تضمين وثائق واضحة حول كيفية استخدام مشروعك وبنائه وتوسيعه.
  7. البرامج النصية للبناء والنشر:

    • مشاركة البرامج النصية لإعداد البيئة وبناء التطبيق ونشره، مثل Dockerfiles, requirements.txtأو Makefiles.
  8. إطار الاختبار:

    • افتح المصدر لحالات الاختبار الخاصة بك، مثل اختبارات الوحدة والتكامل، لضمان إمكانية التكرار والموثوقية.
  9. تعديلات الطرف الثالث:

    • قدم شفرة المصدر لأي مكتبات خارجية قمت بتعديلها.

خطوات فتح المصدر المفتوح لمشروعك

  1. اختر نقطة البداية:

    • فورك مستودع Ultralytics YOLO أو ابدأ من مستودع القوالب Ultralytics .
  2. اضبط رخصتك:

    • إضافة LICENSE ملف يحتوي على نص AGPL-3.0 .
  3. مساهمات المنبع الدائنة:

    • قم بتضمين الإسناد إلى Ultralytics YOLO في README الخاص بك. على سبيل المثال:
      This project builds on [Ultralytics YOLO](https://github.com/ultralytics/ultralytics), licensed under AGPL-3.0.
      
  4. اجعل الكود الخاص بك علنيًا:

    • ادفع مشروعك بالكامل (بما في ذلك المكونات المذكورة أعلاه) إلى مستودع GitHub العام.
  5. قم بتوثيق مشروعك:

    • اكتب رسالة واضحة README.md مع تعليمات للإعداد والاستخدام والمساهمات.
  6. تمكين المساهمات:

    • قم بإعداد متتبع المشكلات وإرشادات المساهمة لتعزيز التعاون.

من خلال اتباع هذه الخطوات والتأكد من تضمين جميع المكونات الضرورية، ستلتزم بـ AGPL-3.0 وتساهم بشكل مفيد في مجتمع المصادر المفتوحة. لنواصل تعزيز التعاون والابتكار في مجال الرؤية الحاسوبية معًا! 🚀

مثال على هيكلية المستودع

فيما يلي مثال على هيكل مشروع AGPL-3.0 . ان ظر https://github.com/ultralytics /Tememplate للحصول على التفاصيل.

my-yolo-project/
├── LICENSE               # AGPL-3.0 license text
├── README.md             # Project overview and license information
├── src/                  # Source code for the project
│   ├── model.py          # YOLO-based model implementation
│   ├── utils.py          # Utility scripts
│   └── ...
├── pyproject.toml        # Python dependencies
├── tests/                # Unit and integration tests
├── .github/              # GitHub Actions for CI
│   └── workflows/
│       └── ci.yml        # Continuous integration configuration
└── docs/                 # Project documentation
    └── index.md

من خلال اتباع هذا الدليل، يمكنك ضمان أن يظل مشروعك متوافقًا مع AGPL-3.0 أثناء المساهمة في مجتمع المصادر المفتوحة. إن التزامك يعزز روح التعاون والشفافية وإمكانية الوصول التي تقود نجاح مشاريع مثل YOLO.

الخاتمة

شكرًا لك على اهتمامك بالمساهمة في Ultralytics المشاريع المفتوحة المصدر YOLO . إن مشاركتك ضرورية في تشكيل مستقبل برمجياتنا وبناء مجتمع نابض بالحياة من الابتكار والتعاون. سواء كنت تقوم بتحسين الكود أو الإبلاغ عن الأخطاء أو اقتراح ميزات جديدة، فإن مساهماتك لا تقدر بثمن.

نحن متحمسون لرؤية أفكارك تتحقق ونقدر التزامك بتطوير تقنية الكشف عن الكائنات. لنستمر معاً في النمو والابتكار في هذه الرحلة المثيرة مفتوحة المصدر. ترميز سعيد! 🚀🌟

الأسئلة الشائعة

لماذا يجب أن أساهم في مستودعات Ultralytics YOLO مفتوحة المصدر؟

تعمل المساهمة في مستودعات المصدر المفتوح Ultralytics YOLO على تحسين البرنامج، مما يجعله أكثر قوة وغني بالميزات للمجتمع بأكمله. يمكن أن تتضمن المساهمات تحسينات في التعليمات البرمجية وإصلاحات للأخطاء وتحسينات في التوثيق وتطبيقات الميزات الجديدة. بالإضافة إلى ذلك، تتيح لك المساهمة التعاون مع مطورين وخبراء مهرة آخرين في هذا المجال، مما يعزز مهاراتك وسمعتك. للحصول على تفاصيل حول كيفية البدء، راجع قسم المساهمة عبر طلبات السحب.

كيف يمكنني التوقيع على اتفاقية ترخيص المساهمين (CLA) الخاصة بـ Ultralytics YOLO ؟

للتوقيع على اتفاقية ترخيص المساهمين (CLA)، اتبع التعليمات التي يقدمها روبوت CLA بعد إرسال طلب السحب الخاص بك. تضمن هذه العملية أن مساهماتك مرخصة بشكل صحيح بموجب الترخيص AGPL-3.0 ، مما يحافظ على السلامة القانونية للمشروع مفتوح المصدر. أضف تعليقًا في طلب السحب الخاص بك ينص على:

I have read the CLA Document and I sign the CLA.

لمزيد من المعلومات، راجع قسم توقيع CLA.

ما هي سلاسل المستندات Google ، ولماذا هي مطلوبة للمساهمات Ultralytics YOLO ؟

Google-توفر السلاسل المستندية ذات النمط المستندي توثيقًا واضحًا وموجزًا للدوال والفئات، مما يحسن من سهولة قراءة الشيفرة البرمجية وقابلية صيانتها. توضح هذه السلاسل الوثائقية الغرض من الدالة ووسائطها وقيم الإرجاع مع قواعد تنسيق محددة. عند المساهمة في Ultralytics YOLO ، فإن اتباع سلاسل المستندات على غرار Google يضمن أن تكون إضافاتك موثقة بشكل جيد وسهلة الفهم. للحصول على أمثلة وإرشادات، قم بزيارة قسم Google-Style Docstrings.

كيف يمكنني ضمان اجتياز التغييرات التي أجريتها لاختبارات GitHub Actions CI؟

قبل أن يتم دمج طلب السحب الخاص بك، يجب أن يجتاز جميع اختبارات التكامل المستمر (CI) الخاصة بإجراءات GitHub. وتتضمن هذه الاختبارات التنضيد، واختبارات الوحدة، واختبارات الوحدة، واختبارات أخرى للتأكد من أن الشيفرة تفي بما يلي

معايير جودة المشروع. راجع مخرجات CI وأصلح أي مشاكل. للحصول على معلومات مفصّلة حول عملية CI ونصائح حول استكشاف الأخطاء وإصلاحها، راجع قسم اختبارات CI لإجراءات GitHub CI.

كيف يمكنني الإبلاغ عن خطأ في مستودعات Ultralytics YOLO ؟

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

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 15 يومًا

التعليقات