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

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें रात · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

पिछली बार पुष्टि की तारीख: 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 के लिए लगातार सहायता (कोई बकाया पुल अनुरोध नहीं है, समस्या है प्राथमिकता तय करना, कॉन्टेंट रिलीज़ करना).
  • बेज़ल दस्तावेज़ इन्फ़्रास्ट्रक्चर को मैनेज करना: सीएसएस को एक ही जगह से मैनेज और कैननिकल करना अलग-अलग वेबसाइट पर स्टाइल, बेज़ेल-ब्लॉग, दस्तावेज़
  • बेज़ेल दस्तावेज़: रिग्रेशन को रोकने के लिए e2e दस्तावेज़ साइट बिल्ड के लिए सीआई टेस्ट जोड़ें.

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

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

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

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

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

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

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

कम्यूनिटी:

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