إرسال الرقع

تصف هذه الصفحة العملية الكاملة لإرسال تصحيح إلى مشروع Android مفتوح المصدر (AOSP) ، بما في ذلك كيفية طلب مراجعة وتتبع تغييراتك باستخدام Gerrit .

المتطلبات الأساسية

للبدء ، تأكد من قيامك بما يلي:

موارد

  • للحصول على تفاصيل حول Repo و Git ، راجع صفحة أدوات التحكم في المصدر .
  • للحصول على معلومات حول الأدوار المختلفة داخل مجتمع Android Open Source ، راجع صفحة أدوار المشروع .
  • للحصول على معلومات حول ترخيص المساهمة في نظام Android الأساسي ، راجع صفحة التراخيص .

للمساهمين

المصادقة مع الخادم

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

بدء فرع ريبو

لكل تغيير تنوي إجراؤه ، ابدأ فرعًا جديدًا داخل مستودع Git ذي الصلة:

repo start NAME .

يمكنك بدء عدة فروع مستقلة في نفس الوقت في نفس المستودع. الفرع NAME محلي في مساحة العمل الخاصة بك ولا يتم تضمينه في Gerrit أو في شجرة المصدر النهائية.

صنع التغيير الخاص بك

قم بتعديل ملفات المصدر وتحقق من صحة التغييرات.

قم بتنفيذ التغييرات على المستودع المحلي الخاص بك باستخدام هذه الأوامر:

git add -A
git commit -s

تغيير الأوصاف

  • السطر 1: العنوان

    قدم ملخصًا من سطر واحد (50 حرفًا كحد أقصى )

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

    ui: Removes deprecated widget

  • السطر 2: فارغ

    احتفظ بهذا السطر فارغًا دائمًا.

  • السطر 3: الجسم

    اكتب وصفًا أطول ، بدءًا من هذا السطر.

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

    قم بتضمين ملاحظة موجزة عن أي افتراضات أو معلومات أساسية قد تكون مهمة عندما يعمل مساهم آخر على هذه الميزة.

يُضاف معرّف التغيير الفريد واسمك وبريدك الإلكتروني ، اللذين يتم repo init أثناء عملية repo init ، تلقائيًا إلى رسالة الالتزام الخاصة بك.

إليك مثال على رسالة الالتزام:

Line 1, Headline - a short description

Line 3, Body - Add the detailed description of your patch here. Use as many lines
as needed. You can write an overall description, then list specifics.

I6e3c64e7a:Added a new widget.
I60c539a8f:Fixed the spinning image.
لقراءة مدونة حول أوصاف الالتزام الجيد (مع أمثلة) ، راجع كيفية كتابة رسالة Git Commit بواسطة Chris Beams.

تحميل إلى جيريت

بعد إجراء التغيير في سجلك الشخصي ، قم بتحميله إلى Gerrit باستخدام هذا الأمر:

repo upload

إذا بدأت عدة فروع في نفس المستودع ، فسيُطلب منك تحديد الفروع المراد تحميلها.

بعد تحميل ناجح ، يوفر لك Repo عنوان URL لصفحة جديدة على Gerrit . انقر فوق الارتباط الذي يمنحك إياه Repo لعرض التصحيح الخاص بك على خادم المراجعة أو إضافة تعليقات أو طلب مراجعين محددين للتصحيح الخاص بك.

طلب مراجعة

بعد تحميل التغييرات على Gerrit ، يجب مراجعة التصحيح والموافقة عليه من قبل مالكي الكود المناسبين. حدد موقع مالكي الأكواد في ملفات OWNERS .

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

  1. حدد رابط SUGGEST OWNERS في واجهة مستخدم Gerrit للاطلاع على قائمة بمالكي الأكواد للملفات الموجودة في التصحيح الخاص بك.

    اقترح ارتباط أصحاب في جيريت
    الشكل 1. اقترح رابط المالكين في جيريت
  2. أضف مالكي الأكواد من القائمة كمراجعين للتصحيح الخاص بك.

لتحديد حالة الملفات الموجودة في التصحيح الخاص بك ، تحقق من الرموز التالية بجوار الملفات الموجودة في التصحيح.

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

تحميل تصحيح بديل

افترض أن المراجع نظر إلى التصحيح الخاص بك وطلب تعديلًا بسيطًا. يمكنك تعديل الالتزام داخل Git ، مما ينتج عنه تصحيح جديد على Gerrit له نفس معرف التغيير مثل الأصل.

