Respin คือกระบวนการผสานใหม่ สร้างใหม่ ทดสอบใหม่ และ รับรองไบนารีอีกครั้งหลังจากเผยแพร่เคอร์เนล GKI ต่อสาธารณะ
โปรดดูคำแนะนำต่อไปนี้ก่อนขอ Respin
การมีสิทธิ์และวงจรชีวิต
- ช่วงเวลา: คุณขอรีสปินได้เฉพาะใน Branch ที่เผยแพร่หลังจากเปิดตัวบิลด์รายไตรมาสต่อสาธารณะครั้งแรก ขอรีสปินสำหรับ Vendor-Hook หรือฟีเจอร์อื่นๆ ได้เฉพาะ Branch ที่เผยแพร่ที่กำหนดเป็นเวลาไม่เกิน 6 เดือนหลังจากเผยแพร่ต่อสาธารณะครั้งแรก
- ความปลอดภัยและ LTS: หลังจาก 6 เดือน สาขามีสิทธิ์สำหรับ Respin เฉพาะ แพตช์ด้านความปลอดภัยที่อ้างอิงในประกาศข่าวสารด้านความปลอดภัยของ Android (ASB) หรือการแก้ไขข้อบกพร่องที่สำคัญ
- การเลิกใช้งาน: เมื่อข้อกำหนด LTS ที่กำหนดโดยประกาศข่าวสารด้านความปลอดภัยของ Android (ASB) ทำให้สาขาไม่เป็นไปตามข้อกำหนด สาขาจะถูกเลิกใช้งาน ระบบจะไม่ยอมรับคำขอ Respin สำหรับสาขาที่เลิกใช้งานแล้ว
- วันที่เลิกใช้งานสำหรับสาขาที่เผยแพร่ GKI ที่กำหนดจะรวมอยู่ในหมายเหตุบิลด์ GKI ที่เผยแพร่รายไตรมาสในส่วน "การเผยแพร่" เช่น การเผยแพร่ในเดือนกันยายน 2025 จะได้รับการสนับสนุนสำหรับ Respin จนถึงเดือนมีนาคม 2027 วันที่นี้แสดงถึงอายุการใช้งานของเคอร์เนล LTS 2.0 เวอร์ชัน 18 เดือนสำหรับการเผยแพร่ที่เริ่มในเดือนกันยายน 2025 (การเผยแพร่ก่อนเดือนกันยายน 2025 มีอายุการใช้งาน 12 เดือน)
- ขอบเขต: ขอ Respin เฉพาะการแก้ไขข้อบกพร่องเร่งด่วน การอัปเดตรายการสัญลักษณ์ หรือการใช้แพตช์เพื่อแก้ไขฟีเจอร์ที่มีอยู่
มาตรฐานการส่งแพตช์
แพตช์ทั้งหมดที่ส่งไปยังสาขาที่เผยแพร่ต้องเป็นไปตามกฎทางเทคนิคต่อไปนี้เพื่อให้เป็นไปตามเวลาแก้ไขมาตรฐานที่คาดไว้ (ESRT) สำหรับการประมวลผลคำขอ Respin
แหล่งข้อมูลที่เชื่อถือได้และการคัดมา
- สาขาการพัฒนาเป็นอันดับแรก: แพตช์ทั้งหมดที่จะเข้าสู่สาขาที่เผยแพร่รายไตรมาสต้องผสานรวมเข้ากับสาขาการพัฒนา GKI หลักแล้ว เช่น
หากต้องใช้แพตช์สำหรับ Respin ของ
android15-6.6-2025-08แพตช์ดังกล่าวต้องผสานรวมเข้ากับandroid15-6.6แล้ว - การคัดมาที่สะอาด: คุณต้องคัดแพตช์มาจากสาขาการพัฒนาโดยตรง อย่าคัดมาจากสาขาที่เผยแพร่อื่นๆ (เช่น อย่าคัดจาก
2025-08ไปยัง2025-09) เนื่องจากอาจทำให้ข้อมูลผู้เขียนหรือข้อมูลการคอมมิตไม่สอดคล้องกับเวอร์ชันในสาขาการพัฒนา ระบบจะไม่ยอมรับแพตช์ที่มีข้อมูลไม่สอดคล้องกัน - เก็บรักษาข้อมูลเมตา: เก็บรักษาข้อมูลเมตาการคอมมิตเดิม (เช่น ผู้เขียน การประทับเวลาเดิม) ใช้
git cherry-pick -xเพื่อเก็บรักษาข้อมูลเมตา
เชนการคอมมิต
- เชนแบบลำดับ: หากคำขอ Respin เกี่ยวข้องกับแพตช์หลายรายการ ให้อัปโหลดแพตช์เป็นเชนการคอมมิตเดียวแบบลำดับ
- การวาง ABI และ KMI: หาก Respin หลายแพตช์มีการอัปเดตอินเทอร์เฟซโมดูลเคอร์เนล (KMI) และอินเทอร์เฟซไบนารีของแอปพลิเคชัน (ABI) (เช่น การเปลี่ยนแปลงรายการสัญลักษณ์หรือการอัปเดตไฟล์ XML/STG) ให้วางการคอมมิตเหล่านี้ไว้ที่ส่วนท้ายของเชนการคอมมิต
- การรีเบส: หากคุณแก้ไขการคอมมิตระดับบนในเชน คุณต้องรีเบสแพตช์ระดับล่างทั้งหมดไว้เหนือการแก้ไขล่าสุดของแพตช์ระดับบนเพื่อหลีกเลี่ยงการสร้างล้มเหลว
- การแก้ไขความขัดแย้ง: ตรวจสอบว่าไม่มีเครื่องหมายความขัดแย้งอยู่ในแพตช์
- การยืนยันบิลด์: เชนการคอมมิตทั้งหมดต้องสร้างได้สำเร็จ
แท็กที่จำเป็น
ความคืบหน้าของคำขอ Respin จะถูกบล็อกหากไม่มีแท็กต่อไปนี้ใน ข้อความการคอมมิต
Change-Id: ต้องเหมือนกับChange-Idของการเปลี่ยนแปลงสาขาการพัฒนาBug(ที่มีอยู่): ห้ามนำแท็กBug: XYZที่มีอยู่จากการคอมมิต Branch การพัฒนาเดิมออกBug(Respin): คุณต้องเพิ่มแท็กBug: XYZใหม่ โดยที่ XYZ สอดคล้อง กับรหัสข้อบกพร่องที่เชื่อมโยงกับคำขอ Respin ปัจจุบัน- อัปเดตแท็กการคอมมิต
UPSTREAMหากจำเป็น: เมื่อเลือกใช้ CL จาก Branch การพัฒนาไปยัง Branch ที่เผยแพร่ และ CL มีแท็กเป็นUPSTREAMให้พิจารณาสถานการณ์ต่อไปนี้- หาก CL ใช้กับสาขาที่เผยแพร่ได้อย่างราบรื่น คุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม
- หาก CL ใช้ไม่ได้อย่างราบรื่น ให้แก้ไขความขัดแย้ง
อัปเดตแท็กเป็น
BACKPORTและบันทึกสิ่งที่ทำเป็นส่วนหนึ่งของการ แก้ไขความขัดแย้ง ดู ข้อกำหนดสำหรับการย้ายข้อมูลจาก Linux หลัก
รายการสำคัญและ ESRT
กำหนดลำดับความสำคัญ (ความเร่งด่วน) ให้กับคำขอ Respin เพื่อช่วย ให้ทีม GKI จัดลำดับความสำคัญได้ ลำดับความสำคัญนี้จะช่วยให้ทีม GKI ช่วยพาร์ทเนอร์ได้ดียิ่งขึ้นและทันท่วงที
- สำหรับคำขอที่สำคัญหรือเร่งด่วน ให้ทำเครื่องหมายลำดับความสำคัญเป็น P0
- สำหรับคำขอ P0 และ P1 คุณต้องระบุเหตุผลของความเร่งด่วนด้วย
ตารางต่อไปนี้แสดงการแมปลำดับความสำคัญของข้อบกพร่องและเวลาในการแก้ไข (ESRT)
| รายการสำคัญ | ESRT |
|---|---|
| P0 | 2 วันทำการ |
| P1 | 5 วันทำการ |
| P2 | 10 วันทำการ |
| P3 | 15 วันทำการ |
นโยบาย SLA
- ส่งคำขอ Respin แยกกันสำหรับสาขาที่เผยแพร่แต่ละสาขา
- หากมีการเปลี่ยนแปลงคำขอ Respin ที่ทำเครื่องหมายว่าแก้ไขแล้ว ให้ส่งคำขอ Respin ใหม่ อย่าเปิดคำขออีกครั้งเพื่อเพิ่มรายการเปลี่ยนแปลง (CL)
- หากคำขอ Respin ต้องมีการตอบกลับจากคุณ และคุณไม่ตอบกลับภายใน 3 วันทำการ ระบบจะลดระดับความสำคัญลง 1 ระดับ เช่น P0 จะลดระดับเป็น P1
- หากคุณไม่ตอบกลับเป็นเวลา 2 สัปดาห์ ระบบจะทำเครื่องหมายข้อบกพร่องเป็นจะไม่แก้ไข (ล้าสมัย)
ส่งคำขอ Respin
แผนภาพต่อไปนี้แสดงกระบวนการ Respin กระบวนการจะเริ่มต้นเมื่อพาร์ทเนอร์ OEM (คุณ) ส่งคำขอ Respin
รูปที่ 1.กระบวนการ Respin ฉุกเฉิน
วิธีส่งคำขอ Respin
กรอกแบบฟอร์มคำขอ Respin ของ GKI และติดต่อ ผู้ติดต่อของ Google โดยทันที
- แบบฟอร์มนี้จะสร้างข้อบกพร่องของคำขอ Respin ของ GKI
เตรียมแพตช์
- ตรวจสอบว่าผสานรวมแพตช์เข้ากับสาขาการพัฒนา GKI แล้ว
- ใช้แพตช์กับสาขาที่เผยแพร่ GKI ที่เหมาะสม
- แก้ไขแพตช์ที่คัดมาเพื่อรวมแท็ก
Bug: XYZที่อ้างอิงรหัสคำขอ Respin
ตัวอย่าง: วิธีเลือกใช้ CL จาก
android16-6.12ไปยังandroid16-6.12-2025-12# 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)ส่งข้อบกพร่อง สิ่งต่อไปนี้จะเกิดขึ้นหลังจากที่คุณส่งคำขอ
กระบวนการตรวจสอบหลังจากการส่ง
- ทีม GKI ของ Google จะตรวจสอบคำขอและอนุมัติคำขอ หรือกำหนดคำขอให้คุณอีกครั้งหากต้องการข้อมูลเพิ่มเติม
- หลังจากตกลงการแก้ไขแล้ว ทีม GKI ของ Google จะตรวจสอบโค้ดการเปลี่ยนแปลง ตัวจับเวลา ESRT จะทำงานระหว่างการตรวจสอบนี้ อย่างไรก็ตาม หากระบบปฏิเสธแพตช์หรือต้องมีการปรับปรุงใหม่ ตัวจับเวลา ESRT จะรีเซ็ต
- ทีม GKI จะผสานรวม สร้าง ทดสอบการถดถอย และรับรองการเปลี่ยนแปลง
การเผยแพร่
- ระบบจะเผยแพร่ไบนารีไปยัง ci.android.com
- กรอบเวลา ESRT จะสิ้นสุดลง และทีม GKI ของ Google จะทำเครื่องหมายคำขอว่าแก้ไขแล้วและอ้างอิงบิลด์ Respin
- ระบบจะโพสต์บิลด์ Respin ในหน้าบิลด์ที่เผยแพร่ของ Generic Kernel Image (GKI) ด้วย