Skip to content

build: pin pnpm version to 9.15.9 (packageManager, engines, CI) - #12

Merged
SabaTech-dev merged 1 commit into
mainfrom
fix/pnpm-version-pin
Aug 31, 2026
Merged

build: pin pnpm version to 9.15.9 (packageManager, engines, CI)#12
SabaTech-dev merged 1 commit into
mainfrom
fix/pnpm-version-pin

Conversation

@SabaTech-dev

Copy link
Copy Markdown
Owner

Incidente

pnpm 11 ejecutado localmente reescribió pnpm-lock.yaml eliminando el bloque overrides. Causa raíz: pnpm.overrides en package.json es la ubicación legacy que pnpm 11 ya no lee (pnpm 10 la deprecó en favor de overrides raíz / pnpm-workspace.yaml). Además CI usaba pnpm/action-setup@v4 con version: 9 (major flotante), así que local y CI podían resolver versiones distintas.

Fix (2 ficheros, sin tocar nada más)

  • package.json: "packageManager": "pnpm@9.15.9" (aplicado por corepack) + "engines": { "pnpm": ">=9 <10" }.
  • .github/workflows/ci-cd.yml: los 3 pasos Install pnpm pasan de version: 9 a version: 9.15.9 explícito.

Nota sobre action-setup@v4: lanza Multiple versions specified solo cuando el input version y el campo packageManager conflictúan (valores distintos). Con ambos en 9.15.9 idénticos el comportamiento es determinista (documentado en docs oficiales del action). Se mantiene el explícito como prefiere el equipo.

Verificación (ejecutada de verdad, en worktree desde origin/main @ 7af9ded)

$ npx -y pnpm@9.15.9 --version
9.15.9
$ npx -y pnpm@9.15.9 install --frozen-lockfile
Done in 3.8s using pnpm v9.15.9   # exit 0
$ git status --porcelain pnpm-lock.yaml
(vacío — lock NO modificado)
$ grep -n overrides pnpm-lock.yaml
7:overrides:   # bloque conservado con las 5 entradas (shell-quote, vite, @appium/logger>lodash, monaco-editor>dompurify, next>sharp)

Known issues / follow-up (fuera de alcance de esta card)

  • Dockerfile instala pnpm@9 flotante (línea RUN npm install -g pnpm@9). No se toca aquí (card prohíbe tocar otros ficheros); recomendable alinear a pnpm@9.15.9 en otra card.
  • Migración estructural a pnpm 10/11 (pnpm.overridesoverrides raíz o pnpm-workspace.yaml) queda como decisión futura; este PR solo elimina el drift de versión.

Card de29e8f8

Incidente: pnpm 11 local reescribio pnpm-lock.yaml eliminando el bloque
overrides (pnpm.overrides de package.json es ubicacion legacy que pnpm 11
ignora), mientras CI usaba 'version: 9' flotante.

- package.json: packageManager pnpm@9.15.9 (corepack) + engines.pnpm >=9 <10
- ci-cd.yml: version explicita 9.15.9 en los 3 pasos pnpm/action-setup@v4
  (action-setup solo lanza 'Multiple versions specified' si version input y
  packageManager CONFLICTUAN; con valores identicos es determinista)

Verificado: npx -y pnpm@9.15.9 install --frozen-lockfile termina sin
modificar pnpm-lock.yaml (porcelain vacio) y conserva el bloque overrides.

Card de29e8f8
@SabaTech-dev
SabaTech-dev merged commit 7a173b9 into main Aug 31, 2026
4 checks passed
@SabaTech-dev
SabaTech-dev deleted the fix/pnpm-version-pin branch August 31, 2026 09:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant