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

ตรวจสอบล่าสุด: 09-04-2021 (ประวัติการอัปเดต)

ผู้ติดต่อ: comius

พูดคุย: สร้างแผนกลยุทธ์ API: การสนทนา

ขอบเขต

ทีม Build API กำลังดูแลการติดตั้งใช้งานกฎดั้งเดิมและ API ดั้งเดิม ที่เปิดเผยต่อ Starlark

เป้าหมาย

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

กฎของ Java

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

ไตรมาส 1 ปี 2021

  • ปรับปรุงแซนด์วิช Java เพื่อให้เขียนกฎ 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

  • Starlarkification ของโมดูล java_common

กฎ 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)
  • Starlarkification ของ cc_common module

อื่นๆ

กลางปี 2021

  • Aspect สามารถเผยแพร่ Aspect อื่นๆ ได้ - proposal Aspect ที่เผยแพร่ Aspect อื่นๆ อยู่ระหว่างดำเนินการ
  • ปรับปรุงเฟรมเวิร์กการทดสอบ Starlark