Archivos MODULE.bazel

Informar un problema Nocturno · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Métodos disponibles en los archivos MODULE.bazel.

Miembros

archive_override

None archive_override(module_name, **kwargs)

Especifica que esta dependencia debe provenir de un archivo (zip, gzip, etc.) en una ubicación determinada, en lugar de un registro. De hecho, esta dependencia se respaldará con una regla http_archive.

Esta directiva solo tiene efecto en el módulo raíz; en otras palabras, si otros módulos usan un módulo como dependencia, se ignoran sus propias anulaciones.

Parámetros

Parámetro Descripción
module_name string; obligatorio
Es el nombre de la dependencia del módulo de Bazel al que se aplicará esta anulación.
kwargs obligatorio
Todos los demás argumentos se reenvían a la regla http_archive subyacente del repositorio. Ten en cuenta que no se debe especificar el atributo name. En su lugar, usa module_name.

bazel_dep

None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)

Declara una dependencia directa en otro módulo de Bazel.

Parámetros

Parámetro Descripción
name string; obligatorio
Nombre del módulo que se agregará como dependencia directa.
version string; el valor predeterminado es ''
Es la versión del módulo que se agregará como dependencia directa.
max_compatibility_level int; el valor predeterminado es -1
Es el valor máximo de compatibility_level admitido para que el módulo se agregue como dependencia directa. La versión del módulo implica el compatibility_level mínimo admitido, así como el máximo si no se especifica este atributo.
repo_name cadena o None; el valor predeterminado es ''
Es el nombre del repo externo que representa esta dependencia. Este es el nombre predeterminado del módulo. Se puede establecer en None para que esta dependencia sea una dependencia de "nodep". En este caso, esta especificación de bazel_dep solo se respeta si el módulo de destino ya existe en el gráfico de dependencias por algún otro medio.
dev_dependency bool; el valor predeterminado es False
Si es verdadero, se ignorará esta dependencia si el módulo actual no es el módulo raíz o si --ignore_dev_dependency está habilitado.

git_override

None git_override(module_name, **kwargs)

Especifica que esta dependencia debe provenir de una confirmación determinada en un repositorio de Git, en lugar de un registro. De hecho, esta dependencia estará respaldada por una regla de git_repository.

Esta directiva solo tiene efecto en el módulo raíz; en otras palabras, si otros módulos usan un módulo como dependencia, se ignoran sus propias anulaciones.

Parámetros

Parámetro Descripción
module_name string; obligatorio
Es el nombre de la dependencia del módulo de Bazel al que se aplicará esta anulación.
kwargs obligatorio
Todos los demás argumentos se reenvían a la regla git_repository subyacente del repo. Ten en cuenta que no se debe especificar el atributo name. En su lugar, usa module_name.

incluye

None include(label)

Incluye el contenido de otro archivo similar a MODULE.bazel. En efecto, include() se comporta como si el archivo incluido se colocara textualmente en la ubicación de la llamada include(), excepto que las vinculaciones de variables (como las que se usan para use_extension) solo son visibles en el archivo en el que aparecen, no en ningún archivo incluido o que incluya.

Solo el módulo raíz puede usar include(); es un error si el archivo MODULE de un bazel_dep usa include().

Solo se pueden incluir archivos del repo principal.

include() te permite segmentar el archivo del módulo raíz en varias partes para evitar tener un archivo MODULE.bazel enorme o administrar mejor el control de acceso para segmentos semánticos individuales.

Parámetros

