ตรวจสอบล่าสุด: 21-04-2020 (ประวัติ การอัปเดต)
ผู้ติดต่อ: laurentlb
เป้าหมาย
เป้าหมายของเราคือการทำให้ Bazel ขยายได้มากขึ้น ผู้ใช้ควรจะสามารถใช้กฎของตนเองได้อย่างง่ายดาย รวมถึงรองรับภาษาและเครื่องมือใหม่ๆ เราต้องการปรับปรุงประสบการณ์การเขียนและดูแลรักษากฎเหล่านั้น
เรามุ่งเน้นที่ 2 ด้านต่อไปนี้
- ทำให้ภาษาและ API เรียบง่ายแต่ทรงประสิทธิภาพ
- จัดหาเครื่องมือที่ดีขึ้นสำหรับการอ่าน การเขียน การอัปเดต การแก้ไขข้อบกพร่อง และการทดสอบโค้ด
ไตรมาส 2 ปี 2020
ความสมบูรณ์ของการบิลด์และแนวทางปฏิบัติแนะนำ
- P0 ไม่แนะนำให้ใช้มาโครที่ไม่มีชื่อ และตรวจสอบว่าชื่อเป็นตัวอักษรสตริงที่ไม่ซ้ำกัน งานนี้มุ่งเน้นที่ฐานของโค้ด Google แต่ก็อาจส่งผลต่อเครื่องมือที่เผยแพร่ต่อสาธารณะ
- P0 ทำให้คำสั่ง Buildozer เชื่อถือได้มากขึ้นในส่วนของการเลือกและการใช้ตัวแปร
- P1 ทำให้ Buildifier นำรายการที่ซ้ำกันในรายการที่เราไม่ได้จัดเรียงออกเนื่องจากมีคำอธิบาย
- P1 อัปเดต Buildifier Linter เพื่อแนะนำการแทรกนิพจน์ที่ไม่สำคัญ
- P2 ศึกษา Use Case สำหรับ native.existing_rules และเสนอทางเลือกอื่น
- P2 ศึกษา Use Case สำหรับไฟล์ 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 ลดเวลาในการบิลด์และทดสอบการแก้ไขเล็กน้อยในแพ็กเกจ Java ของ Bazel ลง 50%
ชุมชน
rules_pythonมีการใช้งานและชุมชนดูแลรักษาอย่างดี- การสนับสนุน rules_jvm_external อย่างต่อเนื่อง (ไม่มีคำขอแบบดึงที่ค้างอยู่, การจัดลำดับความสำคัญของปัญหา, การเผยแพร่)
- ดูแลรักษาโครงสร้างพื้นฐานของเอกสารประกอบ Bazel: รวมศูนย์และกำหนดรูปแบบ CSS ที่เป็นมาตรฐานใน bazel-website, bazel-blog, docs
- เอกสารประกอบ Bazel: เพิ่มการทดสอบ CI สำหรับการบิลด์เว็บไซต์เอกสารประกอบแบบ end-to-end เพื่อป้องกันการเกิดปัญหาซ้ำ
ไตรมาส 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