Reglas del repositorio de Git

Informar un problema Ver fuente Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Las siguientes funciones se pueden cargar desde @bazel_tools//tools/build_defs/repo:git.bzl.

Son reglas para clonar repositorios externos de Git.

git_repository

load("@bazel//tools/build_defs/repo:git.bzl", "git_repository")

git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args,
               patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches,
               recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag,
               verbose, workspace_file, workspace_file_content)

Clona un repositorio de Git externo.

Clona un repositorio de Git, consulta la etiqueta o la confirmación especificadas y hace que sus destinos estén disponibles para la vinculación. También determina el ID de la confirmación que se extrajo y su fecha, y devuelve un diccionario con parámetros que proporcionan una versión reproducible de esta regla (que no necesariamente es una etiqueta).

Primero, Bazel intentará realizar una recuperación superficial solo de la confirmación especificada. Si eso falla (generalmente debido a la falta de compatibilidad del servidor), se recurrirá a una recuperación completa del repositorio.

Se prefiere http_archive en lugar de git_repository. Estos son los motivos:

  • Las reglas del repositorio de Git dependen del sistema git(1), mientras que el descargador de HTTP está integrado en Bazel y no tiene dependencias del sistema.
  • http_archive admite una lista de urls como duplicados, y git_repository solo admite un solo remote.
  • http_archive funciona con la caché del repositorio, pero no con git_repository. Consulta #5116 para obtener más información.

ATRIBUTOS

name Nombre (obligatorio)

Es un nombre único para este repositorio.

branch Cadena; opcional

rama del repositorio remoto que se extraerá. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación.

build_file Etiqueta: Opcional

Es el archivo que se usará como archivo BUILD para este repositorio.Este atributo es una etiqueta absoluta (usa "@//" para el repositorio principal). No es necesario que el archivo se llame BUILD, pero puede llamarse de otra manera (algo como BUILD.nombre-repo-nuevo puede funcionar bien para distinguirlo de los archivos BUILD reales del repositorio).

build_file_content Cadena; opcional

Es el contenido del archivo BUILD de este repositorio.

commit Cadena; opcional

Es la confirmación específica que se extraerá. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación.

init_submodules Booleano; opcional

Indica si se deben clonar los submódulos en el repositorio.

patch_args Lista de cadenas; opcional

Son los argumentos que se proporcionan a la herramienta de parche. El valor predeterminado es -p0 (consulta el atributo "patch_strip"), pero, por lo general, se necesitará -p1 para los parches generados por Git. Si se especifican varios argumentos -p, tendrá efecto el último.Si se especifican argumentos que no sean -p, Bazel recurrirá al uso de la herramienta de línea de comandos patch en lugar de la implementación de patch nativa de Bazel. Cuando se recurre a la herramienta de línea de comandos patch y no se especifica el atributo patch_tool, se usará "patch".

patch_cmds Lista de cadenas; opcional

Secuencia de comandos de Bash que se aplicarán en Linux o macOS después de aplicar los parches.

patch_cmds_win Lista de cadenas; opcional

Secuencia de comandos de PowerShell que se aplicarán en Windows después de que se apliquen los parches. Si no se establece este atributo, patch_cmds se ejecutará en Windows, lo que requiere que exista el archivo binario de Bash.

patch_strip Número entero; opcional

Cuando se establece en "N", esto equivale a insertar "-pN" al principio de "patch_args".

patch_tool Cadena; opcional

Es la utilidad patch(1) que se usará. Si se especifica, Bazel usará la herramienta de parches especificada en lugar de la implementación de parches nativa de Bazel.

patches Lista de etiquetas (opcional)

Es una lista de archivos que se aplicarán como parches después de extraer el archivo. De forma predeterminada, usa la implementación de parches nativa de Bazel, que no admite la coincidencia aproximada ni los parches binarios, pero Bazel recurrirá a la herramienta de línea de comandos patch si se especifica el atributo "patch_tool" o si hay argumentos distintos de "-p" en el atributo "patch_args".

