Retrocompatibilidad

Informar un problema Ver fuente Por la noche · 7.2 · 7.1 · 7.0 · 6.5 · 6.4

En esta página, se proporciona información sobre cómo controlar la retrocompatibilidad incluida la migración de una versión a otra y cómo comunicar cambios incompatibles.

Bazel está evolucionando. Las versiones secundarias publicadas como parte de un Las versiones principales de LTS son totalmente retrocompatibles. Los cambios entre las versiones principales de LTS pueden contener modificaciones incompatibles que requieren un poco de esfuerzo de migración. Para obtener más información sobre la cadencia de lanzamiento de Bazel funciona, consulta Anuncio de versiones de asistencia a largo plazo (LTS) de Bazel.

Resumen

  1. Se recomienda usar las marcas --incompatible_* para los cambios rotundos.
  2. Por cada marca --incompatible_*, un problema de GitHub explica el cambio de comportamiento y tiene como objetivo proporcionar una receta de migración.
  3. Las APIs y el comportamiento protegidos por una marca --experimental_* pueden cambiar en cualquier momento.
  4. Nunca ejecutes compilaciones de producción con las marcas --experimental_* o --incompatible_*.

Cómo cumplir con esta política

¿Qué es una funcionalidad estable?

En general, las APIs o los comportamientos sin marcas --experimental_... se consideran funciones compatibles y estables en Bazel.

Esto incluye lo siguiente:

  • Lenguaje y APIs de Starlark
  • Reglas agrupadas con Bazel
  • APIs de Bazel, como las APIs de ejecución remota o el protocolo de eventos de compilación
  • Marcas y su semántica

Cambios y recetas de migración incompatibles

Por cada cambio incompatible en una nueva versión, el equipo de Bazel tiene como objetivo proporcionar un receta de migración que te ayuda a actualizar tu código. (archivos BUILD y .bzl, además de cualquier uso de Bazel en secuencias de comandos, el uso de la API de Bazel, etcétera).

Los cambios incompatibles deben tener una marca --incompatible_* asociada y una correspondiente a GitHub.

Cómo comunicar cambios incompatibles

La fuente principal de información sobre cambios incompatibles son los problemas de GitHub está marcado con un "incompatible-change" etiqueta.

Para cada cambio incompatible, el problema especifica lo siguiente:

  • Nombre de la marca que controla el cambio incompatible
  • Descripción de la funcionalidad modificada
  • Receta de migración

Cuando un cambio incompatible esté listo para migrar con Bazel en el encabezado (por lo tanto, también con la próxima versión progresiva de Bazel), debe marcarse con la etiqueta migration-ready. El problema de cambio incompatible se cierra cuando la marca incompatible se gira en el encabezado.