स्टारलार्क रोडमैप

समस्या की शिकायत करें सोर्स देखें

पिछली बार पुष्टि की तारीख: 21-04-2020 (अपडेट का इतिहास)

संपर्क करने का तरीका: Laurentlb

लक्ष्य

हमारा लक्ष्य Basel को ज़्यादा एक्स्टेंसिबल बनाना है. उपयोगकर्ताओं के लिए यह ज़रूरी है कि वे अपने नियमों को आसानी से लागू कर सकें. साथ ही, वे नई भाषाओं और टूल के साथ काम कर सकें. हम इन नियमों को लिखने और उन्हें बनाए रखने के अनुभव को बेहतर बनाना चाहते हैं.

हम दो क्षेत्रों पर फ़ोकस करते हैं:

  • भाषा और एपीआई को आसान, लेकिन असरदार बनाएं.
  • कोड को पढ़ने, लिखने, अपडेट करने, डीबग करने, और टेस्ट करने के लिए बेहतर टूल उपलब्ध कराएं.

साल 2020 की दूसरी तिमाही

सेहत और सबसे सही तरीके तय करें:

  • पी0. मैक्रो का नाम न रखें और पक्का करें कि नाम एक यूनीक स्ट्रिंग लिटरल हो. यह काम Google कोड बेस पर आधारित है, लेकिन इसका असर सार्वजनिक तौर पर उपलब्ध टूल पर पड़ सकता है.
  • पी0. चुनने और वैरिएबल के मामले में Buildozer के निर्देशों को भरोसेमंद बनाएं.
  • P1. Buildifier को सूचियों से ऐसे डुप्लीकेट हटा दें जिन्हें हम टिप्पणियों की वजह से क्रम में नहीं लगा पाते.
  • P1. आसान एक्सप्रेशन को इनलाइन करने का सुझाव देने के लिए, Buildifier लिंटर को अपडेट करें.
  • पी2. Latin.existing_Rules के इस्तेमाल के उदाहरणों और दूसरे विकल्पों के सुझाव दें.
  • पी2. शुरुआती फ़ाइल के लिए इस्तेमाल के उदाहरणों का अध्ययन करें और विकल्पों का सुझाव दें.

परफ़ॉर्मेंस:

  • P1. सपाट एनवायरमेंट और बाइटकोड कंपाइलेशन का इस्तेमाल करके, Starlark इंटरप्रेटर को ऑप्टिमाइज़ करें.

तकनीकी क़र्ज़ कम करना:

  • पी0. @baZ_tools के नीचे Starlark में, स्थानीय प्रतीकों को पोर्ट करने की सुविधा शामिल करें.
  • P1. पुराने फ़्लैग मिटाएं (इनमें से कुछ का इस्तेमाल अब भी Google पर किया जा रहा है, इसलिए हमें पहले कोडबेस को साफ़ करना होगा): incompatible_always_check_depset_elements, incompatible_disable_deprecated_attr_params, incompatible_no_support_tools_in_action_inputs, incompatible_new_actions_api.
  • P1. पक्का करें कि बाद के फ़्लैग बेज़ल 4.0 में फ़्लिप किए जा सकते हैं: incompatible_disable_depset_items, incompatible_no_implicit_file_export, incompatible_run_shell_command_string, incompatible_restrict_string_escapes.
  • P1. lib.syntax पर काम पूरा करें (एपीआई क्लीनअप, Baze से अलग होना).
  • पी2. Basel के Java पैकेज में एक मामूली बदलाव करने पर बिल्ड+टेस्ट लेटेंसी को 50% तक कम करें.

कम्यूनिटी:

  • rules_python चालू है और कम्यूनिटी की मदद से मैनेज किया जाता है.
  • नियमों_jvm_external के लिए लगातार सहायता (पुल के लिए कोई अनुरोध बाकी नहीं है, समस्या को प्राथमिकता के हिसाब से व्यवस्थित किया गया है, और रिलीज़ किया गया है).
  • Basel के डॉक्यूमेंटेशन इन्फ़्रास्ट्रक्चर को मैनेज करें: bazi-वेबसाइट, bazu-blog, docs पर सीएसएस स्टाइल को एक ही जगह से मैनेज और कैननिकल करें
  • बेज़ेल दस्तावेज़: रिग्रेशन को रोकने के लिए e2e दस्तावेज़ साइट बिल्ड के लिए सीआई टेस्ट जोड़ें.

साल 2020 की पहली तिमाही

सेहत और सबसे सही तरीके तय करें:

  • bazel query के ज़रिए एक्सपोर्ट करने के लिए, टारगेट को उनके मैक्रो कॉल स्टैक ट्रैक करने की अनुमति दें
  • --incompatible_no_implicit_file_export लागू करें
  • ऐसे Depset API (एपीआई) हटाएं जो अब काम नहीं करते हैं (#5817, #10313, #9017).
  • Buildifier में क्रॉस फ़ाइल ऐनालाइज़र जोड़ें और काम न करने वाले फ़ंक्शन की जांच लागू करें.

परफ़ॉर्मेंस:

  • Basel के Java-आधारित टेस्ट को दोगुना ज़्यादा तेज़ बनाएं.
  • Starlark सीपीयू प्रोफ़ाइलर को लागू करें.

तकनीकी क़र्ज़ कम करना:

  • काम न करने वाले आठ फ़्लैग हटाएं (उन्हें फ़्लिप करने के बाद).
  • lib.syntax क्लीनअप का काम पूरा करें (डिपेंडेंसी तोड़ें).
  • स्टारलार्क ऑप्टिमाइज़ेशन: सपाट एनवायरमेंट, बाइटकोड कंपाइलेशन
  • अगर हो सके, तो विश्लेषण के चरण के सभी क्रमों को मिटाएं
  • lib.packages को आसान/ऑप्टिमाइज़ करने के लिए योजना बनाएं

कम्यूनिटी:

  • एक ऐसी ग्लॉसरी प्रकाशित करें जिसमें 'बेज़ल' के लिए खास तौर पर बने सभी शब्दों की परिभाषाएं शामिल हों