Alejandría

Busca en Alejandría

Herramientas

Nyx

Automatiza versiones y notas de publicación a partir del historial y las reglas del proyecto.

01

En pocas palabras

Automatiza versiones y notas de publicación a partir del historial y las reglas del proyecto.

Qué problema resuelve

Versionado manual inconsistente y releases repetitivas con información incompleta.

Cuándo utilizarlo

CI/CD con convenciones de commits. Ejemplo: calcular el siguiente número de versión.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

En el Radar compartido: Trial (valoración de la edición aportada).

Cómo funciona

Analiza historial y configuración para inferir cambios y generar información de release. Puede aplicar convenciones como Conventional Commits en distintos ecosistemas.

Ejemplo de uso

Definir cómo cambios fix, feat e incompatibles afectan la versión. La pipeline propone el resultado y las notas antes de publicar artefactos y etiquetas.

Del commit a la versión

Con Conventional Commits cada mensaje declara el tipo de cambio, y Nyx calcula la siguiente versión semántica:

Commit Efecto en la versión 1.4.2
fix(pagos): redondeo de intereses 1.4.3 (patch)
feat(solicitudes): carga de cédula por foto 1.5.0 (minor)
feat!: elimina el endpoint v1 de consultas 2.0.0 (major)
chore: actualiza dependencias de CI Sin release

El pie BREAKING CHANGE: en el cuerpo del commit también marca un cambio incompatible.

Comandos y fases

Comando Qué hace
infer Lee el historial y calcula la versión, sin modificar nada
make Genera artefactos locales, como el changelog
mark Crea el commit, la etiqueta y hace push
publish Publica la release en GitHub o GitLab

Cada comando ejecuta los anteriores que necesite, y el modo dry run permite ver el resultado sin efectos. Está disponible como CLI, plugin de Gradle y GitHub Action, por lo que no depende del lenguaje del proyecto.

Configuración

La configuración vive en .nyx.yaml (o JSON) e incluye presets para empezar rápido. Los release types definen reglas distintas por rama: versiones definitivas en main, prereleases en ramas de integración (1.5.0-rc.3), versiones internas con metadatos en ramas de feature. Revisa la referencia de configuración para la versión que instales.

Nyx frente a alternativas

Herramienta Encaja cuando
semantic-release Ecosistema Node, gran cantidad de plugins
release-please Flujo basado en un PR de release que se revisa y se fusiona
Changesets Monorepos JS donde cada PR declara explícitamente su cambio
Nyx Proyectos políglotas o JVM, configuración declarativa y varias ramas

Buenas prácticas

  • Valida el formato de los mensajes con un hook commit-msg (pre-commit hooks) o en el PR.
  • Con squash merge, el título del PR se convierte en el commit: valida el título.
  • Clona con historial completo en CI (fetch-depth: 0); con un clon superficial no se puede inferir la versión.

Criterios de implementación

Probar primero en modo de inspección y asegurar acceso al historial necesario. Automatizar versiones no resuelve integraciones tardías ni conflictos de ramas prolongadas.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.