Parámetro Descripción
label string; required
Es la etiqueta que apunta al archivo que se incluirá. La etiqueta debe apuntar a un archivo en el repo principal; en otras palabras, debe comenzar con barras dobles (//). El nombre del archivo debe terminar con .MODULE.bazel y no debe comenzar con ..

inject_repo

None inject_repo(extension_proxy, *args, **kwargs)

Inserta uno o más repositorios nuevos en la extensión del módulo determinado. Se ignora si el módulo actual no es el módulo raíz o si --ignore_dev_dependency está habilitado.

En su lugar, usa override_repo para anular un repositorio existente.

Parámetros

Parámetro Descripción
extension_proxy module_extension_proxy; required
Es un objeto proxy de extensión del módulo que devuelve una llamada a use_extension.
args obligatorio
Son los repositorios visibles para el módulo actual que se deben insertar en la extensión con el mismo nombre.
kwargs obligatorio
Son los repositorios nuevos que se insertarán en la extensión, en los que los valores son los nombres de los repositorios en el alcance del módulo actual y las claves son el nombre con el que se verán en la extensión.

Las claves que no son identificadores válidos se pueden especificar a través de un diccionario literal que se pasa como argumentos de palabras clave adicionales, p.ej., inject_repo(extension_proxy, **{"foo.2": "foo"}).

local_path_override

None local_path_override(module_name, path)

Especifica que esta dependencia debe provenir de un directorio determinado en el disco local, en lugar de un registro. En efecto, esta dependencia se respaldará con una regla local_repository.

Esta directiva solo tiene efecto en el módulo raíz; en otras palabras, si otros módulos usan un módulo como dependencia, se ignoran sus propias anulaciones.

Parámetros

Parámetro Descripción
module_name string; obligatorio
Es el nombre de la dependencia del módulo de Bazel al que se aplicará esta anulación.
path string; obligatorio
Es la ruta de acceso al directorio en el que se encuentra este módulo.

module

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

Declara ciertas propiedades del módulo de Bazel representado por el repo de Bazel actual. Estas propiedades son metadatos esenciales del módulo (como el nombre y la versión) o afectan el comportamiento del módulo actual y sus dependencias.

Se debe llamar como máximo una vez y, si se llama, debe ser la primera directiva en el archivo MODULE.bazel. Solo se puede omitir si este módulo es el módulo raíz (es decir, si ningún otro módulo dependerá de él).

Parámetros

Parámetro Descripción
name cadena; el valor predeterminado es ''
Es el nombre del módulo. Solo se puede omitir si este módulo es el módulo raíz (es decir, si ningún otro módulo dependerá de él). Un nombre de módulo válido debe cumplir con los siguientes requisitos: 1) Solo debe contener letras en minúscula (a-z), dígitos (0-9), puntos (.), guiones (-) y guiones bajos (_). 2) Debe comenzar con una letra en minúscula. 3) Debe terminar con una letra en minúscula o un dígito.
version cadena; el valor predeterminado es ''
Es la versión del módulo. Solo se puede omitir si este módulo es el módulo raíz (es decir, si ningún otro módulo dependerá de él). La versión debe estar en un formato SemVer flexible. Consulta la documentación para obtener más detalles.
compatibility_level int; el valor predeterminado es 0
Es el nivel de compatibilidad del módulo. Se debe cambiar cada vez que se introduce un cambio principal incompatible. Esta es, básicamente, la "versión principal" del módulo en términos de SemVer, solo que no está incorporada en la cadena de versión, sino que existe como un campo separado. Los módulos con diferentes niveles de compatibilidad participan en la resolución de versiones como si fueran módulos con nombres diferentes, pero el gráfico de dependencia final no puede contener varios módulos con el mismo nombre, pero diferentes niveles de compatibilidad (a menos que multiple_version_override esté en vigencia). Para obtener más detalles, consulta la documentación.
repo_name string; el valor predeterminado es ''
Nombre del repositorio que representa este módulo, tal como lo ve el módulo. De forma predeterminada, el nombre del repo es el nombre del módulo. Se puede especificar para facilitar la migración de proyectos que han estado usando un nombre de repo para sí mismos que difiere de su nombre de módulo.
bazel_compatibility Es un iterable de cadenas. El valor predeterminado es []
. Es una lista de versiones de Bazel que permite a los usuarios declarar qué versiones de Bazel son compatibles con este módulo. NO afecta la resolución de dependencias, pero bzlmod usará esta información para verificar si tu versión actual de Bazel es compatible. El formato de este valor es una cadena de algunos valores de restricción separados por comas. Se admiten tres restricciones: <=X.X.X: La versión de Bazel debe ser igual o anterior a X.X.X. Se usa cuando hay un cambio incompatible conocido en una versión más reciente. >=X.X.X: La versión de Bazel debe ser igual o posterior a X.X.X.Se usa cuando dependes de algunas funciones que solo están disponibles desde X.X.X. -X.X.X: La versión X.X.X de Bazel no es compatible. Se usa cuando hay un error en la versión X.X.X que te afecta, pero que se corrigió en versiones posteriores.

