Mewakili transisi konfigurasi di seluruh tepi dependensi. Misalnya, jika //package:foo bergantung pada //package:bar dengan transisi konfigurasi, konfigurasi kedua target ini akan berbeda: transisi //package:bar akan ditentukan oleh //package:foo, sesuai dengan fungsi yang ditentukan oleh objek transisi.
Transisi yang membaca satu set setelan build input dan menulis satu set setelan build output.
Contoh:
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"],
)
Untuk mengetahui detail selengkapnya, lihat di sini.
Parameter
Parameter
Deskripsi
implementation
wajib
Fungsi yang menerapkan transisi ini. Fungsi ini selalu memiliki dua parameter: settings dan attr. Parameter settings adalah kamus yang kumpulan kuncinya ditentukan oleh parameter input. Jadi, untuk setiap setelan build --//foo=bar, jika inputs berisi //foo, settings akan memiliki entri settings['//foo']='bar'.
Parameter attr adalah referensi ke ctx.attr. Hal ini memberi fungsi penerapan akses ke atribut aturan untuk memungkinkan transisi atribut berparameter.
Fungsi ini harus menampilkan dict dari ID setelan build hingga nilai setelan build; ini mewakili transisi konfigurasi: untuk setiap entri dalam dict yang ditampilkan, transisi akan memperbarui setelan ke nilai baru. Semua setelan lainnya tidak berubah. Fungsi ini juga dapat menampilkan list dari dict atau dict dari dict jika terjadi transisi terpisah.
inputs
urutanstring;
wajib
Daftar setelan build yang dapat dibaca oleh transisi ini. Ini menjadi kumpulan kunci parameter setelan dari parameter fungsi penerapan.
outputs
urutanstring;
wajib
Daftar setelan build yang dapat ditulis oleh transisi ini. Ini harus berupa superset dari kumpulan kunci kamus yang ditampilkan oleh transisi ini.