إرسال التغييرات التي تم إجراؤها على الرمز

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

تعتمد AOSP على Gerrit، وهو نظام لمراجعة الرموز البرمجية المستند إلى الويب للمشروعات التي تستخدم جيت

توقيع اتفاقيات ترخيص المساهم

قبل المساهمة بأي تغييرات في رمز AOSP، يجب عليك قراءة عناوين واتفاقيات ترخيص المساهمين وتوقيع إحدى الاتفاقيات التالية:

إنشاء فرع

نفِّذ الخطوات التالية لكل تغيير تنوي إجراؤه على الرمز:

  1. ابدأ فرعًا جديدًا ضمن مستودع Git ذي الصلة. الفرع ليس نسخة الملفات الأصلية؛ إنه مؤشر على التزام معين، مما يجعل إنشاء فروع محلية والتبديل بينها في عملية بسيطة. من باستخدام الفروع، يمكنك تحديد التغييرات من بعضها البعض. نفِّذ الأمر التالي إلى إنشاء فرع:

    repo start BRANCH_NAME
    

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

  2. (اختياري) تأكَّد من أنّه تم إنشاء الفرع:

    repo status .
    

    من المفترض أن يظهر لك الفرع الذي أنشأته مؤخرًا. مثلاً:

    project frameworks/native/                      branch mynewbranch
    

إجراء التغيير واختباره

يُرجى اتّباع الخطوات التالية لإجراء التغيير واختباره:

  1. للتأكّد من العمل باستخدام أحدث قاعدة رموز، عليك إجراء مزامنة قاعدة التعليمات البرمجية بالكامل:

    repo sync
    

    إذا كان لديك أي تعارضات أثناء المزامنة، فراجع الخطوات 2-4 من حلّ التعارضات في المزامنة

  2. ابحث عن الرمز الذي تريد تغييره. للعثور على التعليمات البرمجية، ضع في اعتبارك استخدام Android Code Search: يمكنك استخدام Android Code Search لعرض رمز مصدر AOSP كما تم توضيحه عندما تستخدم بها. لمزيد من المعلومات، يُرجى مراجعة بدء استخدام Code Search. للاطّلاع على كل الرموز في فرع main ضمن البحث عن رموز Android، الانتقال إلى https://cs.android.com/android/platform/superproject/main

  3. عدِّل الملفات المصدر أو أضِفها. بالنسبة إلى أي تغييرات تم إجراؤها:

  4. إنشاء Android:

  5. اختبار الإصدار:

البدء بتنفيذ التغيير

الالتزام هي الوحدة الأساسية للتحكم في المراجعة في Git وتتكون من لقطة لبنية الدليل ومحتويات الملف للمشروع بأكمله. اتبع الخطوات التالية للالتزام بالتغيير:

  1. يقوم Git بالتسجيل افتراضيًا، ولكنه لا يتتبع التغييرات التي تجريها. إلى أن ترشد Git إلى تتبع تغييراتك، فيجب عليك وضع علامة على هذه التغييرات أو مراحلها الاندماج في أي التزام. نفِّذ الأمر التالي لتنظيم التغيير:

    git add -A
    

    يتتبع هذا الأمر التغييرات التي أجريتها على أي ملفات.

  2. أخذ الملفات في المنطقة المرحلية وحفظها أو تخزينها في منطقتك قاعدة البيانات:

    git commit -s
    

    يتم فتح محرر نصوص تلقائيًا وتتم مطالبتك بتقديم إتمام الرسالة.

  3. قدِّم رسالة التزام بالتنسيق التالي:

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

      ui: Removes deprecated widget
      
    • السطر 2: سطر فارغ. اتبع العنوان بسطر فارغ.

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

    لقراءة مدونة حول أوصاف الالتزام الجيدة (مع أمثلة)، راجع طريقة كتابة رسالة Git Commit

  4. احفظ الاشتراك.

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

تحميل التغيير للمراجعة

بعد الالتزام بالتغيير على سجلّ Git الشخصي، يمكنك تحميله إلى Gerrit:

  1. شغّل الأمر التالي لتحميل جميع عمليات التنفيذ في كل المشروعات:

    repo upload
    

    يتم تضمين جميع التغييرات في كل المشاريع في عملية التحميل.

    يُطلب منك تشغيل نصوص برمجية للجذب.

  2. اضغط على a ثم Enter.

    سيُطلب منك الموافقة على التحميل:

    Upload project frameworks/native/ to remote branch main:
    branch BRANCH_NAME ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
           ff46b36d android codelab change
    to https://android-review.googlesource.com/ (y/N)?
    
  3. اضغط على y ثم Enter للموافقة على التحميل.

