Problemi con theme lint nella fase "install JS Dependencies"

Ho copiato [package.json](https://github.com/discourse/discourse-theme-skeleton/blob/main/package.json) dall’ultimo discourse-theme-skeleton/package.json at main · discourse/discourse-theme-skeleton · GitHub

Non è 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"
}

Il linting funziona con i miei tentativi di eseguire “The Right Stuff” localmente, ma su GitHub ottengo questo:

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.

E questo è nello step “install JS Dependencies”, quindi sembrerebbe che questo non possa essere dovuto a qualcosa che ho fatto?

Ecco il mio codice: GitHub - pfaffman/discourse-custom-homepage-for-groups: Discourse theme component to change home page based on user's primary group

1 Mi Piace

FWIW questo sembra il passaggio problematico?
Yarn non dovrebbe essere in esecuzione in assoluto?
(PS non lo ami quando impieghi 15 minuti per aggiornare un repository, poi un problema meta ti porta via ore :sweat_smile: )

Questo è il tuo problema:

Rimuovi il tuo file yarn.lock dal repository ma lascia (e aggiorna!) il tuo file pnpm-lock.yaml

Punti bonus :sports_medal: Idealmente questa avrebbe dovuto essere una PR in modo da non avere CI fallita sul tuo branch principale.

2 Mi Piace

È vero. Sto iniziando a cercare di ricordarmelo; non è ancora automatizzato. Riesco a farlo circa il 30% delle volte. :slight_smile:


Ora ho questo:

Esegui pnpm install --frozen-lockfile
 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Impossibile procedere con l'installazione congelata. La configurazione corrente "settings.autoInstallPeers" non corrisponde al valore trovato nel lockfile

Aggiorna il tuo lockfile usando "pnpm install --no-frozen-lockfile"

Quindi ho fatto quello che mi ha detto, e ora ottengo:

Esegui bundle install
Non eseguire Bundler come root. L'installazione del tuo bundle come root romperà questa
applicazione per tutti gli utenti non root su questa macchina.
Impossibile trovare Gemfile

Ma quando faccio questo:

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

e sono sicuro che il loro repository sia aggiornato.

Vedi? E mi ricorda persino che sto lavorando in modo irresponsabile sul branch principale.

Suppongo che questo sia solo un file pnpm-lock obsoleto… esegui un’installazione nella directory.

Ma quando ho eseguito pnpm install --no-frozen-lockfile e poi ho usato il nuovo file di blocco, github mi ha dato l’errore del bundler. Dovrei essere in grado di usare quello in discourse-theme-skeleton, giusto?

[citazione=“pfaffman, post:5, topic:368423”]
Could not locate Gemfile

[/citazione]

Aggiungi il Gemfile

1 Mi Piace

Aspetta. Il Gemfile è per ruby, giusto?

Ma qui:

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/

Queste sono le cose di cui abbiamo bisogno, giusto? Si scopre che stylelint.config.mjs non era aggiornato, quindi è qualcosa.

Comunque, ho ancora

 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Non è possibile procedere con l'installazione bloccata. La configurazione corrente di "settings.autoInstallPeers" non corrisponde al valore trovato nel file di blocco

[citazione=“pfaffman, post:9, topic:368423”]
Aspetta. Il Gemfile è per ruby, giusto?

[/citazione]

Immagino che sia per qualsiasi specifica, è richiesto dallo script CI.