From b64513b862dc61ba20bd279c76d792cd8829aa62 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sat, 12 Sep 2026 22:14:57 +0900 Subject: [PATCH 1/4] =?UTF-8?q?docs:=20npm=20=E3=81=AE=20lockfile=20?= =?UTF-8?q?=E3=82=92=E4=B8=8A=E6=B5=81=E3=81=8C=E8=A7=A3=E6=B1=BA=E3=81=99?= =?UTF-8?q?=E3=82=8B=E7=8A=B6=E6=85=8B=E3=81=B8=E5=90=88=E3=82=8F=E3=81=9B?= =?UTF-8?q?=E3=82=8B=E6=89=8B=E9=A0=86=E3=82=92=E5=AE=9A=E3=82=81=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lockfile は KGP が宣言する npm 依存の解決結果であり、持ち越した解決ではなくその時点で上流が 解決する状態に合わせる。kotlinUpgradeYarnLock は保存済みの lockfile を復元してから走り、build ディレクトリにも前回の解決が残るため、双方を消してから作り直す。ファイルが無い状態からの生成は Windows では CRLF になるため、LF への正規化まで手順に含める。 Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index f983cda..66a4f69 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -31,6 +31,9 @@ 作業ツリーに未コミットの変更があるときは、切り替える前に扱いを確認する - コミットは変更の意味合い毎に分割する - ライブラリの版を変える必要があるときは、先に提案する +- npm の lockfile は上流が解決する状態に合わせる。更新は両ビルドの `kotlin-js-store/yarn.lock` と + `build/js` / `build/wasm` のロックを消してから `kotlinUpgradeYarnLock` を実行し、生成物を LF へ正規化する。 + 消さないとレンジを満たしている解決が残り、版は動かない - CI ワークフローを変更したら、push する前にローカルで検証する(YAML のパース・`run` スクリプトの空撃ち・判定の期待値) - 変更後はファイル名・コメント・資料まで整合させる。変更量を抑える表面的な追記より全体の整合性を優先する From 5cc9e07aa17b56b016d678aae0821f4fa21fa594 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sat, 12 Sep 2026 22:14:57 +0900 Subject: [PATCH 2/4] =?UTF-8?q?ci:=20npm=20alerts=20=E3=81=AE=E6=8D=8C?= =?UTF-8?q?=E3=81=8D=E6=96=B9=E3=82=92=20lockfile=20=E3=81=AE=E4=BD=9C?= =?UTF-8?q?=E3=82=8A=E7=9B=B4=E3=81=97=E5=89=8D=E6=8F=90=E3=81=B8=E6=8F=83?= =?UTF-8?q?=E3=81=88=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit レンジ内に修正版があるものは通常の更新と同じ操作で追随できるため、alert 固有の手当ては持たせず 手順は CLAUDE.md を参照する。レンジ外のものは dismiss して上流の追随を待ち、resolutions による 上書きは重大な脆弱性に上流が追随しないときだけの例外として位置付ける。 Co-Authored-By: Claude Opus 5 --- .github/dependabot.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2de6f83..33e1b8d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,12 +8,13 @@ # npm(kotlin-js-store/yarn.lock)は version updates の対象に含めない。lockfile は KGP が # JS/wasm テストランナー用に生成する成果物であり、宣言元の package.json はリポジトリに存在しないため、 # Dependabot の更新 PR は次の kotlinUpgradeYarnLock で失われる。alerts は次の基準で捌く。 -# 1. 上流の宣言レンジ内に修正版がある場合: kotlinUpgradeYarnLock で lockfile を再生成して追随する -# (両ビルドで実行し、生成物は LF へ正規化する) -# 2. レンジ内に修正版が無い場合: tolerable_risk として dismiss する。npm 依存は runtime-api の -# 配布物に入らず(生成 package.json は依存ゼロ、公開先は Maven Central のみ)、 -# 処理する入力も CI 内の自リポジトリのテスト成果物に限られる。resolutions による -# major 跨ぎの強制上書きは、上流が検証していない組み合わせをテストランナーへ注入することになるため採らない +# 1. 上流の宣言レンジ内に修正版がある場合: lockfile を作り直して追随する(手順は CLAUDE.md)。 +# 上流の解決へ合わせる通常の更新と同じ操作であり、alert 固有の手当ては要らない +# 2. レンジ内に修正版が無い場合: tolerable_risk として dismiss し、上流が追随するのを待つ。npm 依存は +# runtime-api の配布物に入らず(生成 package.json は依存ゼロ、公開先は Maven Central のみ)、 +# 処理する入力も CI 内の自リポジトリのテスト成果物に限られる。resolutions による major 跨ぎの +# 強制上書きは、上流が検証していない組み合わせをテストランナーへ注入するため、重大な脆弱性に +# 上流が追随しないときに限って検討する version: 2 updates: # integration-test は独立した Gradle ビルドだが、その settings はルートビルドを composite 参照するため、 From 605062b58e006da279bee2cadaab3e66cd72e30d Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sat, 12 Sep 2026 22:14:57 +0900 Subject: [PATCH 3/4] =?UTF-8?q?ci:=20=E5=85=88=E8=A1=8C=E6=A4=9C=E8=A8=BC?= =?UTF-8?q?=E3=81=AE=20lockfile=20=E4=BD=9C=E3=82=8A=E7=9B=B4=E3=81=97?= =?UTF-8?q?=E3=82=92=E5=8F=96=E3=82=8A=E8=BE=BC=E3=81=BF=E6=99=82=E3=81=A8?= =?UTF-8?q?=E6=8F=83=E3=81=88=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 削除せずに kotlinUpgradeYarnLock を走らせると既存の解決が残り、取り込み時とは別の操作を検証する ことになる。毎回新規のチェックアウトで走るため、消すのは保存側のロックだけでよい。 Co-Authored-By: Claude Opus 5 --- .github/workflows/kotlin-prerelease.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/kotlin-prerelease.yml b/.github/workflows/kotlin-prerelease.yml index dacd61b..9c65a16 100644 --- a/.github/workflows/kotlin-prerelease.yml +++ b/.github/workflows/kotlin-prerelease.yml @@ -86,11 +86,16 @@ jobs: # kotlin-js-store/yarn.lock はカタログの宣言版で解決した npm 依存を固定したものであり、 # 版を差し替えると一致せず kotlinStoreYarnLock が失敗する。マイナー更新では両ビルドの # ロックを作り直して取り込む必要があり、横断ビルドはその作り直しまでを含めて先行検証する - # (ここで作り直した結果は取り込まない)。ビルドと同じ起動に混ぜると作り直しと照合の順序が - # 定まらないため、起動を分ける - - run: ./gradlew kotlinUpgradeYarnLock $KOTLIN_OVERRIDE + # (ここで作り直した結果は取り込まない)。作り直しは取り込み時と同じ手順で行い、毎回新規の + # チェックアウトで走るため消すのは保存側のロックだけでよい。ビルドと同じ起動に混ぜると + # 作り直しと照合の順序が定まらないため、起動を分ける + - run: | + rm kotlin-js-store/yarn.lock + ./gradlew kotlinUpgradeYarnLock $KOTLIN_OVERRIDE - run: ./gradlew build $KOTLIN_OVERRIDE - - run: ./gradlew -p integration-test kotlinUpgradeYarnLock $KOTLIN_OVERRIDE + - run: | + rm integration-test/kotlin-js-store/yarn.lock + ./gradlew -p integration-test kotlinUpgradeYarnLock $KOTLIN_OVERRIDE - run: >- ./gradlew -p integration-test build $KOTLIN_OVERRIDE -x :gradle-integration:test -x :maven-integration:test From c4b200f42b0a68be1fe67f9ffa796a8a05e2965d Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sat, 12 Sep 2026 22:14:57 +0900 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20yarn.lock=20=E3=82=92=E4=B8=8A?= =?UTF-8?q?=E6=B5=81=E3=81=8C=E8=A7=A3=E6=B1=BA=E3=81=99=E3=82=8B=E7=8A=B6?= =?UTF-8?q?=E6=85=8B=E3=81=B8=E4=BD=9C=E3=82=8A=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit js-yaml は 4.3.1 から 4.3.2 へ、ansi-regex は 6.2.2 から 6.3.0 へ上がり、js-yaml 側で GHSA-2883-xcg3-v3hh を解消する。 Co-Authored-By: Claude Opus 5 --- integration-test/kotlin-js-store/yarn.lock | 12 ++++++------ kotlin-js-store/yarn.lock | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/integration-test/kotlin-js-store/yarn.lock b/integration-test/kotlin-js-store/yarn.lock index 8dd7992..32092f6 100644 --- a/integration-test/kotlin-js-store/yarn.lock +++ b/integration-test/kotlin-js-store/yarn.lock @@ -25,9 +25,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + version "6.3.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.3.0.tgz#247c8e7b70a1a43b10ce14c0226fcbf58e8815d5" + integrity sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" @@ -248,9 +248,9 @@ jackspeak@^3.1.2: "@pkgjs/parseargs" "^0.11.0" js-yaml@^4.1.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.1.tgz#01216c001d67f48e2cd560d708c7af21090a3848" - integrity sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ== + version "4.3.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.2.tgz#8e44fb14a2643c59726bb15787b5f1512cb3d3fb" + integrity sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== dependencies: argparse "^2.0.1" diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index 8dd7992..32092f6 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -25,9 +25,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + version "6.3.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.3.0.tgz#247c8e7b70a1a43b10ce14c0226fcbf58e8815d5" + integrity sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" @@ -248,9 +248,9 @@ jackspeak@^3.1.2: "@pkgjs/parseargs" "^0.11.0" js-yaml@^4.1.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.1.tgz#01216c001d67f48e2cd560d708c7af21090a3848" - integrity sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ== + version "4.3.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.2.tgz#8e44fb14a2643c59726bb15787b5f1512cb3d3fb" + integrity sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== dependencies: argparse "^2.0.1"