recursive_init_submodules Booleano; opcional

Indica si se deben clonar los submódulos de forma recursiva en el repositorio.

remote Cadena; obligatorio

Es el URI del repositorio de Git remoto.

repo_mapping Diccionario: Cadena -> Cadena; opcional

Solo en el contexto de `WORKSPACE`: Es un diccionario que asigna el nombre del repositorio local al nombre del repositorio global. Esto permite controlar la resolución de dependencias del espacio de trabajo para las dependencias de este repositorio. Por ejemplo, una entrada `"@foo": "@bar"` declara que, en cualquier momento en que este repositorio dependa de `@foo` (como una dependencia de `@foo//some:target`), en realidad debería resolver esa dependencia dentro de `@bar` declarado de forma global (`@bar//some:target`). Este atributo _no_ se admite en el contexto de `MODULE.bazel` (cuando se invoca una regla de repositorio dentro de la función de implementación de una extensión de módulo).

shallow_since Cadena; opcional

Es una fecha opcional, no posterior a la confirmación especificada. El argumento no se permite si se especifica una etiqueta o rama (que siempre se puede clonar con --depth=1). Establecer una fecha cercana a la confirmación especificada puede permitir una clonación superficial del repositorio, incluso si el servidor no admite recuperaciones superficiales de confirmaciones arbitrarias. Debido a errores en la implementación de --shallow-since de Git, no se recomienda usar este atributo, ya que puede provocar errores de recuperación.

strip_prefix Cadena; opcional

Es un prefijo de directorio que se quita de los archivos extraídos.

tag Cadena; opcional

etiqueta en el repositorio remoto que se extrajo. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación.

verbose Booleano; opcional
workspace_file Etiqueta: Opcional

Es el archivo que se usará como archivo `WORKSPACE` para este repositorio. Se puede especificar `workspace_file` o `workspace_file_content`, o ninguno, pero no ambos.

workspace_file_content Cadena; opcional

Es el contenido del archivo WORKSPACE de este repositorio. Se puede especificar `workspace_file` o `workspace_file_content`, o ninguno, pero no ambos.

new_git_repository

load("@bazel//tools/build_defs/repo:git.bzl", "new_git_repository")

new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules,
                   patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches,
                   recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag,
                   verbose, workspace_file, workspace_file_content)

Clona un repositorio de Git externo.

Clona un repositorio de Git, consulta la etiqueta o la confirmación especificadas y hace que sus destinos estén disponibles para la vinculación. También determina el ID de la confirmación que se extrajo y su fecha, y devuelve un diccionario con parámetros que proporcionan una versión reproducible de esta regla (que no necesariamente es una etiqueta).

Primero, Bazel intentará realizar una recuperación superficial solo de la confirmación especificada. Si eso falla (generalmente debido a la falta de compatibilidad del servidor), se recurrirá a una recuperación completa del repositorio.

Se prefiere http_archive en lugar de git_repository. Estos son los motivos:

  • Las reglas del repositorio de Git dependen del sistema git(1), mientras que el descargador de HTTP está integrado en Bazel y no tiene dependencias del sistema.
  • http_archive admite una lista de urls como duplicados, y git_repository solo admite un solo remote.
  • http_archive funciona con la caché del repositorio, pero no con git_repository. Consulta #5116 para obtener más información.

ATRIBUTOS

name Nombre (obligatorio)

Es un nombre único para este repositorio.

branch Cadena; opcional

rama del repositorio remoto que se extraerá. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación.

build_file Etiqueta: Opcional

Es el archivo que se usará como archivo BUILD para este repositorio.Este atributo es una etiqueta absoluta (usa "@//" para el repositorio principal). No es necesario que el archivo se llame BUILD, pero puede llamarse de otra manera (algo como BUILD.nombre-repo-nuevo puede funcionar bien para distinguirlo de los archivos BUILD reales del repositorio).

build_file_content Cadena; opcional

Es el contenido del archivo BUILD de este repositorio.

commit Cadena; opcional

Es la confirmación específica que se extraerá. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación.

