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

รายงานปัญหา ดูแหล่งที่มา /3} /4} {3/4} {3/4} {3/4} {3/4} /4.

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

ผู้ติดต่อ: comius

อภิปราย: สร้างแผนกลยุทธ์ 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 คือ Starlarkified อยู่ระหว่างดำเนินการ

กลางปี 2021

  • กฎ java_binary และ java_test จะเป็นแบบ Starlarkified
  • กฎ java_import และ java_plugin จะเป็น Starlarkified

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

  • การติดดาวของ java_*_proto_library
  • กฎ Java ที่เหลืออยู่คือ Starlarkified: java_package_configuration, java_runtime, java_toolchain

2022

  • การ Starlarkification ของ java_commonโมดูล

กฎ C++

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

ไตรมาส 1 ปี 2021

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

ไตรมาส 2 ปี 2021

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

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

  • cc_binary, cc_test และ cc_library คือ Starlarkified

2022

  • การติดดาวของกฎ C++ อื่นๆ (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

อื่นๆ

กลางปี 2021

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