نقشه راه استارلارک

آخرین تأیید: 2020-04-21 ( سابقه به روز رسانی )

نقطه تماس: laurentlb

هدف

هدف ما توسعه بیشتر بازل است. کاربران باید بتوانند به راحتی قوانین خود را پیاده سازی کنند و از زبان ها و ابزارهای جدید پشتیبانی کنند. ما می خواهیم تجربه نوشتن و حفظ آن قوانین را بهبود بخشیم.

ما روی دو حوزه تمرکز می کنیم:

  • زبان و API را ساده و در عین حال قدرتمند کنید.
  • ابزار بهتری برای خواندن، نوشتن، به روز رسانی، اشکال زدایی و تست کد ارائه دهید.

Q2 2020

ایجاد سلامت و بهترین شیوه ها:

  • P0. ماکروهای بدون نام را منع کنید و مطمئن شوید که نام یک رشته منحصر به فرد است. این کار بر روی پایگاه کد گوگل متمرکز شده است، اما ممکن است بر ابزارهای در دسترس عموم تأثیر بگذارد.
  • P0. دستورات بیلدوزر را با توجه به انتخاب ها و متغیرها قابل اعتماد کنید.
  • P1. کاری کنید که Buildifier موارد تکراری را در لیست هایی که به دلیل نظرات مرتب نمی کنیم حذف کند.
  • P1. Buildifier linter را به‌روزرسانی کنید تا عبارات بی‌اهمیت درون خطی را توصیه کنید.
  • P2. موارد استفاده را برای Native.existing_rule مطالعه کنید و جایگزین پیشنهاد کنید.
  • P2. موارد استفاده را برای فایل پیش درآمد مطالعه کنید و جایگزین پیشنهاد کنید.

کارایی:

  • P1. مترجم Starlark را با استفاده از محیط های مسطح و کامپایل بایت کد بهینه کنید.

کاهش بدهی فنی:

  • P0. قابلیت انتقال نمادهای بومی را به Starlark در زیر bazel_tools اضافه کنید.
  • P1. پرچم‌های منسوخ را حذف کنید (بعضی از آنها هنوز در Google استفاده می‌شوند، بنابراین ابتدا باید پایگاه کد را پاک کنیم): incompatible_always_check_depset_elements ، incompatible_disable_deprecated_attr_params ، incompatible_no_support_tools_in_action_inputs ، incompatible_new_actions_api .
  • P1. مطمئن شوید که پرچم‌های زیر می‌توانند در 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. تا 50 درصد تاخیر ساخت+تست یک ویرایش بی اهمیت بسته های جاوا Bazel را کاهش دهید.

انجمن:

  • rules_python فعال است و به خوبی توسط انجمن نگهداری می شود.
  • پشتیبانی مستمر از rules_jvm_external (بدون درخواست کشش برجسته، تریاژ مشکل، انتشار).
  • حفظ زیرساخت اسناد Bazel: متمرکز و متعارف کردن سبک های CSS در وب سایت bazel، bazel-blog، اسناد
  • اسناد Bazel: برای جلوگیری از رگرسیون، تست های CI را برای ساخت سایت e2e doc اضافه کنید.

Q1 2020

ایجاد سلامت و بهترین شیوه ها:

  • به اهداف اجازه دهید پشته تماس ماکرو خود را برای صادرات از طریق bazel query ردیابی کنند
  • پیاده سازی --incompatible_no_implicit_file_export
  • APIهای منسوخ شده depset (#5817, #10313, #9017) را حذف کنید.
  • یک تجزیه و تحلیل فایل متقاطع در Buildifier اضافه کنید، یک بررسی برای توابع منسوخ شده اجرا کنید.

کارایی:

  • تست های مبتنی بر جاوا خود Bazel را 2 برابر سریعتر کنید.
  • یک نمایه ساز CPU Starlark را پیاده سازی کنید.

کاهش بدهی فنی:

  • 8 پرچم ناسازگار را حذف کنید (پس از چرخاندن آنها).
  • کار پاکسازی lib.syntax را تمام کنید (وابستگی ها را قطع کنید).
  • بهینه سازی Starlark: محیط مسطح، تدوین بایت کد
  • در صورت امکان تمام سریال سازی ها را از مرحله تحلیل حذف کنید
  • برنامه ای برای ساده سازی/بهینه سازی بسته های lib

انجمن:

  • یک واژه نامه حاوی تعاریف برای همه اصطلاحات خاص Bazel منتشر کنید