تصف هذه الصفحة العملية الكاملة لإرسال تصحيح إلى مشروع 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
، تلقائيًا إلى رسالة الالتزام.
إليك مثال على رسالة الالتزام:
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 لكريس بيمز.
تحميل إلى جيريت
بعد إجراء التغيير في سجلك الشخصي ، قم بتحميله إلى Gerrit باستخدام هذا الأمر:
repo upload
إذا بدأت عدة فروع في نفس المستودع ، فسيُطلب منك تحديد الفروع المراد تحميلها.
بعد تحميل ناجح ، يوفر لك Repo عنوان URL لصفحة جديدة على Gerrit . انقر فوق الارتباط الذي يوفره لك Repo لعرض التصحيح الخاص بك على خادم المراجعة أو إضافة تعليقات أو طلب مراجعين محددين للتصحيح الخاص بك.
طلب مراجعة
بعد تحميل التغييرات على Gerrit ، يجب مراجعة التصحيح والموافقة عليه من قبل مالكي الكود المناسبين. حدد موقع مالكي الأكواد في ملفات OWNERS
.
للعثور على مالكي الشفرة المناسبين وإضافتهم كمراجعين للتغيير الذي أجريته ، اتبع هذه الخطوات.
حدد رابط SUGGEST OWNERS في واجهة مستخدم Gerrit للاطلاع على قائمة بمالكي الأكواد للملفات الموجودة في التصحيح الخاص بك.
الشكل 1. اقترح رابط المالكين في جيريت أضف مالكي الأكواد من القائمة كمراجعين للتصحيح الخاص بك.
لتحديد حالة الملفات الموجودة في التصحيح الخاص بك ، تحقق من الرموز التالية بجوار الملفات الموجودة في التصحيح.
- (رمز علامة الاختيار): وافق عليه مالك الرمز
- (رمز الصليب): لم تتم الموافقة عليه من قبل مالك الرمز
- (رمز الساعة): في انتظار الموافقة من قبل مالك الرمز

تحميل تصحيح بديل
افترض أن المراجع نظر إلى التصحيح الخاص بك وطلب تعديلًا بسيطًا. يمكنك تعديل الالتزام داخل 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
لإرسال التصحيح المعاد تأسيسه.
بعد الموافقة على التقديم
بعد أن يمر الإرسال خلال عملية المراجعة والتحقق ، يقوم Gerrit تلقائيًا بدمج التغيير في المستودع العام. يمكن للمستخدمين الآخرين تشغيل repo sync
لسحب التحديث إلى عملائهم المحليين.
لمشاريع المنبع
يستخدم Android عددًا من المشاريع الأخرى مفتوحة المصدر ، مثل Linux kernel و WebKit ، كما هو موضح في إدارة برامج Android . بالنسبة لمعظم المشاريع الموجودة تحت external/
، قم بإجراء التغييرات في المنبع ، ثم أبلغ مسؤولي صيانة Android بالإصدار الأولي الجديد الذي يحتوي على تغييراتك.
يمكنك أيضًا تحميل تصحيحات تؤدي إلى تتبع إصدار جديد في المنبع. لاحظ أنه قد يكون من الصعب إجراء هذه التغييرات إذا تم استخدام المشروع على نطاق واسع داخل Android ، مثل معظم المشروعات الكبيرة المذكورة أدناه ، والتي تتم ترقيتها عادةً مع كل إصدار.
حالة خاصة واحدة مثيرة للاهتمام هي Bionic. الكثير من الكود هناك من BSD ، لذا ما لم يكن التغيير إلى الكود الجديد في Bionic ، يرجى إجراء إصلاح أولي ، ثم سحب ملف جديد بالكامل من BSD المناسب.
Android Kernel
قم بإجراء كل التغييرات في المنبع. للحصول على إرشادات عامة ، اتبع إرشادات مساهمة Android Kernel وصفحة Develop Kernel Code for GKI .
وحدة العناية المركزة
قم بإجراء جميع التغييرات على مشروع وحدة العناية المركزة في external/icu
( icu4c/
و icu4j/
folder) على الصفحة الرئيسية لـ ICU-TC . راجع إرسال أخطاء وحدة العناية المركزة وطلبات الميزات للمزيد.
CLDR
تأتي معظم البيانات اللغوية في وحدة العناية المركزة من مشروع Unicode CLDR . يرجى إرسال جميع الطلبات في بداية الطريق باستخدام طلبات تغيير CLDR وإضافة التسمية "Android".
LLVM / Clang / Compiler-rt
قم بإجراء جميع التغييرات على المشاريع المتعلقة بـ LLVM ( external/clang
، external/compiler-rt
، external/llvm
) في صفحة البنية الأساسية للمجمع في LLVM .
مكش
قم بإجراء جميع التغييرات على مشروع MirBSD Korn Shell على النطاق external/mksh
إما عن طريق إرسال بريد إلكتروني إلى miros-mksh
على مجال 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 الرئيسية .