transition

Laporkan masalah Lihat sumber Nightly · 7.4 .

Merepresentasikan 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 transisi //package:foo, yang tunduk pada fungsi yang ditentukan oleh objek transisi.

Anggota

transition

transition transition(implementation, inputs, outputs)

Transisi yang membaca serangkaian setelan build input dan menulis serangkaian 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 callable; required
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 implementasi akses ke atribut aturan untuk memungkinkan transisi berparameter atribut.

Fungsi ini harus menampilkan dict dari ID setelan build ke nilai setelan build; ini mewakili transisi konfigurasi: untuk setiap entri dalam dict yang ditampilkan, transisi akan memperbarui setelan tersebut 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 urutan string; wajib
Daftar setelan build yang dapat dibaca oleh transisi ini. Ini menjadi kumpulan kunci parameter setelan dari parameter fungsi implementasi.
outputs urutan string; diperlukan
Daftar setelan build yang dapat ditulis oleh transisi ini. Ini harus berupa superset dari kumpulan kunci kamus yang ditampilkan oleh transisi ini.