cli Gratis Activo

release-please

Para automatizar versionado, changelog y releases de GitHub a partir de Conventional Commits.

Automatiza releases generando una PR de versión a partir de Conventional Commits.

Notas y contexto

Qué es

release-please es una herramienta de automatización de releases mantenida dentro de la organización googleapis (no es un producto oficial de Google). Analiza el historial de commits que siguen la especificación de Conventional Commits y, a partir de ellos, mantiene de forma automática una pull request de release con el changelog y el salto de versión correspondiente. Está escrita principalmente en TypeScript y se distribuye como paquete de npm.

Para qué sirve

  • Calcular automáticamente la siguiente versión (patch, minor o major) según los prefijos de los commits (fix, feat, feat!).
  • Generar y mantener actualizado el CHANGELOG del proyecto.
  • Crear y publicar la GitHub Release con su tag cuando se fusiona la PR de release.
  • Coordinar releases en monorepos mediante configuración de manifiesto.

Cuándo usarlo

  • Cuando tu equipo ya escribe commits con Conventional Commits y quieres eliminar el trabajo manual de versionar y redactar el changelog.
  • Encaja bien con un flujo basado en pull requests: en lugar de publicar en cada merge, mantiene una PR de release que se acumula y solo publica al fusionarla.
  • Soporta múltiples ecosistemas (node, python, java, ruby, php, go, rust, dart, terraform, entre otros), por lo que sirve más allá del mundo JavaScript. Alternativas a considerar: semantic-release (publicación continua) o changesets (popular en monorepos JS/TS).

Ejemplo

Uso básico desde la CLI para generar la PR de release de un repositorio:

npx release-please release-pr --repo-url=owner/repo --token=TU_TOKEN

npx release-please github-release --repo-url=owner/repo --token=TU_TOKEN

La forma recomendada en la práctica es ejecutarlo desde CI con la GitHub Action oficial googleapis/release-please-action, que envuelve estos comandos en un workflow.

Puntos clave

  • Modelo de PR de release con etiquetas de estado (autorelease: pending, tagged, published) en lugar de publicar en cada commit.
  • Soporte amplio de lenguajes y tipos de proyecto, incluidos monorepos vía manifiesto.
  • Se integra de forma natural con GitHub mediante su acción oficial complementaria.

Ten en cuenta

  • Depende estrictamente de que los commits sigan Conventional Commits: si el historial no es disciplinado, los cálculos de versión y el changelog pierden valor.
  • No es un producto oficial de Google pese a vivir en la organización googleapis; se distribuye bajo licencia Apache 2.0.
  • Está orientado a GitHub; para otras plataformas (GitLab, Bitbucket) conviene valorar alternativas como semantic-release.
Volver al directorio
Volver al directorio