「install JS Dependencies」ステップでのテーマリントの問題

[package.json](https://github.com/discourse/discourse-theme-skeleton/blob/main/package.json) を最新の discourse-theme-skeleton/package.json at main · discourse/discourse-theme-skeleton · GitHub からコピーしました。

それほど大きくありません。

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

ローカルで Right Stuff を実行しようとすると、リンティングは機能しますが、GitHub では次のようになります。

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.

そして、これは「JS 依存関係のインストール」ステップで発生しており、私が何かをしたことが原因とは考えにくいのですが?

私のコードはこちらです: GitHub - pfaffman/discourse-custom-homepage-for-groups: Discourse theme component to change home page based on user's primary group

「いいね!」 1

FWIW、これが問題のステップのように見えますか?
Yarnはそもそも実行されるべきではないのでは?
(追伸:リポジトリの更新に15分かかったのに、メタの問題で何時間もかかるのは大好きですよね :sweat_smile:

これがあなたの問題です。

リポジトリから yarn.lock ファイルを削除してください。ただし、pnpm-lock.yaml ファイルは残し(更新も!)、そのままにしておいてください。

ボーナスポイント :sports_medal: できれば、これはPRであるべきでした。そうすれば、メインブランチでCIが失敗することはありません。

「いいね!」 2

その通りです。それを実行するようにし始めていますが、まだ自動化されていません。約30%の確率で実行できています。:slight_smile:


これで、次のようになります。

Run pnpm install --frozen-lockfile
 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  ロックファイルがフリーズされた状態でインストールを続行できません。「settings.autoInstallPeers」の現在の設定は、ロックファイル内の値と一致しません。

ロックファイルを「pnpm install --no-frozen-lockfile」で更新してください。

それで、指示されたとおりに実行したところ、次のようになりました。

Run bundle install
Bundlerをrootで実行しないでください。バンドルをrootとしてインストールすると、このマシン上のすべての非rootユーザーでこのアプリケーションが破損します。
Gemfileが見つかりませんでした

しかし、次のように実行すると:

 (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

そして、彼らのリポジトリは最新であることを確認しました。

ほら?そして、私が無責任にメインブランチで作業していることを思い出させてさえくれます。

pnpm-lock ファイルが古いだけだと思われます… ディレクトリでインストールを実行してください。

しかし、pnpm install --no-frozen-lockfile を実行して新しいロックファイルを使用したところ、githubからbundlerのエラーが発生しました。discourse-theme-skeleton のものを使用できるはずですよね?

Gemfileを追加してください

「いいね!」 1

待って。Gemfile は ruby 用だよね?

でもここ:

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/

それが必要なものだよね? stylelint.config.mjs が古くなっていたから、それはそれで何かある。

とにかく、まだこうなってる。

 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

推測だけど、CI スクリプトで必要とされているから、どんな仕様でも使えるんじゃないかな。