Saltar a contenido

Publicar versiones

Las versiones siguen Semantic Versioning. La versión se define en pyproject.toml y se expone en el documento OpenAPI y mediante telegram-me version.

Pasos

  1. Mueve las entradas de Unreleased de CHANGELOG.md a un nuevo encabezado ## [X.Y.Z] - YYYY-MM-DD.
  2. Incrementa version en pyproject.toml y ejecuta uv lock.
  3. Haz commit (Release X.Y.Z) en una rama y abre un pull request: main está protegida y solo acepta cambios mediante pull requests con las comprobaciones superadas. Fusionarlo ya despliega el commit en producción como sha-….
  4. Cuando la ejecución de release de esa fusión en main haya pasado, etiqueta el commit de fusión y sube la etiqueta:

    git tag -a vX.Y.Z -m "X.Y.Z"
    git push origin vX.Y.Z
    

La etiqueta construye y publica las etiquetas de imagen X.Y.Z, X.Y y X en GHCR y Docker Hub, y crea una release de GitHub con la sección del registro de cambios como notas.

Un pull request que cambia el contrato REST o GraphQL de forma incompatible hace fallar el workflow Guards (Cambios incompatibles). Un cambio así necesita una versión mayor: etiqueta el pull request con breaking-change y describe el cambio en Changed de CHANGELOG.md.

Reversión urgente

Si una versión se comporta mal, ejecuta Actions → Deploy con la etiqueta sha-… anterior; consulta Producción → Revertir.