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

กลางปี 2021

  • กฎ java_binary และ java_test จะติดดาว
  • กฎ java_import และ java_plugin มีการ Starlarkified

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

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

2022

  • การแสดงดาวของโมดูล java_common

กฎ C++

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

ไตรมาส 1 ปี 2021

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

ไตรมาส 2 ปี 2021

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

ฤดูใบไม้ร่วง 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