Problema con theme lint en el paso "install JS Dependencies”

Copié [package.json](https://github.com/discourse/discourse-theme-skeleton/blob/main/package.json) de la última versión de discourse-theme-skeleton/package.json at main · discourse/discourse-theme-skeleton · GitHub

No es muy grande:

{
private: true,
devDependencies: {
@discourse/lint-configs: "2.21.0",
ember-template-lint: "7.7.0",
eslint: "9.27.0",
prettier: "3.5.3",
stylelint: "16.19.1"
},
engines: {
node: ">= 22",
npm: "please-use-pnpm",
yarn: "please-use-pnpm",
pnpm: "9.x"
},
packageManager: "pnpm@9.15.5"
}

El linting funciona con mis intentos de ejecutar “The Right Stuff” localmente, pero en GitHub, obtengo esto:

Run yarn install --frozen-lockfile
error This project's package.json defines "packageManager": "yarn@pnpm@9.15.5". However the current global version of Yarn is 1.22.22.

Presence of the "packageManager" field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.

Y eso es en el paso “install JS Dependencies”, así que parece que esto no puede ser por algo que yo haya hecho.

Aquí está mi código: GitHub - pfaffman/discourse-custom-homepage-for-groups: Discourse theme component to change home page based on user's primary group

1 me gusta

FWIW, ¿este parece ser el paso problemático?
¿Yarn no debería ejecutarse en absoluto?
(PD: ¿No te encanta cuando te tomas 15 minutos para actualizar un repositorio y luego un problema meta te lleva horas :sweat_smile: )

Este es tu problema:

Elimina tu archivo yarn.lock del repositorio, pero deja (¡y actualiza!) tu archivo pnpm-lock.yaml

Puntos extra :sports_medal: Idealmente, esto debería haber sido un PR para que no tengas CI fallando en tu rama principal.

2 Me gusta

Es cierto. Estoy empezando a intentar recordarlo; simplemente aún no está automatizado. Lo hago aproximadamente el 30% de las veces. :slight_smile:


Ahora tengo esto:

Run pnpm install --frozen-lockfile
 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  No se puede continuar con la instalación congelada. La configuración actual de \"settings.autoInstallPeers\" no coincide con el valor encontrado en el archivo de bloqueo.

Actualiza tu archivo de bloqueo usando \"pnpm install --no-frozen-lockfile\"

Así que hice lo que me dijo, y ahora obtengo:

Run bundle install
No ejecutes Bundler como root. Instalar tu bundle como root romperá esta
aplicación para todos los usuarios no root en esta máquina.
No se pudo localizar Gemfile

Pero cuando hago esto:

 (main *) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ cp ~/src/discourse-repos/discourse-theme-skeleton/pnpm-lock.yaml .
 (main *) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ git add pnpm-lock.yaml
 (main +) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ git commit -m 'su pnpm lock'
[main e195a2e] su pnpm lock
 1 file changed, 1 insertion(+), 1 deletion(-)
 (main) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ git push

y estoy seguro de que su repositorio está actualizado.

¿Ves? E incluso me recuerda que estoy trabajando irresponsablemente en la rama principal.

Supongo que esto es solo un archivo pnpm-lock obsoleto… ejecuta una instalación en el directorio.

Pero cuando ejecuté pnpm install --no-frozen-lockfile y luego usé el nuevo archivo lock, github me dio el error de bundler. Debería poder usar el que está en discourse-theme-skeleton, ¿verdad?

Añadir el Gemfile

1 me gusta

Espera. El Gemfile es para ruby, ¿verdad?

Pero aquí:

pfaffman@noreno:~$ cd src/discourse-repos/discourse-theme-skeleton/
 (main) pfaffman@noreno:~/src/discourse-repos/discourse-theme-skeleton$ cp pnpm-lock.yaml  Gemfile.lock Gemfile package.json stylelint.config.mjs ~/src/pfaffman/discourse-custom-homepage-for-groups/

Eso es lo que necesitamos, ¿verdad? Resulta que stylelint.config.mjs estaba desactualizado, así que eso es algo.

De todos modos, sigo teniendo

 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  No se puede proceder con la instalación congelada. La configuración actual de "settings.autoInstallPeers" no coincide con el valor encontrado en el archivo de bloqueo (lockfile)

Supongo que es para cualquier especificación, es requerido por el script de CI.