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

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

ตรวจสอบล่าสุด: 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++ ใช้ platformsfall API ใหม่ อยู่ระหว่างดำเนินการ (#6516)

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

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

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

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

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

ประสิทธิภาพ

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

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