multiple_version_override

None multiple_version_override(module_name, versions, registry='')

Especifica que una dependencia aún debe provenir de un registro, pero se deben permitir varias versiones de ella para que coexistan. Para obtener más detalles, consulta la documentación. Esta directiva solo tiene efecto en el módulo raíz; en otras palabras, si otros módulos usan un módulo como dependencia, se ignoran sus propias anulaciones.

Parámetros

Parámetro Descripción
module_name string; obligatorio
Es el nombre de la dependencia del módulo de Bazel al que se aplicará esta anulación.
versions Es un iterable de cadenas; obligatorio
Especifica de forma explícita las versiones que pueden coexistir. Estas versiones ya deben estar presentes en la preselección del gráfico de dependencias. Las dependencias de este módulo se "actualizarán" a la versión superior permitida más cercana en el mismo nivel de compatibilidad, mientras que las dependencias que tengan una versión superior a cualquier versión permitida en el mismo nivel de compatibilidad generarán un error.
registry string; el valor predeterminado es ''
Anula el registro de este módulo. En lugar de buscar este módulo en la lista predeterminada de registros, se debe usar el registro proporcionado.

override_repo

None override_repo(extension_proxy, *args, **kwargs)

Anula uno o más repositorios definidos por la extensión del módulo determinada con los repositorios determinados visibles para el módulo actual. Se ignora si el módulo actual no es el módulo raíz o si se habilitó `--ignore_dev_dependency`.

En su lugar, usa inject_repo para agregar un repo nuevo.

Parámetros

Parámetro Descripción
extension_proxy module_extension_proxy; required
Es un objeto proxy de extensión del módulo que devuelve una llamada a use_extension.
args obligatorio
Son los repositorios de la extensión que se deben reemplazar por los repositorios con el mismo nombre en el módulo actual.
kwargs obligatorio
Son las anulaciones que se aplicarán a los repositorios generados por la extensión, en los que los valores son los nombres de los repositorios en el alcance del módulo actual y las claves son los nombres de los repositorios que anularán en la extensión.

Las claves que no son identificadores válidos se pueden especificar a través de un diccionario literal que se pasa como argumentos de palabras clave adicionales, p.ej., override_repo(extension_proxy, **{"foo.2": "foo"}).

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