git add -A
git commit --amend

عند تحميل التصحيح المعدل ، فإنه يحل محل النسخة الأصلية على Gerrit وفي سجل Git المحلي.

حل تعارضات المزامنة

إذا تم إرسال تصحيحات أخرى إلى شجرة المصدر التي تتعارض مع شجرتك ، فأعد تحديد موقع التصحيح الخاص بك أعلى HEAD الجديد لمستودع المصدر. للقيام بذلك ، قم بتشغيل هذا الأمر:

repo sync

يقوم أمر repo sync بجلب التحديثات من الخادم المصدر ، ثم يحاول إعادة تعيين HEAD تلقائيًا على HEAD البعيد الجديد.

إذا لم تنجح عملية إعادة التأسيس التلقائية ، فقم بإجراء عملية إعادة تحديد قاعدة البيانات يدويًا.

repo rebase

أداة أخرى للتعامل مع تعارض rebase هي git mergetool . عند دمج الملفات المتعارضة بنجاح ، قم بتشغيل هذا الأمر:

git rebase --continue

بعد اكتمال repo upload التأسيس التلقائي أو اليدوي ، شغّل repo upload لإرسال التصحيح المعاد تأسيسه.

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

بعد أن يمر الإرسال خلال عملية المراجعة والتحقق ، يقوم Gerrit تلقائيًا بدمج التغيير في المستودع العام. يمكن للمستخدمين الآخرين تشغيل repo sync لسحب التحديث إلى عملائهم المحليين.

لمشاريع المنبع

يستخدم Android عددًا من المشاريع الأخرى مفتوحة المصدر ، مثل Linux kernel و WebKit ، كما هو موضح في إدارة برامج Android . بالنسبة لمعظم المشاريع الموجودة تحت external/ ، قم بإجراء التغييرات في المنبع ، ثم أبلغ مسؤولي صيانة Android بالإصدار الأولي الجديد الذي يحتوي على تغييراتك.

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

حالة خاصة واحدة مثيرة للاهتمام هي Bionic. الكثير من الكود هناك من BSD ، لذا ما لم يكن التغيير إلى الكود الجديد في Bionic ، يرجى إجراء إصلاح أولي ، ثم سحب ملف جديد بالكامل من BSD المناسب.

Android Kernel

تفضل إجراء جميع التغييرات في المنبع. للحصول على إرشادات عامة ، اتبع إرشادات مساهمة Android Kernel .

ICU4C

قم بإجراء جميع التغييرات على مشروع ICU4C على external/icu4c على الصفحة الرئيسية ICU-TC . راجع إرسال أخطاء وحدة العناية المركزة وطلبات الميزات للمزيد.

LLVM / Clang / Compiler-rt

قم بإجراء جميع التغييرات على المشاريع المتعلقة بـ LLVM ( external/clang ، external/llvm external/compiler-rt ، external/llvm ) في صفحة البنية الأساسية للمجمع في LLVM .

مكش

قم بإجراء جميع التغييرات على مشروع MirBSD Korn Shell على موقع external/mksh إما عن طريق إرسال بريد إلكتروني إلى miros-mksh على مجال mirbsd.org (لا يلزم الاشتراك mirbsd.org هناك) أو في Launchpad .

OpenSSL

قم بإجراء جميع التغييرات على مشروع OpenSSL على العنوان external/openssl في صفحة OpenSSL .

V8

قم بإرسال جميع التغييرات إلى مشروع V8 في external/v8 على صفحة إصدار V8 . انظر المساهمة في V8 للحصول على التفاصيل.

WebKit

قم بإجراء جميع التغييرات على مشروع WebKit في external/webkit على صفحة WebKit . ابدأ العملية عن طريق تسجيل خطأ WebKit . في الخطأ ، استخدم Android لحقول النظام الأساسي ونظام التشغيل فقط إذا كان الخطأ خاصًا بنظام Android. من المرجح أن تتلقى الأخطاء انتباه المراجعين بعد إضافة الإصلاح المقترح وتضمين الاختبارات. راجع " مساهمة التعليمات البرمجية في WebKit" للحصول على التفاصيل.

زليب

قم بإجراء جميع التغييرات على مشروع zlib في external/zlib على صفحة zlib الرئيسية .