fix(install): sodium を必須から推奨へ移し config.platform の緩和と整合させる (refs #6940) - #7052
fix(install): sodium を必須から推奨へ移し config.platform の緩和と整合させる (refs #6940)#7052ttokoro20240902 wants to merge 2 commits into
Conversation
インストーラの $requiredModules に 'sodium' が残っており、 sodium 非搭載環境で 「[必須] sodium拡張モジュールが有効になっていません。」という danger を出していた。 一方 composer.json の config.platform には #6874 (ff75e42) で ext-sodium を 宣言済みで、 「sodium 拡張なし環境でも Web API プラグインを導入できるようにする」 という方針が取られている。 コア自体は sodium を一切使わない (src 配下の sodium_* / SODIUM_* の参照は 0 件) ため、 必須表示は方針と矛盾していた。 $recommendedModules へ移し、 sodium 非搭載環境では 「[推奨] sodium拡張モジュールが有効になっていません。」の info 表示に変える。 checkModules() は表示のみでインストールをブロックしないため、 導入可否は変わらない。 refs #6940
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthrough
Changesインストールモジュール分類
Estimated code review effort: 1 (Trivial) | ~3 minutes Merge Risk: ⚪ Minimal · up to The installer now treats sodium as recommended rather than required, changing only the warning category for environments without the extension; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 4.4 #7052 +/- ##
==========================================
- Coverage 77.75% 77.75% -0.01%
==========================================
Files 597 597
Lines 29339 29333 -6
==========================================
- Hits 22814 22807 -7
- Misses 6525 6526 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@ttokoro20240902 InstallController の修正がスコープでしたら、 bcmath の推奨を追加するのを本PRで同時に扱うのはいかがでしょうか? |
レビューでのご提案 (#7052) に対応する。sodium とは分類の理由が逆なので コメントで書き分けた。 - sodium … コアが一切使わない。 一部プラグインのみが要求する - bcmath … コアが 127 箇所 / 29 ファイルで使う (Order.php 17 / PurchaseFlow.php 9 / StockDiffProcessor.php 8 / TaxRuleService.php 6 等の 金額計算) が, nanasess/bcmath-polyfill が同名関数を提供するため 拡張が無くても動作する polyfill は関数を定義するだけで拡張は登録しないので, 正常に動作する環境でも extension_loaded('bcmath') は false を返す。必須にすると polyfill で動いている 環境に danger が出てしまうため推奨に置く。 composer.json への ext-bcmath の宣言は #6940 の項目 2 の範囲なので #7081 で扱う。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
@nanasess ご提案ありがとうございます。推奨に追加しました( コアは bcmath を実際に使っています。 それでも拡張は必須にできません。 ポリフィルは関数を定義するだけで拡張を登録しないので、正常に動作している環境でも なお |
概要
#6940 の項目 3「システム要件が要件ドキュメント / InstallController / composer.json で三者不一致」のうち、
InstallController側の矛盾だけを解消します。インストーラの
$requiredModulesに'sodium'が残っているため、sodium 非搭載環境ではという danger が表示されます。一方
composer.jsonのconfig.platformには #6874(ff75e42403)でext-sodiumが宣言済みで、**「sodium 拡張なし環境でも Web API プラグインを導入できるようにする」**方針が取られています。表示と方針が矛盾している状態です。コア自体は sodium を使っていません(
src/配下のsodium_*/SODIUM_*の参照は 0 件)。sodium を要求するのは一部プラグイン(Web API 等)の依存なので、必須ではなく推奨が実態に合います。変更内容
'sodium'を$requiredModulesから$recommendedModulesへ移し、理由をコメントで残しました。それだけです。checkModules()はaddDanger()/addInfo()で表示するだけでインストールをブロックしません(#6940 で確認済み)。したがって導入可否は変わらず、変わるのは表示の区分と文言のみです。動作確認
コンテナ内で
PHP_INI_SCAN_DIRからdocker-php-ext-sodium.iniだけを除外し、sodium 非搭載環境を再現してcheckModules()を install env で実走しました。その他:
vendor/bin/phpstan analyse src(level 6)… 0 件vendor/bin/rector process --dry-run… 差分ゼロvendor/bin/php-cs-fixer fix… 違反なしInstallControllerTest… 13 tests / 43 assertions green本 PR に含めていないこと
#6940 は 5 項目の複合 Issue で、本 PR はそのうち項目 3 の
InstallController部分のみです。以下は範囲外なので #6940 はクローズせずrefsにしています。doc4.ec-cube.netの要件更新(4.4 追記、GD の見直し、bcmath 追記)※別リポジトリguzzlehttp/guzzleのrequireからの除去ext-pdo/ext-session/ext-phar/ext-fileinfoの宣言追加doctrine/common(ClassUtils1 箇所)の依存削減Refs #6940
Summary by CodeRabbit