ตรวจสอบล่าสุด: 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 ทั้งหมด