Especifica las plataformas de ejecución ya definidas que se registrarán cuando se seleccione este módulo. Deben ser patrones de destino absolutos (es decir, que comiencen con @ o //). Consulta la resolución de la cadena de herramientas para obtener más información. Los patrones que se expanden a varios destinos, como :all, se registrarán en orden lexicográfico por nombre.

Parámetros

Parámetro Descripción
dev_dependency bool; el valor predeterminado es False
Si es verdadero, las plataformas de ejecución no se registrarán si el módulo actual no es el módulo raíz o si se habilitó `--ignore_dev_dependency`.
platform_labels sequence de strings; obligatorio
Son los patrones de destino que se registrarán.

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

Especifica las cadenas de herramientas ya definidas que se registrarán cuando se seleccione este módulo. Deben ser patrones de destino absolutos (es decir, que comiencen con @ o //). Consulta la resolución de la cadena de herramientas para obtener más información. Los patrones que se expanden a varios destinos, como :all, se registrarán en orden lexicográfico por nombre de destino (no por el nombre de la implementación de la cadena de herramientas).

Parámetros

Parámetro Descripción
dev_dependency bool; El valor predeterminado es False
Si es verdadero, las cadenas de herramientas no se registrarán si el módulo actual no es el módulo raíz o si se habilitó `--ignore_dev_dependency`.
toolchain_labels sequence de strings; obligatorio
Son los patrones de destino que se registrarán.

single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

Especifica que una dependencia debe seguir proviniendo de un registro, pero su versión debe estar fijada, o su registro anulado, o bien se debe aplicar una lista de parches. Esta directiva solo tiene efecto en el módulo raíz; en otras palabras, si otros módulos usan un módulo como dependencia, se ignoran sus propias anulaciones.

Parámetros

Parámetro Descripción
module_name string; obligatorio
Es el nombre de la dependencia del módulo de Bazel al que se aplicará esta anulación.
version string; El valor predeterminado es ''
Anula la versión declarada de este módulo en el gráfico de dependencias. En otras palabras, este módulo se "fijará" a esta versión de la anulación. Este atributo se puede omitir si lo único que se desea anular es el registro o los parches.
registry string; el valor predeterminado es ''
Anula el registro de este módulo. En lugar de buscar este módulo en la lista predeterminada de registros, se debe usar el registro proporcionado.
patches Iterable de cadenas; el valor predeterminado es []
. Es una lista de etiquetas que apuntan a los archivos de parche que se aplicarán a este módulo. Los archivos de parche deben existir en el árbol de origen del proyecto de nivel superior. Se aplican en el orden de la lista.

Si un parche realiza cambios en el archivo MODULE.bazel, estos cambios solo serán efectivos si el archivo de parche lo proporciona el módulo raíz.

patch_cmds Es un iterable de cadenas. El valor predeterminado es []
. Es una secuencia de comandos de Bash que se aplicarán en Linux o macOS después de que se apliquen los parches.

Los cambios en el archivo MODULE.bazel no entrarán en vigencia.

patch_strip int; El valor predeterminado es 0
Es igual que el argumento --strip del parche de Unix.

use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)

Devuelve un objeto proxy que representa una extensión del módulo. Se pueden invocar sus métodos para crear etiquetas de extensión del módulo.

Parámetros

Parámetro Descripción
extension_bzl_file cadena; obligatorio
Es una etiqueta para el archivo Starlark que define la extensión del módulo.
extension_name string; obligatorio
Nombre de la extensión del módulo que se usará. El archivo de Starlark debe exportar un símbolo con este nombre.
dev_dependency bool; el valor predeterminado es False
Si es verdadero, se ignorará este uso de la extensión del módulo si el módulo actual no es el módulo raíz o si se habilitó `--ignore_dev_dependency`.
isolate bool; el valor predeterminado es False
Experimental. Este parámetro es experimental y puede cambiar en cualquier momento. No dependas de él. Se puede habilitar de forma experimental configurando --experimental_isolated_extension_usages.
Si es verdadero, este uso de la extensión del módulo se aislará de todos los demás usos, tanto en este como en otros módulos. Las etiquetas creadas para este uso no afectan otros usos, y los repositorios que genera la extensión para este uso serán distintos de todos los demás repositorios que genera la extensión.

Actualmente, este parámetro es experimental y solo está disponible con la marca --experimental_isolated_extension_usages.

use_repo

None use_repo(extension_proxy, *args, **kwargs)

Importa uno o más repositorios generados por la extensión de módulo determinada en el alcance del módulo actual.

Parámetros

Parámetro Descripción
extension_proxy module_extension_proxy; required
Es un objeto proxy de extensión del módulo que devuelve una llamada a use_extension.
args obligatorio
Nombres de los repositorios que se importarán.
kwargs obligatorio
Especifica ciertos repositorios para importar al alcance del módulo actual con nombres diferentes. Las claves deben ser el nombre que se usará en el alcance actual, mientras que los valores deben ser los nombres originales que exporta la extensión del módulo.

Las claves que no son identificadores válidos se pueden especificar a través de un diccionario literal que se pasa como argumentos de palabras clave adicionales, p.ej., use_repo(extension_proxy, **{"foo.2": "foo"}).

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

Devuelve un valor de proxy que se puede invocar directamente en el archivo MODULE.bazel como una regla de repositorio, una o más veces. Los repositorios creados de esta manera solo son visibles para el módulo actual, con el nombre declarado con el atributo name en el proxy. El atributo booleano implícito dev_dependency también se puede usar en el proxy para indicar que un repo determinado solo se debe crear cuando el módulo actual es el módulo raíz.

Parámetros

Parámetro Descripción
repo_rule_bzl_file string; obligatorio
Es una etiqueta para el archivo de Starlark que define la regla del repositorio.
repo_rule_name string; obligatorio
Es el nombre de la regla del repo que se usará. El archivo de Starlark debe exportar un símbolo con este nombre.