Skip to content

Publicar una version

Jose Luiz Rodrigues edited this page Sep 10, 2026 · 1 revision

Publicar una versión

La publicación es manual y deliberada: no hay workflow que publique solo. Esta página documenta el proceso para quien tiene permisos sobre el paquete.

Integración continua

.github/workflows/ci.yml corre en cada push y cada PR contra main:

paso comando
Lint npm run lint
Test npm run test:coverage
Build npm run build

Corre en Node 22 con caché de npm y sube el reporte de cobertura como artefacto, con retención de 7 días. No publica nada.

Versionado

Versionado Semántico:

cambio versión
Corrección que no altera la API patch
País, documento o función nueva minor
Cambio de contrato o de comportamiento existente major

Un cambio en cómo formatea un país es breaking aunque el tipo no cambie: rompe el output que alguien está mostrando en producción.

El proceso

1. Actualizar el changelog

CHANGELOG.md sigue Keep a Changelog. Movés lo que está en "No publicado" a una sección nueva con el número de versión y la fecha.

2. Verificar en local

npm run lint
npm run test:coverage
npm run build

3. Subir la versión

npm version patch   # o minor, o major

Esto crea el commit y el tag. El script postversion los empuja solo:

"postversion": "git push origin main --follow-tags"

4. Publicar

npm run publish:npm   # solo npm
npm run publish:all   # npm y GitHub Packages

prepublishOnly corre lint, tests y build antes de subir nada. Si algo falla, no se publica.

script qué hace
publish:npm npm publish --access public
publish:gh publica en npm.pkg.github.com
publish:all los dos, en ese orden

El --access public es obligatorio: el paquete tiene scope y npm lo trataría como privado.

5. Verificar

npm view @zeluizr/palta version

Y probá la instalación limpia en un directorio aparte:

mkdir /tmp/palta-check && cd /tmp/palta-check
npm init -y && npm i @zeluizr/palta
node -e "const {br}=require('@zeluizr/palta'); console.log(br.cpf.format('11144477735'))"

Qué se publica

package.json declara "files": ["dist"]. Solo va el build: nada de src/, tests/ ni configuración. .npmignore refuerza lo mismo.

Verificá antes de publicar si tenés dudas:

npm pack --dry-run

Clone this wiki locally