แผนกลยุทธ์ของ Bazel Build API ปี 2021

รายงานปัญหา ดูซอร์สโค้ด รุ่น Nightly · 8.0 7.4 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ยืนยันครั้งล่าสุด: 09-04-2021 (ประวัติการอัปเดต)

ผู้ติดต่อ: comius

พูดคุย: แผนกลยุทธ์ของ Build API: การพูดคุย

ขอบเขต

ทีม Build API จะดูแลการติดตั้งใช้งานกฎเนทีฟและ API เนทีฟที่แสดงต่อ Starlark

เป้าหมาย

ใช้กฎทั้งหมดใน Starlark และส่งต่อให้ทีมที่เชี่ยวชาญภาษานั้นๆ นำตรรกะเฉพาะภาษาออกจากส่วนกลางของ Bazel

กฎ Java

ก่อนอื่น ระบบจะเขียนกฎ Java ใหม่เป็น Starlark และทดสอบภายในกับฐานโค้ดขนาดใหญ่ หลังจากนั้นจะมีการเผยแพร่ไปยัง Bazel

ไตรมาส 1 ปี 2021

  • ปรับปรุง Java sandwich ซึ่งทําให้เขียนกฎ Java ที่มีอยู่ใหม่ได้ เสร็จ

ไตรมาส 2 ปี 2021

  • ปรับปรุงการรองรับ Starlark สําหรับไลบรารีแบบเนทีฟใน Java อยู่ระหว่างดำเนินการ
  • ปรับปรุงjava_commonการรองรับปลั๊กอินและ IDE - พร็อพเพอร์ตี้การปรับโครงสร้างทั่วไปของ Java อยู่ระหว่างดำเนินการ
  • กฎ java_library เป็นรูปแบบ Starlark อยู่ระหว่างดำเนินการ

กลางปี 2021

  • กฎ java_binary และ java_test อยู่ในรูปแบบ Starlark
  • กฎ java_import และ java_plugin เปลี่ยนเป็นรูปแบบ Starlark แล้ว

ฤดูใบไม้ร่วงปี 2021

  • การเปลี่ยน java_*_proto_library เป็น Starlark
  • กฎ Java ที่เหลืออยู่จะเปลี่ยนรูปแบบเป็น Starlark ดังนี้ java_package_configuration, java_runtime, java_toolchain

2022

  • การเปลี่ยนโมดูล java_common เป็น Starlark

กฎ C++

ก่อนที่จะเขียนกฎ C++ ใหม่ใน Starlark ได้ ต้องมีการล้างข้อมูลภายในบางอย่าง หลังจากนั้น ระบบจะเขียนกฎ C++ ใหม่เป็น Starlark ทีละส่วนโดยใช้ฟังก์ชันการทำงานในตัว API สําหรับกฎ C++ จะไม่สามารถเข้าถึงได้จากไฟล์ .bzl จนกว่าจะมีการเขียน cc_module ใหม่ใน Starlark ด้วย

ไตรมาส 1 ปี 2021

  • การรองรับโมดูล Clang ยกเลิก*
  • และการสนับสนุนรวมการสแกน การปรับปรุงประสิทธิภาพที่คาดไว้จากทั้ง DROPPED*
  • *เราต้องการข้อมูลเพิ่มเติมเพื่อประเมินว่าจำเป็นต้องใช้ข้อบังคับเพื่อปรับปรุงประสิทธิภาพหรือไม่

ไตรมาส 2 ปี 2021

  • กฎ Go ภายในเปลี่ยนเป็น Starlark อยู่ระหว่างดำเนินการ
  • กฎ Objective-C objc_library และ objc_import รวมถึงโค้ดเนทีฟที่เกี่ยวข้องได้รับการแปลงเป็น Starlark แล้ว อยู่ระหว่างดำเนินการ

ฤดูใบไม้ร่วงปี 2021 และต้นปี 2022

  • cc_binary, cc_test และ cc_library ได้รับการแปลงเป็น Starlark

2022

  • การเปลี่ยนกฎ C++ อื่นๆ เป็น Starlark (fdo_profile, cc_import, cc_toolchain, cc_toolchain_suite, fdo_prefetch_hints, cc_toolchain_alias, cc_libc_top_alias, cc_host_toolchain_alias +2)
  • การเปลี่ยนโมดูล cc_common เป็น Starlark

อื่นๆ

กลางปี 2021