ยืนยันครั้งล่าสุด: 21-04-2020 (ประวัติการอัปเดต)
ผู้ติดต่อ: laurentlb
เป้าหมาย
เป้าหมายของเราคือการทำให้ Bazel มีความยืดหยุ่นมากขึ้น ผู้ใช้ควรสามารถ นำกฎเกณฑ์ของตนเองมาใช้ รวมถึงสนับสนุนภาษาและเครื่องมือใหม่ๆ เราต้องการให้ เพื่อปรับปรุงประสบการณ์ในการเขียนและการรักษากฎเหล่านั้น
เรามุ่งเน้นไปที่ 2 ด้านต่อไปนี้
- ทำให้ภาษาและ API เรียบง่ายแต่มีประสิทธิภาพ
- มอบเครื่องมือที่ดีกว่าสำหรับการอ่าน เขียน อัปเดต แก้ไขข้อบกพร่อง และทดสอบโค้ด
ไตรมาส 2 ปี 2020
สร้างเสริมสุขภาพและแนวทางปฏิบัติแนะนำ:
- หน้า 0 ไม่สนับสนุนให้มาโครไม่มีชื่อ และตรวจสอบว่าชื่อไม่ซ้ำกัน สัญพจน์ของสตริง งานนี้มุ่งเน้นที่โค้ดเบสของ Google แต่ก็อาจส่งผลกระทบ เครื่องมือที่พร้อมใช้งานแบบสาธารณะ
- หน้า 0 ทำให้คําสั่ง Buildozer เชื่อถือได้เกี่ยวกับการเลือกและตัวแปร
- P1. ทำให้ Buildifier ลบรายการที่ซ้ำในรายการที่เราไม่ได้จัดเรียง ความคิดเห็น
- P1. อัปเดตโปรแกรมวิเคราะห์โค้ดของ Buildifier เพื่อแนะนำการใส่นิพจน์เล็กน้อย
- P2. ศึกษากรณีการใช้งานสำหรับ Native.existing_rules และเสนอทางเลือกอื่น
- P2. ศึกษากรณีการใช้งานสำหรับไฟล์ Prelude และเสนอทางเลือกอื่น
ประสิทธิภาพ
- P1. เพิ่มประสิทธิภาพล่าม Starlark โดยใช้สภาพแวดล้อมแบบแฟลตและไบต์โค้ด ในการรวบรวม
การลดหนี้ทางเทคนิค:
- หน้า 0 เพิ่มความสามารถในการย้ายสัญลักษณ์ในเครื่องไปยัง 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. ตรวจสอบว่าสามารถพลิก Flag ต่อไปนี้ได้ใน 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
ชุมชน:
rules_python
มีการใช้งานและได้รับการดูแลอย่างดีโดยชุมชน- การสนับสนุนอย่างต่อเนื่องสำหรับ rules_jvm_external (ไม่มีคำขอพุลที่ค้างอยู่, ปัญหา คัดแยก เผยแพร่)
- รักษาโครงสร้างพื้นฐานของเอกสารประกอบ Bazel: รวมศูนย์และทำให้ CSS เป็น Canonical สไตล์ทั่วทั้งเว็บไซต์ bazel, bazel-blog, docs
- เอกสาร Bazel: เพิ่มการทดสอบ CI สำหรับบิลด์ของเว็บไซต์ e2e Docs เพื่อป้องกันการเกิดปัญหาซ้ำ
ไตรมาส 1 ปี 2020
สร้างเสริมสุขภาพและแนวทางปฏิบัติแนะนำ:
- อนุญาตให้เป้าหมายติดตามสแต็กการเรียกใช้มาโครสำหรับการส่งออกผ่าน
bazel query
- นำ
--incompatible_no_implicit_file_export
ไปใช้ - นำ Depset API ที่เลิกใช้งานแล้วออก (#5817, #10313, #9017)
- เพิ่มเครื่องมือวิเคราะห์ข้ามไฟล์ใน Buildifier ใช้การตรวจสอบการเลิกใช้งาน
ประสิทธิภาพ
- ทำให้การทดสอบโดยใช้ Java ของ Bazel นั้นรวดเร็วขึ้น 2 เท่า
- ใช้งานเครื่องมือสร้างโปรไฟล์ CPU ของ Starlark
การลดหนี้ทางเทคนิค:
- นำแฟล็กที่ใช้ร่วมกันไม่ได้ 8 รายการออก (หลังจากพลิกแล้ว)
- ล้างข้อมูล lib.syntax ให้เสร็จ (หยุดทรัพยากร Dependency)
- การเพิ่มประสิทธิภาพ Starlark: สภาพแวดล้อมที่ราบเรียบ, การคอมไพล์ไบต์โค้ด
- ลบการเรียงอันดับทั้งหมดจากช่วงการวิเคราะห์หากเป็นไปได้
- วางแผนเพื่อทำให้ lib.packages ง่ายขึ้น/เพิ่มประสิทธิภาพ
ชุมชน:
- เผยแพร่อภิธานศัพท์ที่มีนิยามของคำศัพท์เฉพาะ Bazel ทั้งหมด