แผนกลยุทธ์ด้านการกำหนดค่า Bazel ปี 2021

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly · 7.4 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ยืนยันล่าสุด: 25-01-2021 (ประวัติการอัปเดต)

ผู้ติดต่อ: gregestren

พูดคุย: โรดแมปการกำหนดค่า: การสนทนา

แผนกลยุทธ์ก่อนหน้า

  • 2020 (มีการตรวจสอบช่วงสิ้นปี)
  • 2019 (กับรีวิว EOY)
  • 2018

เป้าหมาย

$ bazel build //:all ใช้งานได้จริงกับทุกโปรเจ็กต์และแพลตฟอร์มทุกประเภท

  • บิลด์ไม่จําเป็นต้องใช้ Flag บรรทัดคําสั่ง
  • แต่ละเป้าหมายจะใช้การตั้งค่าที่ถูกต้องโดยอัตโนมัติ (เช่น android_binary ใช้ NDK ที่ถูกต้อง)
  • สร้างแอปสำหรับหลายแพลตฟอร์มได้ง่ายๆ
  • สร้างการปรับขนาดได้ดี โดยเฉพาะขนาดกราฟ w.r.t และการแคชการดำเนินการ

นอกจากนี้ เรายังรองรับ cquery, Starlark configuration และ select() ด้วย

แผนการใช้งาน

วันที่เป็นวันที่โดยประมาณตามความเข้าใจของเราเกี่ยวกับความซับซ้อนของปัญหาและความพร้อมของนักพัฒนาแอป ในปี 2021 เราตั้งใจที่จะมุ่งเน้นที่โปรเจ็กต์จำนวนน้อยลงพร้อมกัน เราจะตั้งเวลาโดยประมาณสำหรับงานที่จัดลำดับความสำคัญอยู่เท่านั้นเพื่อไม่ให้เกิดความคาดหวังที่ไม่ถูกต้อง

แพลตฟอร์ม

ไตรมาสที่ 3 ปี 2021กฎ Android ใช้ platforms API ใหม่ อยู่ระหว่างดำเนินการ (#11749)

  • นี่เป็นสิ่งสำคัญที่สุดของเราในช่วงต้นปี 2021

ไตรมาส 3 ปี 2021รุ่นที่รองรับแพลตฟอร์มการดำเนินการหลายแพลตฟอร์ม อยู่ระหว่างดำเนินการ (#11748)

หยุดชั่วคราวกฎ C++ ใช้ platformsfall API ใหม่ อยู่ระหว่างดำเนินการ (#6516)

  • การดำเนินการนี้ถูกบล็อกในแพลตฟอร์ม Android เราเปิดใช้การตั้งค่านี้ได้ด้วยการพลิก Flag

หยุดชั่วคราวเป้าหมายหลายแพลตฟอร์ม ยังไม่ได้เริ่ม

  • อนุญาตให้เป้าหมายประกาศว่าควรสร้างสำหรับหลายแพลตฟอร์ม
  • แสดงรายการที่นี่เนื่องจากคำขอของผู้ใช้

หยุดชั่วคราวเลิกใช้งานและนำ --cpu และ Flag ที่เกี่ยวข้องออก ยังไม่ได้เริ่ม

  • นี่เป็นเป้าหมายที่ต้องการบรรลุซึ่งเกิดขึ้นจากการย้ายข้อมูลกฎทั้งหมดไปยังแพลตฟอร์ม

ประสิทธิภาพ

2021โหมด Bazel เวอร์ชันทดลองจะแคชการคอมไพล์ Java แบบข้ามแพลตฟอร์ม อยู่ระหว่างดำเนินการ (#6526)

  • ปรับปรุงความเร็วของบิลด์บนหลายแพลตฟอร์ม
  • มีการกําหนดทรัพยากรไม่เพียงพอ ความคืบหน้าจึงช้า