من المفترَض أن تتلقّى رسالة مشابهة لـ remote: SUCCESS.

طلب إجراء مراجعة

بعد إجراء تحميل ناجح، يزوّدك Repo برابط إلى التغييرات التي أجريتها في جيريت. انقر على الرابط لعرض التغييرات على خادم المراجعات وإضافة التعليقات أو طلب مراجعين محددين لتغييرك. يجب تنفيذ جميع التغييرات التي يتم إجراؤها على الرمز أن يراجعها مالكي الرموز المعنيون لطلب مراجعة:

  1. في Gerrit، انقر على اقتراح المالكين:

    اقتراح رابط للمالكين في Gerrit

    الشكل 1. اقتراح رابط للمالكين في Gerrit.

    سيظهر مربع حوار المُراجع. يحتوي مربع الحوار هذا على قائمة بمالكي الرموز الذين مراجعة التغيير الذي أجريته.

  2. انقر على مالك رمز لإضافته إلى مراجعتك.

    تمّ تفعيل الزر إرسال.

  3. (اختياري) اكتب عنوان البريد الإلكتروني لأي شخص آخر تريد مراجعة التغيير.

  4. (اختياري) انقر على +1 بجانب "إرسال تلقائي" لإرسال التغيير تلقائيًا. بعد الحصول على الموافقات. في حال عدم النقر على هذا الزر، سيتعين على موظف Google إرسال التغيير نيابة عنك.

  5. انقر على إرسال لإرسال التغيير للمراجعة.

يراجع مالكو الرمز التغييرات التي أجريتها على الرمز، ويقدمون لك ملاحظاتهم لحل التغييرات أو الموافقة عليها.

تحديد حالة التغيير

لتحديد حالة الملفات في التغيير الذي أجريته، تحقق من الرموز التالية بجوار الملفات في التغيير:

  • (علامة اختيار icon): موافَق عليها من قبل مالك الرمز
  • (رمز متقاطع): لم يوافق عليه مالك الرمز البرمجي
  • (الساعة ): في انتظار الموافقة من قِبل مالك الرمز

يوضح الشكل التالي رموز الحالة هذه عند تطبيقها على الملفات:

مثال على ملفات تتضمّن رموزًا تعرض موافقة مالك الرموز البرمجية

الشكل 2. مثال على ملفات تتضمّن رموزًا تعرض موافقة مالك الرموز البرمجية

التعامل بشكل نهائي مع الملاحظات وتحميل تغيير الاستبدال

إذا طلب أحد المراجعين إجراء تعديل على التحديث، يمكنك تعديل الالتزام في Git، ما يؤدي إلى إنشاء مجموعة رموز تصحيح جديدة على التغيير.

لمعالجة الملاحظات وتعديل التغيير:

  1. اتّبِع الخطوات من 2 إلى 4 في إجراء التغيير واختباره.

  2. شغّل الأوامر التالية لتعديل التغيير:

    git add -A
    git commit --amend
    
  3. حمِّل التغيير.

عند تحميل التغيير المعدَّل، سيحلّ محلّ التغيير الأصلي على Gerrit وفي سجلّ Git المحلي

حلّ التعارضات في المزامنة

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

  1. تأكّد من استخدام أحدث رمز:

    repo sync .
    

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

  2. في حال لم تنجح عملية إعادة الضبط التلقائية، يمكنك تنفيذ عملية إعادة الضبط يدويًا:

    repo rebase .
    
  3. يمكنك حلّ تعارضات الدمج. إذا لم تكن لديك طريقة مفضّلة لحل المشاكل تعارضات الدمج، يمكنك استخدام git mergetool لإصلاح التعارضات بين الملفات يدويًا.

  4. عند الانتهاء من إصلاح الملفات المتضاربة، شغِّل هذا الأمر تطبيق الالتزامات الجديدة:

    git rebase --continue
    

إرسال التغيير

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

بعد دمج النموذج الذي أرسلته، يمكنك الانتقال إلى الدمج المستمر مع Android لوحة التحكم لمراقبة وقت دمج عمليات الإرسال في الشجرة.