init_submodules Booleano; opcional

Indica si se deben clonar los submódulos en el repositorio.

patch_args Lista de cadenas; opcional

Son los argumentos que se proporcionan a la herramienta de parche. El valor predeterminado es -p0 (consulta el atributo "patch_strip"), pero, por lo general, se necesitará -p1 para los parches generados por Git. Si se especifican varios argumentos -p, tendrá efecto el último.Si se especifican argumentos que no sean -p, Bazel recurrirá al uso de la herramienta de línea de comandos patch en lugar de la implementación de patch nativa de Bazel. Cuando se recurre a la herramienta de línea de comandos patch y no se especifica el atributo patch_tool, se usará "patch".

patch_cmds Lista de cadenas; opcional

Secuencia de comandos de Bash que se aplicarán en Linux o macOS después de aplicar los parches.

patch_cmds_win Lista de cadenas; opcional

Secuencia de comandos de PowerShell que se aplicarán en Windows después de que se apliquen los parches. Si no se establece este atributo, patch_cmds se ejecutará en Windows, lo que requiere que exista el archivo binario de Bash.

patch_strip Número entero; opcional

Cuando se establece en "N", esto equivale a insertar "-pN" al principio de "patch_args".

patch_tool Cadena; opcional

Es la utilidad patch(1) que se usará. Si se especifica, Bazel usará la herramienta de parches especificada en lugar de la implementación de parches nativa de Bazel.

patches Lista de etiquetas (opcional)

Es una lista de archivos que se aplicarán como parches después de extraer el archivo. De forma predeterminada, usa la implementación de parches nativa de Bazel, que no admite la coincidencia aproximada ni los parches binarios, pero Bazel recurrirá a la herramienta de línea de comandos patch si se especifica el atributo "patch_tool" o si hay argumentos distintos de "-p" en el atributo "patch_args".

recursive_init_submodules Booleano; opcional

Indica si se deben clonar los submódulos de forma recursiva en el repositorio.

remote Cadena; obligatorio

Es el URI del repositorio de Git remoto.

repo_mapping Diccionario: Cadena -> Cadena; opcional

Solo en el contexto de `WORKSPACE`: Es un diccionario que asigna el nombre del repositorio local al nombre del repositorio global. Esto permite controlar la resolución de dependencias del espacio de trabajo para las dependencias de este repositorio. Por ejemplo, una entrada `"@foo": "@bar"` declara que, en cualquier momento en que este repositorio dependa de `@foo` (como una dependencia de `@foo//some:target`), en realidad debería resolver esa dependencia dentro de `@bar` declarado de forma global (`@bar//some:target`). Este atributo _no_ se admite en el contexto de `MODULE.bazel` (cuando se invoca una regla de repositorio dentro de la función de implementación de una extensión de módulo).

shallow_since Cadena; opcional

Es una fecha opcional, no posterior a la confirmación especificada. El argumento no se permite si se especifica una etiqueta o rama (que siempre se puede clonar con --depth=1). Establecer una fecha cercana a la confirmación especificada puede permitir una clonación superficial del repositorio, incluso si el servidor no admite recuperaciones superficiales de confirmaciones arbitrarias. Debido a errores en la implementación de --shallow-since de Git, no se recomienda usar este atributo, ya que puede provocar errores de recuperación.

strip_prefix Cadena; opcional

Es un prefijo de directorio que se quita de los archivos extraídos.

tag Cadena; opcional

etiqueta en el repositorio remoto que se extrajo. Se debe especificar exactamente una de las opciones: rama, etiqueta o confirmación.

verbose Booleano; opcional
workspace_file Etiqueta: Opcional

Es el archivo que se usará como archivo `WORKSPACE` para este repositorio. Se puede especificar `workspace_file` o `workspace_file_content`, o ninguno, pero no ambos.

workspace_file_content Cadena; opcional

Es el contenido del archivo WORKSPACE de este repositorio. Se puede especificar `workspace_file` o `workspace_file_content`, o ninguno, pero no ambos.