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

ตรวจสอบล่าสุดเมื่อ 25-01-2021 (ประวัติการอัปเดต)

ผู้ติดต่อ: gregestren

สนทนาเรื่อง: แผนการใช้งานด้านความสามารถในการกำหนดค่า: การสนทนา

แผนการใช้งานก่อนหน้า

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

เป้าหมาย

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

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

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

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

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

แพลตฟอร์ม

ไตรมาส 3 ปี 2021กฎ Android ใช้ API ของ แพลตฟอร์ม ใหม่ กำลังดำเนินการ (#11749)

  • นี่คือสิ่งที่เราให้ความสำคัญเป็นอันดับแรกในช่วงต้นปี 2021

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

หยุดชั่วคราวกฎ C++ ใช้ API ของแพลตฟอร์มใหม่ กำลังดำเนินการ (#6516)

  • ฟีเจอร์นี้ถูกบล็อกในแพลตฟอร์ม Android เราสามารถเปิดฟีเจอร์นี้ได้ด้วยการเปลี่ยนแฟล็กง่ายๆ

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

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

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

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

ประสิทธิภาพ

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

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