Skip to content

fix: pnpm のロック再解決で未対応の追加引数を渡さない - #143

Merged
owayo merged 1 commit into
mainfrom
fix/issue-142-pnpm-refresh-compatible-options
Nov 12, 2026
Merged

owayo merged 1 commit into
mainfrom
fix/issue-142-pnpm-refresh-compatible-options

Conversation

@owayo

@owayo owayo commented Nov 12, 2026

Copy link
Copy Markdown
Owner

概要

--install --refresh-lock の pnpm update で、機能別の無効化オプションを受理しない版は解決前に失敗し、更新が取り消されます。--no-include-github-actions と --no-changeset を外し、pnpm 10 と 12 が共通で扱える引数で再解決します。

--no-save --lockfile-only --ignore-scripts、workspace 全体の対象指定、age 環境変数、検証後の frozen install は維持します。英語・日本語の利用文書も実際のコマンドに合わせました。

検証

  • mise exec -- cargo fmt --all -- --check: pass
  • mise exec -- cargo clippy --locked --all-targets -- -D warnings: pass
  • mise exec -- cargo test --locked --quiet: 2948 passed、1 ignored
  • standalone と workspace の実行経路で、旧 argv では失敗し修正後に成功する回帰テストを確認
  • pnpm 10.30.1 / 12.16.1 の実バイナリで workspace の再解決に成功。root/member の package.json と workflow は不変、scripts 未実行、changeset と node_modules の生成なし。update.githubActions / update.changeset を有効にした設定でも確認
  • astro-sight review --git: API 変更・未解決の呼び出し元なし

実バイナリの確認は Windows の npm 配布を使用しました。この 12.16.1 は旧引数も受理したため、報告された macOS 環境の引数拒否そのものは再現していません。修正後の共通引数での成功を確認しています。

Closes #142

ロック再解決用の pnpm update に機能別の無効化オプションを常時付けており、
その引数を受理しない pnpm では解決前に失敗して更新が取り消されていた。
--no-include-github-actions と --no-changeset を外し、pnpm 10 と 12 で
使える --no-save --lockfile-only --ignore-scripts に揃える。

通常プロジェクトと workspace の実行経路で引数全体を検証し、age の注入と
検証後の frozen install が維持されることを確認する。英語・日本語の利用文書も
実際のコマンドに合わせる。
@owayo owayo self-assigned this Nov 12, 2026
@coderabbitai

coderabbitai Bot commented Nov 12, 2026

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: be3a6051-5f47-4799-b2a9-f8b42b9df634
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@owayo
owayo merged commit de14c8e into main Nov 12, 2026
8 checks passed
@owayo
owayo deleted the fix/issue-142-pnpm-refresh-compatible-options branch November 12, 2026 02:47
owayo added a commit that referenced this pull request Nov 12, 2026
Cargo が受理する `= 1.*`、`^  1.x`、`~ 1.2.X` を読み飛ばしていた問題と、選択的復元で主対象の版が消える問題を修正します。

演算子付き wildcard の解析で半角スペースを許可し、更新後も演算子・空白・wildcard の形を保持します。タブや全角空白を新たに受理しません。マニフェストの解析、候補選択、書き戻し、再解析、再実行まで回帰テストで確認します。

選択的復元では、巻き戻しで追加した別系列の版(discarded)も再解決対象に含めます。広い版要求を持つ依存が旧系列を使い続けると、一時固定を外した際に主対象の復元先が不要として削除されていました。現在の lock に存在する crates.io の ID だけを取得元付きで重複なく指定し、独立した差し戻しと無関係な版を保持します。主対象と補助依存の区別、補助依存の剪定条件、元の場所での `--locked` 検証は維持します。

README、エコシステム、復元の説明は英日を更新し、8言語の公式仕様との監査記録を追加しました。既定の Cargo install のコマンドは変更しません。

検証:
- 修正前の wildcard の取りこぼしと、実物 Cargo+偽 local-registry による主対象の復元失敗を再現
- wildcard の round-trip と復元の回帰テストに成功。独立した差し戻し、重複 ID、既に消えた ID も確認
- 最新 main を取り込んだ後のローカル `make ci` が成功(fmt-check / clippy / 2,998件成功・失敗0件・既定の除外1件)
- `astro-sight` の最終差分レビューで API 変更・未使用シンボル・未解決の影響なし
- 最終 head の GitHub CI 全7ジョブ成功(Linux・macOS の Quality、配布対象5環境のビルド。Windows はテストを含む)

#141 の最終組合せ解決と補助依存剪定(#145)、pnpm の未対応引数の修正(#143)を取り込み済みです。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: pnpm 12 の lockfile 再解決が未対応の引数で失敗する

1 participant