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 los cambios incompatibles.
Bazel está evolucionando. Las versiones secundarias que se lanzan como parte de una versión principal LTS son totalmente compatibles con versiones anteriores. Los cambios entre las versiones LTS principales pueden contener cambios incompatibles que requieren cierto esfuerzo de migración. Para obtener más información sobre cómo funciona la cadencia de versiones de Bazel, consulta Anuncio de las versiones de asistencia a largo plazo (LTS) de Bazel.
Resumen
- Se recomienda usar marcas
--incompatible_*
para los cambios que generen interrupciones. - Para cada marca
--incompatible_*
, un problema de GitHub explica el cambio en el comportamiento y tiene como objetivo proporcionar una receta de migración. - Las APIs y el comportamiento protegidos por una marca
--experimental_*
pueden cambiar en cualquier momento. - Nunca ejecutes compilaciones de producción con las marcas
--experimental_*
o--incompatible_*
.
Cómo cumplir con esta política
- Para usuarios de Bazel: Cómo actualizar Bazel
- Para colaboradores: Prácticas recomendadas para cambios incompatibles
- Para los administradores de versiones: cómo actualizar las etiquetas de problemas y la versión
¿Qué es la funcionalidad estable?
En general, las APIs o los comportamientos sin marcas --experimental_...
se consideran funciones estables y compatibles en Bazel.
Esto incluye lo siguiente:
- Lenguaje y APIs de Starlark
- Reglas incluidas en Bazel
- APIs de Bazel, como las APIs de Remote Execution o el Build Event Protocol
- Marcas y su semántica
Cambios incompatibles y recetas de migración
Para cada cambio incompatible en una versión nueva, el equipo de Bazel tiene como objetivo proporcionar una receta de migración que te ayude a actualizar tu código (archivos BUILD
y .bzl
, así como cualquier uso de Bazel en secuencias de comandos, uso de la API de Bazel, etcétera).
Los cambios incompatibles deben tener una marca --incompatible_*
asociada y un problema de GitHub correspondiente.
Cómo comunicar cambios incompatibles
La principal fuente de información sobre los cambios incompatibles son los problemas de GitHub marcados con la etiqueta"incompatible-change".
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 la migración con Bazel en HEAD (y, por lo tanto, también con la próxima versión continua de Bazel), se debe marcar con la etiqueta migration-ready
. El problema de cambio incompatible se cierra cuando se invierte la marca incompatible en HEAD.