transition

Reportar um problema Ver a fonte Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Representa uma transição de configuração em uma borda de dependência. Por exemplo, se //package:foo depender de //package:bar com uma transição de configuração, a configuração dessas duas metas será diferente: a transição de //package:bar será determinada pela de //package:foo, sujeita à função definida por um objeto de transição.

Membros

transição

transition transition(implementation, inputs, outputs)

Uma transição que lê um conjunto de configurações de build de entrada e grava um conjunto de configurações de build de saída.

Exemplo:

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"],
)

Para saber mais detalhes, acesse esta página.

Parâmetros

Parâmetro Descrição
implementation callable; required
A função que implementa essa transição. Essa função sempre tem dois parâmetros: settings e attr. O parâmetro settings é um dicionário cujo conjunto de chaves é definido pelo parâmetro de entradas. Portanto, para cada configuração de build --//foo=bar, se inputs contiver //foo, settings terá uma entrada settings['//foo']='bar'.

O parâmetro attr é uma referência a ctx.attr. Isso permite que a função de implementação tenha acesso aos atributos da regra para tornar as transições parametrizadas por atributo possíveis.

Essa função precisa retornar um dict do identificador de configuração do build para o valor da configuração. Isso representa a transição de configuração: para cada entrada no dict retornado, a transição atualiza essa configuração para o novo valor. Todas as outras configurações permanecem inalteradas. Essa função também pode retornar uma list de dicts ou uma dict de dicts no caso de uma transição dividida.

inputs Sequência de strings; Obrigatório
Lista de configurações de build que podem ser lidas por essa transição. Esse é o conjunto de chaves do parâmetro "settings" do parâmetro da função de implementação.
outputs sequência de strings; obrigatória
Lista de configurações de build que podem ser gravadas por essa transição. Ele precisa ser um superconjunto do conjunto de chaves do dicionário retornado por essa transição.