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