Skip to content

fix: npmの非推奨版を更新候補から除外 - #8

Merged
owayo merged 1 commit into
mainfrom
fix/issue-7-skip-deprecated-npm-versions
Sep 30, 2026
Merged

owayo merged 1 commit into
mainfrom
fix/issue-7-skip-deprecated-npm-versions

Conversation

@owayo

@owayo owayo commented Sep 30, 2026

Copy link
Copy Markdown
Owner

概要

npm レジストリで非推奨とされた版を更新先に選ぶ問題を修正します。@testing-library/jest-dom の ^6.4.6 に minor 制限を適用した例では、非推奨の 6.10.0 を除外して 6.9.1 を選びます。全版が非推奨の場合は現在版を維持します。

原因と変更

各版のメタデータを読み捨てていたため、バージョン名の接尾辞では表現されない非推奨指定を検出できていませんでした。NpmVersionMetadata で deprecated だけを保持し、npm と同じ JavaScript の真偽値で候補から除外します。空文字列・null・false・ゼロは候補に残し、文字列以外の値でも取得全体を失敗させません。未知のフィールドは引き続き読み捨てます。

候補変換を into_versions に切り出し、既存の latest 判定・公開日時・ソートを維持しました。英語・日本語のエコシステム文書も更新しています。

設計相談では、Tauri 同期も同じ候補を利用できるためアダプタ層での除外を採用しました。全版除外時のスキップ理由は既存の fetch failed: no versions available を維持し、他エコシステムの表示を変える案は見送りました。このスキップは終了コードに影響しません。

検証

  • 修正前に minor 更新と全版非推奨の回帰テストが失敗することを確認
  • npm 関連の19テスト: pass
  • make ci(format / clippy / 全テスト): pass
  • astro-sight review / impact: API変更・未解決の影響なし。履歴上の共変更候補は今回の修正を必要としないため変更なし
  • Codex の差分レビュー: 修正必須の指摘なし。スキップ理由を厳密に固定する任意提案は、共通判定器の既存テストを維持し、npm の回帰テストでは更新しないことを検証する方針としました

回帰テストでは、minor 更新先、全版非推奨、非推奨の現在版からのダウングレード防止、空文字列・null・欠落・空白、非文字列の値、latest タグ、プレリリース、公開日時、ソートを検証します。ネットワークを使わず固定応答で再現します。

Closes #7

各版のメタデータを読み捨てていたため、非推奨の版も更新先に選ばれていた。
deprecated の値だけを保持して npm と同じ真偽値で除外し、既存の latest 判定と公開日時の処理を維持する。
JSONから更新判定までの回帰テストと英日ドキュメントを追加する。
@owayo owayo self-assigned this Sep 30, 2026
@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

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

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 7ffb5867-288e-4797-8b25-e19683646654

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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

Comment @coderabbitai help to get the list of available commands.

@owayo
owayo merged commit 9d5a11e into main Sep 30, 2026
8 checks passed
@owayo
owayo deleted the fix/issue-7-skip-deprecated-npm-versions branch September 30, 2026 16:06
@coderabbitai

coderabbitai Bot commented Sep 30, 2026

Copy link
Copy Markdown

Autopilot could not be updated. Open Coding to check access and billing.

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.

npm: レジストリで deprecated が付いた版を更新先に選ぶ (例: @testing-library/jest-dom 6.10.0)

1 participant