ट्रांज़िशन

डिपेंडेंसी एज के लिए, कॉन्फ़िगरेशन ट्रांज़िशन दिखाता है. उदाहरण के लिए, अगर //package:foo की डिपेंडेंसी //package:bar पर है और इसमें कॉन्फ़िगरेशन ट्रांज़िशन है, तो //package:bar (और इसकी डिपेंडेंसी) का कॉन्फ़िगरेशन, //package:foo का कॉन्फ़िगरेशन होगा. साथ ही, इसमें ट्रांज़िशन फ़ंक्शन से तय किए गए बदलाव भी शामिल होंगे.

सदस्य

ट्रांज़िशन

transition transition(*, implementation, inputs, outputs)

यह एक ऐसा ट्रांज़िशन है जो इनपुट के तौर पर दिए गए बिल्ड सेटिंग के सेट को पढ़ता है और आउटपुट के तौर पर बिल्ड सेटिंग का सेट लिखता है.

उदाहरण:

def _transition_impl(settings, attr):
    # This transition just reads the current CPU value as a demonstration.
    # A real transition could incorporate this into its followup logic.
    current_cpu = settings["//command_line_option:cpu"]
    return {"//command_line_option:compilation_mode": "dbg"}

build_in_debug_mode = transition(
    implementation = _transition_impl,
    inputs = ["//command_line_option:cpu"],
    outputs = ["//command_line_option:compilation_mode"],
)

ज़्यादा जानकारी के लिए यहां देखें.

पैरामीटर

पैरामीटर ब्यौरा
implementation कॉलेबल; ज़रूरी है
यह वह फ़ंक्शन है जो इस ट्रांज़िशन को लागू करता है. इस फ़ंक्शन में हमेशा दो पैरामीटर होते हैं: settings और attr. settings पैरामीटर एक डिक्शनरी है, जिसकी कुंजियों का सेट, इनपुट पैरामीटर से तय होता है. इसलिए, हर बिल्ड सेटिंग --//foo=bar के लिए, अगर inputs में //foo शामिल है, तो settings में settings['//foo']='bar' की एंट्री होगी.

attr पैरामीटर, ctx.attr का रेफ़रंस है. इससे, लागू करने वाले फ़ंक्शन को नियम के एट्रिब्यूट का ऐक्सेस मिलता है, ताकि एट्रिब्यूट-पैरामीटर वाले ट्रांज़िशन किए जा सकें.

इस फ़ंक्शन को, बिल्ड सेटिंग आइडेंटिफ़ायर से बिल्ड सेटिंग वैल्यू तक का dict दिखाना होगा. यह कॉन्फ़िगरेशन ट्रांज़िशन दिखाता है: दिखाए गए dict में मौजूद हर एंट्री के लिए, ट्रांज़िशन उस सेटिंग को नई वैल्यू पर अपडेट करता है. किसी भी अन्य सेटिंग में कोई बदलाव नहीं हुआ है. स्प्लिट ट्रांज़िशन के मामले में, यह फ़ंक्शन dict की list या dict की dict भी दिखा सकता है.

inputs स्ट्रिंग की सीरीज़; ज़रूरी है
बिल्ड सेटिंग की सूची, जिसे इस ट्रांज़िशन से पढ़ा जा सकता है. यह, लागू करने वाले फ़ंक्शन पैरामीटर के सेटिंग पैरामीटर की कुंजी सेट बन जाता है.
outputs स्ट्रिंग की सीरीज़; ज़रूरी है
बिल्ड सेटिंग की सूची, जिसे इस ट्रांज़िशन से लिखा जा सकता है. यह, इस ट्रांज़िशन से दिखाई गई डिक्शनरी की कुंजी सेट का सुपरसेट होना चाहिए.