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