ยืนยันครั้งล่าสุด: 21-04-2020 (ประวัติการอัปเดต)
ผู้ติดต่อ: laurentlb
เป้าหมาย
เป้าหมายของเราคือการทำให้ Bazel ขยายการใช้งานได้มากขึ้น ผู้ใช้ควรปฏิบัติตามกฎของตนเองได้อย่างง่ายดาย รวมถึงรองรับภาษาและเครื่องมือใหม่ๆ เราต้องการปรับปรุงประสบการณ์ในการเขียน และรักษากฎเหล่านั้น
เรามุ่งเน้น 2 ด้าน ได้แก่
- ทำให้ภาษาและ API เรียบง่ายแต่มีประสิทธิภาพ
- ให้เครื่องมือที่ดีขึ้นสำหรับการอ่าน การเขียน อัปเดต แก้ไขข้อบกพร่อง และทดสอบโค้ด
ไตรมาส 2 ปี 2020
สร้างสุขภาพและแนวทางปฏิบัติที่ดีที่สุด
- P0. ไม่สนับสนุนมาโครที่ไม่มีชื่อ และตรวจสอบว่าชื่อเป็นสตริงที่ไม่ซ้ำกัน งานนี้จะมุ่งเน้นที่ Codebase ของ Google แต่อาจส่งผลกระทบต่อเครื่องมือสาธารณะ
- P0. ทำให้คำสั่ง Buildozer เชื่อถือได้เกี่ยวกับการเลือกและตัวแปร
- P1. ทำให้ Buildifier นำรายการที่ซ้ำในรายการที่เราไม่ได้จัดเรียงออกเพราะความคิดเห็น
- P1. อัปเดตโปรแกรมวิเคราะห์โค้ดของ Buildifier เพื่อแนะนำนิพจน์ย่อยที่แทรก
- P2. ศึกษากรณีการใช้งานสำหรับ Native.existing_rules และเสนอทางเลือก
- P2. ศึกษากรณีการใช้งานสำหรับไฟล์ Prelude และเสนอทางเลือก
ประสิทธิภาพ
- P1. เพิ่มประสิทธิภาพอินเทอร์พรีเตอร์ Starlark โดยใช้สภาพแวดล้อมแบบแบนและการคอมไพล์ไบต์โค้ด
การลดหนี้ทางเทคนิค:
- P0. เพิ่มความสามารถในการย้ายสัญลักษณ์ของระบบไปยัง Starlark ภายใต้ @bazel_tools
- P1. ลบแฟล็กที่ล้าสมัย (บางรายการยังใช้ที่ Google อยู่ เราจึงต้องล้างฐานของโค้ดก่อน) ได้แก่
incompatible_always_check_depset_elements
,incompatible_disable_deprecated_attr_params
,incompatible_no_support_tools_in_action_inputs
,incompatible_new_actions_api
- P1. ตรวจสอบว่าธงต่อไปนี้สามารถพลิกใน Bazel 4.0 ได้:
incompatible_disable_depset_items
,incompatible_no_implicit_file_export
,incompatible_run_shell_command_string
,incompatible_restrict_string_escapes
- P1. ทำงาน lib.syntax (การล้าง API และแยกจาก Bazel) ให้เสร็จสิ้น
- P2. ลดเวลาในการตอบสนองของการสร้าง+การทดสอบได้ถึง 50% สำหรับการแก้ไขแพ็กเกจ Java ของ Bazel
ชุมชน:
rules_python
ใช้งานอยู่และได้รับการดูแลรักษาเป็นอย่างดีโดยชุมชน- การสนับสนุนกฎ_jvm_external อย่างต่อเนื่อง (ไม่มีการดึงคำขอค้างอยู่ แก้ปัญหา เผยแพร่)
- ดูแลรักษาโครงสร้างพื้นฐานเอกสารของ Bazel: รวมศูนย์และกำหนดรูปแบบ CSS ไว้ในเว็บไซต์แบบ bazel, bazel-blog, เอกสาร
- เอกสาร Bazel: เพิ่มการทดสอบ CI สำหรับการสร้างเว็บไซต์เอกสาร e2e เพื่อป้องกันการถดถอย
ไตรมาส 1 ปี 2020
สร้างสุขภาพและแนวทางปฏิบัติที่ดีที่สุด
- อนุญาตให้เป้าหมายติดตามสแต็กการเรียกใช้มาโครสำหรับการส่งออกผ่าน
bazel query
- นำ
--incompatible_no_implicit_file_export
ไปใช้ - นำ API Depset ที่เลิกใช้แล้วออก (#5817, #10313, #9017)
- เพิ่มเครื่องมือวิเคราะห์ข้ามไฟล์ใน Buildifier ใช้การตรวจสอบฟังก์ชันการทำงานที่เลิกใช้งานแล้ว
ประสิทธิภาพ
- ทำให้การทดสอบที่ใช้ Java ของ Bazel เองเร็วขึ้นถึง 2 เท่า
- ติดตั้งเครื่องมือสร้างโปรไฟล์ CPU ของ Starlark
การลดหนี้ทางเทคนิค:
- นําการแจ้งว่าไม่เหมาะสม 8 รายการที่ใช้ร่วมกันไม่ได้ออก (หลังจากพลิกแล้ว)
- ดำเนินการล้าง lib.syntax (แยกทรัพยากร Dependency)
- การเพิ่มประสิทธิภาพ Starlark: สภาพแวดล้อมแบบแบน การคอมไพล์ไบต์โค้ด
- ลบการทำให้เป็นอนุกรมทั้งหมดออกจากช่วงการวิเคราะห์ หากเป็นไปได้
- วางแผนเพื่อลดความซับซ้อน/เพิ่มประสิทธิภาพ lib.packages
ชุมชน:
- เผยแพร่อภิธานศัพท์ที่มีคำจำกัดความสำหรับคำศัพท์เฉพาะของ Bazel ทั้งหมด