Skip to content

fix(core): migra tag prerelease de dev a alpha#87

Merged
MisaelMa merged 1 commit into
devfrom
fix/dev-alpha-tag-migration
Apr 22, 2026
Merged

fix(core): migra tag prerelease de dev a alpha#87
MisaelMa merged 1 commit into
devfrom
fix/dev-alpha-tag-migration

Conversation

@MisaelMa
Copy link
Copy Markdown
Owner

Contexto

El CI bloquea el PR dev → beta con:

ERROR: Version 4.0.14-dev.5 in package @cfdi/transform is higher than locked
version 4.0.14-beta.0.

Razón: SemVer ordena los tags de prerelease alfabéticamente. dev > beta, por lo que 4.0.14-dev.5 > 4.0.14-beta.0 y Rush trata la promoción como una degradación y aborta.

Solución

La rama dev sigue existiendo como rama git, pero pasa a publicar en npm con tag alpha (no dev). Así:

alpha < beta < (latest estable)

Rush ya no ve la promoción dev → beta como degradación porque beta > alpha.

Cambios

  • common/scripts/github-actions.js: mapa branchToTag = { dev: 'alpha', beta: 'beta', next: 'next' }. El comando rush version --override-prerelease-id ahora usa el tag mapeado, no el nombre de la rama.
  • common/config/rush/version-policies.json: todos los -dev.N-alpha.N preservando los contadores.
  • packages/**/package.json (16 archivos): mismo renombre.
  • common/scripts/github-actions.test.js (nuevo): test sin dependencias externas, corre con node.

Flujo final

Rama git Tag npm Ejemplo
dev alpha 4.0.14-alpha.5
beta beta 4.0.14-beta.0
main latest 4.0.14

Transiciones que ahora funcionan sin error:

  • feature/X → dev: 4.0.14-alpha.5 → 4.0.14-alpha.6
  • dev → beta: 4.0.14-alpha.5 → 4.0.14-beta.0 ✅ (era el error)
  • fix/Y → beta: 4.0.14-beta.2 → 4.0.14-beta.3
  • beta → main: 4.0.14-beta.3 → 4.0.14

Test plan

  • node common/scripts/github-actions.test.js — 12/12 passed
  • Revisar que al mergear este PR, el CI de feature/X → dev publique con tag alpha
  • Después del merge, reintentar el PR dev → beta original y verificar que no choca

Nota para consumidores

Quien hacía npm install @cfdi/<pkg>@dev debe pasar a @alpha después del próximo release. Las versiones -dev.N ya publicadas en npm no se borran, solo dejan de recibir actualizaciones.

… dev a beta

semver considera "dev > beta" alfabeticamente, por lo que rush bloquea
la promocion 4.0.14-dev.N a 4.0.14-beta.0 al verla como degradacion.

cambios:
- script github-actions.js: mapa rama a tag { dev: alpha, beta, next }
- version-policies.json: -dev.N a -alpha.N (preserva contadores)
- package.json de 16 paquetes: -dev.N a -alpha.N
- test plano sin dependencias (node common/scripts/github-actions.test.js)

nota para consumidores: npm install @cfdi/<pkg>@dev pasa a @Alpha
@MisaelMa MisaelMa changed the title fix(publish): migra tag prerelease de dev a alpha fix(core): migra tag prerelease de dev a alpha Apr 22, 2026
@MisaelMa MisaelMa added bug Something isn't working core config all config config labels Apr 22, 2026
@MisaelMa MisaelMa merged commit 3f727c9 into dev Apr 22, 2026
11 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working config config core config all

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant