Problema com o lint do tema na etapa “install JS Dependencies”

Copiei [package.json](https://github.com/discourse/discourse-theme-skeleton/blob/main/package.json) do último discourse-theme-skeleton/package.json at main · discourse/discourse-theme-skeleton · GitHub

Não é 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"
}

O linting funciona com minhas tentativas de executar o “Right Stuff” localmente, mas no GitHub, recebo isto:

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 isso está na etapa “install JS Dependencies”, então parece que isso não pode ser por causa de algo que eu fiz?

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

1 curtida

A propósito, este parece ser o passo problemático?
O Yarn não deveria estar rodando de forma alguma?

(PS você não adora quando leva 15 minutos para atualizar um repositório, e depois um meta problema leva horas :sweat_smile: )

Este é o seu problema:

Remova o seu arquivo yarn.lock do repositório, mas deixe (e atualize!) o seu arquivo pnpm-lock.yaml

Pontos bônus :sports_medal: Idealmente, isso deveria ter sido um PR para que você não tenha CI falhando no seu branch principal.

2 curtidas

Isso é verdade. Estou começando a tentar me lembrar de fazer isso; ainda não está automatizado. Estou conseguindo fazer isso cerca de 30% das vezes. :slight_smile:


Agora tenho isso:

Run pnpm install --frozen-lockfile
 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Não é possível prosseguir com a instalação congelada. A configuração atual de \"settings.autoInstallPeers\" não corresponde ao valor encontrado no lockfile

Atualize seu lockfile usando \"pnpm install --no-frozen-lockfile\"

Então fiz o que ele me disse, e agora recebo:

Run bundle install
Não execute o Bundler como root. Instalar seu bundle como root quebrará este
aplicativo para todos os usuários não-root nesta máquina.
Não foi possível localizar o Gemfile

Mas quando eu faço isso:

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

e tenho certeza de que o repositório deles está atualizado.

Viu? E ainda está me lembrando que estou trabalhando irresponsavelmente no branch principal.

Adivinhando que este é apenas um arquivo pnpm-lock desatualizado… execute uma instalação no diretório.

Mas quando eu executei pnpm install --no-frozen-lockfile e então usei o novo arquivo de lock, o github me deu o erro do bundler. Eu deveria ser capaz de usar o que está em discourse-theme-skeleton, certo?

Adicione o Gemfile

1 curtida

Espere. O Gemfile é para ruby, certo?

Mas aqui:

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/

Isso é o que precisamos, certo? Acontece que stylelint.config.mjs estava desatualizado, então isso é algo.

De qualquer forma, ainda tenho

 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Não é possível prosseguir com a instalação congelada. A configuração atual de "settings.autoInstallPeers" não corresponde ao valor encontrado no arquivo de bloqueio

Acho que é para quaisquer especificações, é exigido pelo script de CI.