Problème avec le lint du thème à l'étape "install JS Dependencies"

J’ai copié [package.json](https://github.com/discourse/discourse-theme-skeleton/blob/main/package.json) depuis le dernier discourse-theme-skeleton/package.json at main · discourse/discourse-theme-skeleton · GitHub

Il n’est pas très grand :

{
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"
}

Le linting fonctionne avec mes tentatives d’exécution de “The Right Stuff” localement, mais sur GitHub, j’obtiens ceci :

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.

Et cela se produit dans l’étape “install JS Dependencies”, donc il semble que cela ne puisse pas être dû à quelque chose que j’ai fait ?

Voici mon code : GitHub - pfaffman/discourse-custom-homepage-for-groups: Discourse theme component to change home page based on user's primary group

1 « J'aime »

Soit dit en passant, cette étape semble être le problème ?

Yarn ne devrait pas s’exécuter du tout ?

(PS, vous n’adorez pas quand vous passez 15 minutes à mettre à jour un dépôt, puis qu’un problème méta vous prend des heures :sweat_smile: )

Voici votre problème :

Supprimez votre fichier yarn.lock du dépôt, mais laissez (et mettez à jour !) votre fichier pnpm-lock.yaml.

Points bonus :sports_medal: Idéalement, cela aurait dû être une PR afin que vous n’ayez pas de CI en échec sur votre branche principale.

2 « J'aime »

C’est vrai. Je commence à essayer de m’en souvenir ; ce n’est pas encore automatisé. J’y arrive environ 30 % du temps. :slight_smile:


Maintenant, j’ai ceci :

Exécuter pnpm install --frozen-lockfile
 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Impossible de continuer avec l'installation gelée. La configuration actuelle de \"settings.autoInstallPeers\" ne correspond pas à la valeur trouvée dans le fichier lockfile.

Mettez à jour votre fichier lockfile en utilisant \"pnpm install --no-frozen-lockfile\"

Alors j’ai fait ce qu’il m’a dit, et maintenant j’obtiens :

Exécuter bundle install
 Ne lancez pas Bundler en tant que root. L'installation de votre bundle en tant que root cassera cette
 application pour tous les utilisateurs non-root sur cette machine.
 Impossible de trouver Gemfile

Mais quand je fais ceci :

 (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 'leur pnpm lock'
[main e195a2e] leur pnpm lock
 1 file changed, 1 insertion(+), 1 deletion(-)
 (main) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ git push

et je suis sûr que leur dépôt est à jour.

Vous voyez ? Et ça me rappelle même que je travaille de manière irresponsable sur la branche principale.

Je suppose qu’il s’agit simplement d’un fichier pnpm-lock obsolète… exécutez une installation dans le répertoire.

Mais quand j’ai exécuté pnpm install --no-frozen-lockfile et que j’ai ensuite utilisé le nouveau fichier de verrouillage, github m’a alors donné l’erreur de bundler. Je devrais pouvoir utiliser celui dans discourse-theme-skeleton, non ?

Ajouter le Gemfile

1 « J'aime »

Attendez. Le Gemfile est pour Ruby, n’est-ce pas ?

Mais ici :

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/

C’est ce dont nous avons besoin, n’est-ce pas ? Il s’avère que stylelint.config.mjs n’était pas à jour, donc c’est quelque chose.

Quoi qu’il en soit, j’ai toujours

 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Cannot proceed with the frozen installation. The current "settings.autoInstallPeers" configuration doesn't match the value found in the lockfile

[citation=“pfaffman, post:9, topic:368423”]
Attends. Le Gemfile est pour Ruby, n’est-ce pas ?

[/citation]

Je suppose que c’est pour toutes les spécifications, c’est requis par le script CI.