স্টারলার্ক রোডম্যাপ

সর্বশেষ যাচাই করা হয়েছে: 2020-04-21 ( আপডেট ইতিহাস )

যোগাযোগের পয়েন্ট: লরেন্টএলবি

গোল

আমাদের লক্ষ্য Bazel আরো এক্সটেনসিবল করা. ব্যবহারকারীদের তাদের নিজস্ব নিয়মগুলি সহজেই বাস্তবায়ন করতে এবং নতুন ভাষা এবং সরঞ্জামগুলিকে সমর্থন করতে সক্ষম হওয়া উচিত। আমরা সেই নিয়মগুলি লেখার এবং বজায় রাখার অভিজ্ঞতা উন্নত করতে চাই।

আমরা দুটি ক্ষেত্রে ফোকাস করি:

  • ভাষা এবং API সহজ, তবুও শক্তিশালী করুন।
  • কোড পড়া, লেখা, আপডেট, ডিবাগিং এবং পরীক্ষার জন্য আরও ভালো টুলিং প্রদান করুন।

Q2 2020

স্বাস্থ্য এবং সর্বোত্তম অনুশীলন তৈরি করুন:

  • P0. নাম না থাকা ম্যাক্রোগুলিকে নিরুৎসাহিত করুন এবং নিশ্চিত করুন যে নামটি একটি অনন্য স্ট্রিং আক্ষরিক। এই কাজটি Google কোডবেসের উপর দৃষ্টি নিবদ্ধ করা হয়েছে, তবে সর্বজনীনভাবে উপলব্ধ টুলিংকে প্রভাবিত করতে পারে।
  • P0. নির্বাচন এবং ভেরিয়েবলের ক্ষেত্রে বিল্ডোজার কমান্ডগুলিকে নির্ভরযোগ্য করুন।
  • পৃ 1। বিল্ডিফায়ারকে তালিকার সদৃশগুলি সরিয়ে দিন যা আমরা মন্তব্যের কারণে বাছাই করি না।
  • পৃ 1। তুচ্ছ এক্সপ্রেশন ইনলাইন করার সুপারিশ করতে বিল্ডিফায়ার লিন্টার আপডেট করুন।
  • P2. Native.existing_rule s-এর জন্য ব্যবহারের ক্ষেত্রে অধ্যয়ন করুন এবং বিকল্প প্রস্তাব করুন।
  • P2. প্রিলিউড ফাইলের জন্য ব্যবহার কেস অধ্যয়ন করুন এবং বিকল্প প্রস্তাব করুন।

কর্মক্ষমতা:

  • পৃ 1। ফ্ল্যাট পরিবেশ এবং বাইটকোড সংকলন ব্যবহার করে স্টারলার্ক দোভাষীকে অপ্টিমাইজ করুন।

প্রযুক্তিগত ঋণ হ্রাস:

  • P0. @bazel_tools-এর নীচে Starlark-এ নেটিভ সিম্বল পোর্ট করার ক্ষমতা যোগ করুন।
  • পৃ 1। অপ্রচলিত পতাকাগুলি মুছুন (এগুলির মধ্যে কিছু এখনও Google এ ব্যবহার করা হয়, তাই আমাদের প্রথমে incompatible_new_actions_api পরিষ্কার করতে হবে): incompatible_always_check_depset_elements , incompatible_disable_deprecated_attr_params , incompatible_no_support_tools_in_action_inputs
  • পৃ 1। নিশ্চিত করুন যে নিম্নলিখিত পতাকাগুলি Bazel 4.0-এ উল্টানো যেতে পারে: incompatible_disable_depset_items , incompatible_no_implicit_file_export , incompatible_run_shell_command_string , incompatible_restrict_string_escapes
  • পৃ 1। lib.syntax কাজ শেষ করুন (API ক্লিনআপ, Bazel থেকে আলাদা)।
  • P2. Bazel এর Java প্যাকেজগুলিতে একটি তুচ্ছ সম্পাদনার বিল্ড+পরীক্ষার লেটেন্সি 50% কমিয়ে দিন।

সম্প্রদায়:

  • rules_python সম্প্রদায়ের দ্বারা সক্রিয় এবং ভালভাবে রক্ষণাবেক্ষণ করা হয়।
  • নিয়ম_jvm_external-এর জন্য ক্রমাগত সমর্থন (কোন অসামান্য পুল অনুরোধ, সমস্যা ট্রাইজ, প্রকাশ করা)।
  • বেজেল ডকুমেন্টেশন অবকাঠামো বজায় রাখুন: বেজেল-ওয়েবসাইট, বেজেল-ব্লগ, ডক্স জুড়ে CSS শৈলীকে কেন্দ্রীভূত এবং ক্যানোনিকালাইজ করুন
  • Bazel ডক্স: রিগ্রেশন প্রতিরোধ করতে e2e ডক সাইট বিল্ডের জন্য CI পরীক্ষা যোগ করুন।

Q1 2020

স্বাস্থ্য এবং সর্বোত্তম অনুশীলন তৈরি করুন:

  • bazel query মাধ্যমে রপ্তানি করার জন্য লক্ষ্যগুলিকে তাদের ম্যাক্রো কল স্ট্যাক ট্র্যাক করার অনুমতি দিন৷
  • প্রয়োগ --incompatible_no_implicit_file_export
  • অপসারিত ডিপসেট API (#5817, #10313, #9017) সরান।
  • বিল্ডিফায়ারে একটি ক্রস ফাইল বিশ্লেষক যোগ করুন, অবহেলিত ফাংশনগুলির জন্য একটি চেক প্রয়োগ করুন।

কর্মক্ষমতা:

  • Bazel এর নিজস্ব জাভা-ভিত্তিক পরীক্ষা 2x দ্রুত করুন।
  • একটি Starlark CPU প্রোফাইলার প্রয়োগ করুন।

প্রযুক্তিগত ঋণ হ্রাস:

  • 8টি বেমানান পতাকা সরান (এগুলি উল্টানোর পরে)।
  • lib.syntax ক্লিনআপের কাজ শেষ করুন (নির্ভরতা বিরতি করুন)।
  • স্টারলার্ক অপ্টিমাইজেশান: সমতল পরিবেশ, বাইটকোড সংকলন
  • বিশ্লেষণ ফেজ থেকে সমস্ত সিরিয়ালাইজেশন মুছুন, যদি সম্ভব হয়
  • lib.packages সরলীকরণ/অপ্টিমাইজ করার জন্য একটি পরিকল্পনা করুন

সম্প্রদায়:

  • সমস্ত Bazel-নির্দিষ্ট পদগুলির জন্য সংজ্ঞা সম্বলিত একটি শব্দকোষ প্রকাশ করুন৷