Repository navigation
fix: Cargo の空白付き wildcard と選択的復元を修正 - #144
Merged
Merged
Conversation
既定の Rust install が lock 全体を更新すると、適用した直接依存と無関係な 若い版が入り、公開日監査の失敗で適用可能な更新まで取り消されていた。 既定の install を更新前の取得元付きパッケージ ID による選択的更新へ統一し、 lock 全体の再解決は --install --refresh-lock で行う。 部分巻き戻しの復元では、巻き戻しで導入された別系列も再解決対象へ加える。 現在の lock に存在する crates.io の ID だけを取得元付きで重複なく指定し、 一時固定を外した際に復元先の版が孤立して削除される問題を防ぐ。 元のマニフェストでの --locked 検証と、外部変更を保護する復元条件は維持する。 停止済み Cargo ルートの保護を選択的更新の計画へ統合し、パスを正規化する。 重複した全体更新用の計画関数と使用されなくなった判定メソッドを削除する。 Tauri と独立した Cargo ワークスペースは、それぞれ確認できたルートで扱う。 仕様監査では Cargo の = 1.*、^ 1.x などの空白付き wildcard の取りこぼしを修正。 演算子・半角スペース・wildcard の形を保持し、不正な空白を新たに受理しない。 偽レジストリと実物 Cargo による復元・選択的更新の回帰テスト、マニフェストの 解析から書き戻しと再実行までのテストを追加し、英日文書と監査記録を更新した。 検証: - 復元と wildcard の回帰テストで修正前の失敗と修正後の成功を確認 - astro-sight impact/review と git diff --check を実施 - 最終の全体検査は make ci と PR の複数 OS の CI で確認する Closes #141
Pre-merge checks:
|
owayo
marked this pull request as ready for review
November 12, 2026 03:03
main に入った公開日監査の最終組合せ解決と補助依存の剪定、および pnpm の 再解決コマンドの修正を取り込む。既定の Cargo install の動作変更は不要に なったため元へ戻し、今回の差分を再現できる二つの取りこぼしへ絞った。 Cargo の空白付き演算子 wildcard を解析し、演算子・空白・形を保持する。 選択的復元では discarded の現在の crates.io ID も取得元付きで一度ずつ 解き直す。主対象の復元先が一時固定を外す際に消える問題を防ぎ、補助依存の 剪定を許す既存条件と、元の場所での --locked 検証は維持する。 復元の回帰テストは主対象を明示し、独立した差し戻し、重複 ID と既に消えた ID の扱いも確認する。英日文書と公式仕様の監査記録を現在の挙動に合わせる。 検証: 取り込み後の make ci が成功(fmt-check、clippy、全テスト)。 astro-sight の差分分析でも API 変更・未使用シンボル・未解決の影響なし。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cargo が受理する
= 1.*、^ 1.x、~ 1.2.Xを読み飛ばしていた問題と、選択的復元で主対象の版が消える問題を修正します。演算子付き wildcard の解析で半角スペースを許可し、更新後も演算子・空白・wildcard の形を保持します。タブや全角空白を新たに受理しません。マニフェストの解析、候補選択、書き戻し、再解析、再実行まで回帰テストで確認します。
選択的復元では、巻き戻しで追加した別系列の版(discarded)も再解決対象に含めます。広い版要求を持つ依存が旧系列を使い続けると、一時固定を外した際に主対象の復元先が不要として削除されていました。現在の lock に存在する crates.io の ID だけを取得元付きで重複なく指定し、独立した差し戻しと無関係な版を保持します。主対象と補助依存の区別、補助依存の剪定条件、元の場所での
--locked検証は維持します。README、エコシステム、復元の説明は英日を更新し、8言語の公式仕様との監査記録を追加しました。既定の Cargo install のコマンドは変更しません。
検証:
make ciが成功(fmt-check / clippy / 2,998件成功・失敗0件・既定の除外1件)astro-sightの最終差分レビューで API 変更・未使用シンボル・未解決の影響なし#141 の最終組合せ解決と補助依存剪定(#145)、pnpm の未対応引数の修正(#143)を取り込み済みです。