BazelCon 2022 מגיע בין 16 ל-17 בנובמבר לניו יורק באינטרנט. הירשמו עוד היום!
חדש: אנחנו מזמינים אותך להצטרף אלינו ליום הקהילה ב-15 בנובמבר! פרטים ורישום.

מעבר

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

ייצוג של מעבר תצורה מקצה לקצה. לדוגמה, אם הערך //package:foo תלוי ב-//package:bar עם העברת תצורה, ההגדרה של שני היעדים האלה תהיה שונה: //package:bar של המעבר ייקבע על פי ההגדרות של //package:foo, בהתאם לפונקציה המוגדרת על ידי אובייקט המעבר.

חברי מועדון

מעבר

transition transition(implementation, inputs, outputs)

מעבר לקריאת קבוצה של הגדרות build לקלט וכותבים קבוצה של הגדרות build.

דוגמה:

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 הוא מילון שקבוצת המפתחות שלו מוגדרת על ידי פרמטר הקלט. לכן, עבור כל הגדרת build --//foo=bar, אם הערך inputs מכיל //foo, הערך settings יהיה רשומה settings['//foo']='bar'.

הפרמטר attr הוא הפניה אל ctx.attr. כך מתאפשרת לפונקציית ההטמעה מאפיינים של הכלל, כדי לאפשר מעברים עם פרמטרים.

פונקציה זו חייבת להחזיר dict ממזהה הגדרת build כדי ליצור ערך הגדרה. הערך הזה מייצג את מעבר התצורה: עבור כל ערך ב-dict שמוחזר, המעבר מעדכן את ההגדרה הזו לערך החדש. כל ההגדרות האחרות לא השתנו. פונקציה זו יכולה גם להחזיר list מתוך dict או dict מתוך dict במקרה של מעבר מפוצל.

inputs sequence of strings; חובה
רשימה של הגדרות build שאפשר לקרוא במעבר הזה. היא הופכת לקבוצת המפתח של פרמטר ההגדרות של הפרמטר פונקציית הטמעה.
outputs sequence of strings; חובה
רשימה של הגדרות build שאפשר לכתוב במעבר הזה. הוא חייב להיות קבוצת-על של קבוצת המפתחות של המילון שמוחזרת על ידי המעבר הזה.