ریسپین (Respin) فرآیند ادغام مجدد، بازسازی، آزمایش مجدد و تأیید مجدد یک فایل باینری پس از انتشار عمومی هسته GKI است.
قبل از درخواست تمدید، به نکات زیر توجه کنید.
واجد شرایط بودن و چرخه عمر
- زمانبندی: شما میتوانید درخواست respins را فقط در شاخههای انتشار پس از انتشار عمومی اولیه یک نسخه سهماهه ارائه دهید. درخواستهای respin برای vendor-hooks یا سایر ویژگیها را فقط برای یک شاخه انتشار مشخص، حداکثر تا شش ماه پس از انتشار عمومی اولیه، درخواست کنید.
- امنیت و LTS: پس از شش ماه، شعب فقط برای وصلههای امنیتی ذکر شده در بولتن امنیتی اندروید (ASB) یا رفع اشکالات بحرانی واجد شرایط لغو اشتراک هستند.
- منسوخ شدن: وقتی الزامات LTS، که توسط بولتن امنیتی اندروید (ASB) تعریف شده است، باعث عدم انطباق شاخه شود، شاخه منسوخ میشود. درخواستهای Respin برای شاخههای منسوخ شده پذیرفته نمیشوند.
- تاریخ انقضا برای یک شاخه انتشار GKI مشخص، در یادداشتهای ساخت انتشار فصلی GKI در بخش «انتشارات» درج شده است. برای مثال، انتشار سپتامبر ۲۰۲۵ تا مارس ۲۰۲۷ برای بهروزرسانیهای مجدد پشتیبانی میشود. این تاریخ نشان دهنده طول عمر ۱۸ ماهه نسخه هسته LTS 2.0 برای انتشارهایی است که از سپتامبر ۲۰۲۵ شروع میشوند (انتشارهای قبل از سپتامبر ۲۰۲۵ طول عمر ۱۲ ماهه داشتند).
- محدوده: فقط برای رفع اشکالات فوری، بهروزرسانیهای فهرست نمادها یا اعمال وصله برای رفع مشکل یک ویژگی موجود، درخواست تعویق کنید.
استانداردهای ارسال پچ
برای برآورده کردن زمان استاندارد مورد انتظار برای حل مشکل (ESRT) برای پردازش درخواست respin، تمام وصلههای ارسالی به شاخه انتشار باید از قوانین فنی زیر پیروی کنند.
منبع حقیقت و گزیدههای ناب
- شاخه توسعه ابتدا: تمام پچهایی که به شاخه انتشار سهماهه میروند باید از قبل در شاخه توسعه اصلی GKI ادغام شده باشند. برای مثال، اگر پچی برای respin
android15-6.6-2025-08مورد نیاز است، باید از قبل درandroid15-6.6ادغام شده باشد. - انتخاب دقیق: شما باید پچها را مستقیماً از شاخه توسعه انتخاب کنید. از شاخههای انتشار دیگر انتخاب نکنید (برای مثال، از
2025-08تا2025-09انتخاب نکنید)، زیرا این کار میتواند منجر به اطلاعات نویسنده یا کامیت شود که با نسخه موجود در شاخه توسعه مغایرت دارد. پچهایی با اطلاعات مغایر پذیرفته نخواهند شد. - حفظ فراداده: فرادادههای کامیت اصلی (مثلاً نام نویسنده، تاریخ انتشار اصلی) را حفظ کنید. برای حفظ فرادادهها
git cherry-pick -xاستفاده کنید.
زنجیره کامیت
- زنجیرهی متوالی: اگر درخواست respin شامل چندین پچ است، آنها را به صورت یک زنجیرهی متوالی از کامیتها آپلود کنید.
- قرار دادن ABI و KMI: اگر یک بهروزرسانی چند-پچ شامل بهروزرسانیهای رابط ماژول هسته (KMI) و رابط دودویی برنامه (ABI) باشد (برای مثال، تغییرات فهرست نمادها یا بهروزرسانیهای فایل XML/STG)، این کامیتها را در انتهای زنجیره کامیت قرار دهید.
- ریبیس کردن: اگر یک کامیت والد را در زنجیره ویرایش کنید، باید تمام پچهای فرزند را روی آخرین نسخه پچ والد آن ریبیس کنید تا از خرابی در ساخت جلوگیری شود.
- حل تعارض: تأیید کنید که هیچ نشانگر تعارضی در هیچ وصلهای وجود ندارد.
- تأیید ساخت: کل زنجیره کامیت باید با موفقیت ساخته شود.
برچسبهای مورد نیاز
پیشرفت درخواست respin بدون تگهای زیر در پیام کامیت مسدود میشود:
-
Change-Id: باید باChange-Idتغییر شاخه توسعه (development branch) یکسان باشد.- استثنا: اگر پچ به عنوان بخشی از یک بهروزرسانی LTS در شاخه توسعه ادغام شده باشد، باید یک انتخاب نهایی از نسخه LTS باشد و به عنوان یک پچ
UPSTREAMقالببندی شود. به بخش «چگونه پچها را به هستههای مشترک اندروید ارسال کنم» مراجعه کنید.
- استثنا: اگر پچ به عنوان بخشی از یک بهروزرسانی LTS در شاخه توسعه ادغام شده باشد، باید یک انتخاب نهایی از نسخه LTS باشد و به عنوان یک پچ
-
Bug(موجود):Bug: XYZاز کامیت شاخه توسعه اصلی نباید حذف شوند. -
Bug(respin): شما باید یک برچسب جدیدBug: XYZاضافه کنید، که در آن XYZ مربوط به شناسه اشکال مرتبط با درخواست respin فعلی است. - در صورت لزوم، برچسب کامیت
UPSTREAMرا بهروزرسانی کنید: هنگام انتخاب یک CL از شاخه توسعه به شاخه انتشار، و CL با برچسبUPSTREAMمشخص شده است، سناریوهای زیر را در نظر بگیرید:- اگر CL به طور کامل در شاخه release اعمال شود، نیازی به انجام هیچ اقدام اضافی ندارید.
- اگر CL به طور کامل اعمال نمیشود، تداخلها را برطرف کنید، برچسب را به
BACKPORTبهروزرسانی کنید و آنچه را که به عنوان بخشی از حل تداخل انجام شده است، مستند کنید. به الزامات مربوط به backports از mainline Linux مراجعه کنید.
اولویت و ESRT
برای کمک به تیم GKI در اولویتبندی، یک اولویت (فوریت) به درخواست respin اختصاص دهید. این اولویت به تیم GKI کمک میکند تا به موقع و بهتر به شرکا کمک کند.
- برای درخواستهای حیاتی یا حساس به زمان، اولویت را با P0 علامتگذاری کنید.
- برای درخواستهای P0 و P1 ، باید فوریت را نیز توجیه کنید.
جدول زیر، نگاشتی از اولویت اشکال و زمان لازم برای رفع آن (ESRT) را ارائه میدهد:
| اولویت | ESRT |
|---|---|
| پ0 | ۲ روز کاری |
| پی۱ | ۵ روز کاری |
| پی۲ | ۱۰ روز کاری |
| پ3 | ۱۵ روز کاری |
سیاستهای SLA
- برای هر شاخه انتشار، یک درخواست respin جداگانه ارسال کنید.
- اگر تغییراتی در درخواست respin دارید که به عنوان رفعشده علامتگذاری شده است، یک درخواست respin جدید ارسال کنید. درخواست اضافه کردن لیست تغییرات (CL) اضافی را دوباره باز نکنید.
- اگر درخواست respin نیاز به پاسخ شما داشته باشد و شما ظرف سه روز کاری پاسخ ندهید، اولویت یک سطح کاهش مییابد، برای مثال، P0 به P1 تنزل مییابد.
- اگر به مدت دو هفته پاسخی ندهید، اشکال به صورت «رفع نخواهد شد (منسوخ شده)» علامتگذاری میشود.
ارسال درخواست ریسپین
نمودار زیر فرآیند respin را نشان میدهد. این فرآیند زمانی آغاز میشود که شریک OEM (شما) درخواست respin را ارسال میکند.
شکل ۱. فرآیند ریسیدن اضطراری.
برای ارسال درخواست respin:
فرم درخواست تغییر رمز عبور GKI را پر کنید و فوراً با نماینده گوگل خود تماس بگیرید.
- این فرم یک باگ درخواست respin مربوط به GKI ایجاد میکند.
پچهایتان را آماده کنید:
- تأیید کنید که پچ در شاخه توسعه GKI ادغام شده است.
- وصله را به شاخه انتشار GKI مناسب اعمال کنید.
- وصله منتخب را اصلاح کنید تا شامل برچسب
Bug: XYZبا ذکر شناسه درخواست respin باشد.
مثال: برای انتخاب یک CL از
android16-6.12تاandroid16-6.12-2025-12به صورت Cherry-pick:# 1. Checkout the target release branch git checkout android16-6.12-2025-12 # 2. Fetch the upstream development branch (Source of Truth) git fetch aosp android16-6.12 # 3. Cherry-pick the commit (Preserving metadata) git cherry-pick -x <commit_hash> # 4. Update the commit message to include the Respin Bug ID # (Do not remove existing Bug IDs or change the Change-Id)اشکال را ارسال کنید. پس از ارسال درخواست، موارد زیر رخ میدهد:
فرآیند بررسی پس از ارسال اثر:
- تیم Google GKI درخواست را بررسی کرده و آن را تأیید میکند یا در صورت نیاز به اطلاعات بیشتر، آن را به شما ارجاع میدهد.
- پس از توافق بر سر یک اصلاحیه، تیم کد گوگل GKI تغییر را بررسی میکند. تایمر ESRT در طول این بررسی فعال است. با این حال، اگر اصلاحیه رد شود یا نیاز به کار مجدد داشته باشد، تایمر ESRT دوباره تنظیم میشود.
- تیم GKI ادغام، ساخت، آزمایش رگرسیون و تأیید تغییر را انجام میدهد.
انتشار:
- فایل باینری در ci.android.com منتشر میشود.
- بازه زمانی ESRT به پایان میرسد و تیم Google GKI درخواست را به عنوان ثابت علامتگذاری کرده و به نسخه respin ارجاع میدهد.
- نسخه respin همچنین در صفحه نسخههای منتشر شده Generic Kernel Image (GKI) منتشر شده است.