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

รายงานปัญหา ดูซอร์สโค้ด รุ่น Nightly · 8.0 7.4 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

ผู้ติดต่อ: gregestren

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

แผนภูมิก่อนหน้านี้

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

เป้าหมาย

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

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

นอกจากนี้ เรายังรองรับ 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)

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