EC-CUBE 4.2 Roadmap
4.2のリリース内容・計画のまとめや目安箱Issueです。
基本方針
メジャーバージョンとして以下の方針で開発を行います。
- Symfony 5.4 へのアップデート / PHP 8 対応
- 既存プラグイン/デザインテンプレートとの互換性を「ある程度」考慮した機能追加
- 不具合改修および機能改善
開発スケジュール
PHP7.4のEOLに先立ち、以下のスケジュールで開発を進める予定です。
α版:2022年6月7日 PHP8とSymfony5.4に対応したバージョンになります。 EC-CUBE4.2対応プラグインの動作確認が可能です。
β版:2022年7月4日 機能FIXバージョンになります。 EC-CUBE4.2対応プラグインのテストが可能です。
β版リリースに伴い、プラグインの申請受付を開始いたします。
β2:2022年8月8日 機能FIXバージョンになります。 機能試験が完了したバージョンです。
以降、RCに向け、不具合修正のみ行われます。
RC:2022年9月21日 セキュリティ試験を含めた全試験および不具合修正が完了したバージョンになります。 以降、原則ソースコードの変更は行われません。
正式版:2022年9月28日
主要な対応内容
※EC-CUBE4.2で取り込む予定の改修一覧 https://github.com/EC-CUBE/ec-cube/milestone/47
Issueのマイルストーンの設定は現時点での予定であり、変更となる可能性があります。
互換性についての情報
対応方針
4.2は、4.1と互換性のないバージョンとなります。 ただし、プラグイン拡張等のアーキテクチャは現行を踏襲し、BC Breakの範囲はフレームワークの更新に伴って発生するものにとどめる想定でいます。
上記範囲内で、機能追加や不具合修正を実施する予定です。
データベースに関する影響
- ~データベースの変更(テーブルやカラムの追加・変更)は予定していません。~
- 以下のissue / pull requestにより、テーブル追加・カラム追加が行われます。
- #5382
- #5304
プラグイン等に関する影響
- プラグイン
- 4.0/4.1版と共存することはできません。別プラグインとして制作する必要があります。
- デザインテンプレート
- フロント画面のデザイン変更は予定していません。
- 機能追加や不具合修正に伴うhtmlのDOMの変更が発生します。
Symfony5.4 / PHP8への対応状況
以下のIssue / PRで対応を行っています。
- #5353
各ライブラリ・フレームワークの対応状況は #4579 #4793 も合わせてごらんください。
システム要件
| Middleware | 4.1 | 4.2 |
|---|---|---|
| Apache | 2.4.x | 2.4.x |
| PHP | 7.3 〜 7.4 | 7.4 〜 8.1 |
| PostgreSQL | 9.6.x 〜 14.x | 10.x 〜 14.x |
| MySQL | 5.7.x | 5.7.x 〜 8.0.x |
| Bootstrap | 3、4 | 5.0 |
Feedback
ご意見・ご要望等お待ちしております。 EC-CUBE4.2について、本Issueにぜひコメントください。
PHP/Symfonyのサポート状況まとめ
- 各レンタルサーバについては現時点では8.0まで対応が多い?本年度末には8.1対応もそろってきそう
- REHLの長期サポートはPHP7.4が2029まで。PHP8については不明
- EC-CUBEとしてはPHP7.4〜でシステム要件とするのがよさそう
PHPサポート
https://www.php.net/supported-versions.php
| Version | Security Support Until |
|---|---|
| 7.4 | 28 Nov 2022 |
| 8.0 | 26 Nov 2023 |
| 8.1 | 25 Nov 2024 |
Red Hat Enterprise Linux 8 Application Streams Life Cycle
https://access.redhat.com/support/policy/updates/rhel8-app-streams-life-cycle
| Version | Security Support Until |
|---|---|
| 7.4 | May 2029 |
※PHP8+については不明
Symfony Roadmap
https://symfony.com/releases
| Version | Requires PHP | End of security fixes |
|---|---|---|
| 4.4 | 7.1+ | November 2023 |
| 5.4 | 7.4+ | November 2025 |
| 6.0 | 8.0+ | January 2023 |
| 6.1 | 8.1+ | January 2023 |
Databaseのサポート状況まとめ
- PostgreSQL
- 9.6がEOLのため10〜とする
- MySQL
- 8.0を追加
PostgreSQL
https://www.postgresql.org/support/versioning/
| Version | Current minor | Supported | First Release | Final Release |
|---|---|---|---|---|
| 14 | 14.2 | Yes | September 30, 2021 | November 12, 2026 |
| 13 | 13.6 | Yes | September 24, 2020 | November 13, 2025 |
| 12 | 12.1 | Yes | October 3, 2019 | November 14, 2024 |
| 11 | 11.15 | Yes | October 18, 2018 | November 9, 2023 |
| 10 | 10.2 | Yes | October 5, 2017 | November 10, 2022 |
| 9.6 | 9.6.24 | No | September 29, 2016 | November 11, 2021 |
- 9.6がサポート切れ
- EC-CUBEとしては10か11以上?
- REHLだと12が〜2029までのサポートになる
MySQL
https://www.mysql.com/support/ https://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf
| Version | GA Date | Premier Support End | Extended Support End |
|---|---|---|---|
| MySQL Database 5.7 | Oct 2015 | Oct 2020 | Oct 2023 |
| MySQL Database 8.0 | Apr 2018 | Apr 2023 | Apr 2026 |
- Extended Supportが実質EOL?
- Premier Endの2020以降もリリースは続いているぽい
- https://github.com/mysql/mysql-server/releases/tag/mysql-5.7.37
- MySQL8をシステム要件に入れる必要がある?
Doctine対応状況
- PostgreSQL: 9.4, 13, 14
- MySQL: 5.7, 8.0
https://github.com/doctrine/dbal/actions/runs/2182110288
TODO:js/cssフレームワークのサポート状況調べる
サーバサイドのシステム要件、まとめるとこんな感じでしょうか(案)。
| Middleware | 4.1 | 4.2 |
|---|---|---|
| Apache | 2.4.x | 2.4.x |
| PHP | 7.3 〜 7.4 | 7.4 〜 8.1 |
| PostgreSQL | 9.6.x 〜 14.x | 10.x 〜 14.x |
| MySQL | 5.7.x | 5.7.x 〜 8.0.x |
MySQL8 で utf8mb4 を使用するためには以下の対応が必要そうです https://github.com/EC-CUBE/ec-cube/pull/4796
ご意見・ご要望等お待ちしております。 EC-CUBE4.2(仮)について、本Issueにぜひコメントください。
フィードバック失礼します。ご検討のほどよろしくおねがいします。
■要望
- 画像データの最適化
- 最適化をしない画像ファイルをそのまま上げるとサイト閲覧者は負担がかかるため、減らしたい。スコア向上にもつながる。
■要件
- GD、ImageMagickいずれかが入っているサーバで実行可能とする。
- 管理画面>設定>基本設定で画像最適化の有効・無効ボタンの追加し、有効時に実行できるものとする。(?マークで説明を追加すること)
- 管理画面>コンテンツ管理>画像ファイル最適化の新規メニュを追加する。ここでは一括で最適化を実行できるものとする。
- 画像ファイル数が膨大にあることが予想されるため、バックグラウンド処理 or プログレスバーを設置し分割で実行。
- 一度定義されたかどうかは生成後の命名規則に従って判別する。ex) 00r336t4w.png -> 00r336t4w_resize.png, 00r336t4w_resize_640_640.png , 00r336t4w_resize_320_320.png
- リサイズ対象の画像サイズを定義 PC・SP 商品一覧、商品詳細、お気に入り、カート画面、支払い方法選択画面、TOPページ(おすすめ商品、新着商品、スライダー画像)
- 対象フォルダは、user_data/assets 配下の画像ファイル群、html/upload/save_image 配下の画像ファイル群を対象とする。
- Twigファイルからの最適化された画像ファイルの呼び出し方はdocument に記載する。 ex) getImage('ファイル名', width, height)
- Twigの独自関数を定義する。該当のファイルがあるか、そもそも参照元のファイル自体がない場合は、no_image を返却する。参照元のファイルはあるが、リサイズファイルがない場合、最適化されたファイルが有る場合など、場合分けをして最適なファイルをチョイスする。
連投失礼します。
不具合改修および機能改善
からですが、現状ECCUBEのissueで対応が完了できていているが、残っているものもいくつか散見するため issueを立てた人以外でもクローズできるのであれば一度整理いただくことは可能でしょうか?
- [x] 納品書PDFで複数行になる商品明細がページをまたぐとレイアウトが崩れる #5326
- [x] TemplateEvent::addSnippet()が失敗する #5273
- [ ] skip や incomplete とマークされているテストの精査 #5096
- [x] 無駄なログ出力の抑制 #5082
- [x] Service/OrderHelper のremoveSession() でSESSION_ORDER_IDの削除が重複 #5060
- [x] EC-CUBEのデフォルトの画像をWebP形式に変更 #4896
- [ ] 商品規格表示で、商品詳細画面、商品編集画面の規格表示の並び順が、dtb_class_categoryのrank順で表示されない #4890
- [ ] Google Chromeの最新版(Mac)でpost時のページ遷移ができない。 #4785
- [ ] カートへ追加した時に表示されるモーダル。枠外とボタン、右上の×ボタン以外は反応させたくない。 #4706
- [ ] 画像アップロード可能な拡張子に WebP を追加する #4700
- [x] リリースした 4.0.4 の ログレベルは DEBUG #4668
- [x] 商品/受注/会員管理画面で一覧をソートしたい #4627
- [ ] 定休日管理・カレンダーを4.0系に移植 #4420
- [ ] #4336
- [ ] SCSSのビルドでstyle.css.mapファイルのコンフリクトが多発する #4332
- [ ] CSVのダウンロードで一定以上のレコード数を越えるとダウンロードされない #4336
- [ ] 開発者モードで商品CSV登録を使って商品データの更新を行うとシステムエラーになることがある #4224
- [ ] 軽減税率に合わせた対応のまとめ #4183
- [ ] Safariでdatetimepickerがエラーとなる #4160
- [ ] プラグインのインストールに失敗する問題 #4142
- [ ] eccube:plugin:update でスキーマ更新されない #4065
- [ ] 商品一覧画面で「カートに入れる」ボタンを押下時に規格選択のバリデーションを追加する #4062
- [ ] メンテナンスモード有効時に、デバッグツールバーが動作しない #4032
- [ ] 本体開発用のSlackの公開 #2099
- [ ] composerの更新手順 #2088
- [ ] twigにphp関数の呼び出し #1320
- [ ] 【要望】2系標準から3系標準へのデータ移行のスクリプトが欲しい #2262
- [ ] 3.0.x -> 3.nへのデータ移行 #2455
- [ ] CSS管理機能の実装 #2658
- [ ] CSVアップロード時の削除フラグの対応 #2831
- [ ]
@watarukashii コメントありがとうございます!
https://github.com/EC-CUBE/ec-cube/issues/5356#issuecomment-1101942169 こちらある程度仕様がみえているようであれば、Issue化していただいたほうがよいかもです。
https://github.com/EC-CUBE/ec-cube/issues/5356#issuecomment-1102149203 こちら承知しました。 既存のissueやprは棚卸ししていきますね。
プラグインの4.2対応に関する情報
EC-CUBE 4.2は、EC-CUBE 4.1と互換性のないバージョンとなります。 そのため、4.0/4.1版のプラグインと共存することはできず、別プラグインとして制作していただく必要があります。
EC-CUBE 4.1対応プラグインからEC-CUBE 4.2対応方法は、以下のドキュメントをご確認ください。
4.1から4.2へのマイグレーション
https://doc4.ec-cube.net/update-41-42
メールマガジン管理プラグイン
メールマガジン管理プラグインは4.2対応しています。差分を参考にしていただければと思います。 https://github.com/EC-CUBE/mail-magazine-plugin/compare/4.2
Plugin Fixer
マイグレーションガイドの修正内容をプラグインに適用するツールを公開しています。 使い方は下記リリースノートを参考にしてください。 https://github.com/EC-CUBE/Eccube-Upgrade-Fixer/releases/tag/v0.1.5-eccube-4.2.0-alpha2
互換性に関する情報
以下PRで、ログイン回数の試行制限機能が追加されました。 https://github.com/EC-CUBE/ec-cube/pull/5473#issuecomment-1195174110
この影響によりsecurity.enable_authenticator_managerの設定をfalseに定義している場合動作しなくなります。
プラグイン等で設定を記述している場合はtrueに更新してください。
- security.enable_authenticator_manager: false
+ security.enable_authenticator_manager: true
互換性に関する情報
以下PRで、パスワードの文字長・文字種が従来から変更されました。 https://github.com/EC-CUBE/ec-cube/pull/5474
旧バージョンから移行を行う場合、顧客へのご案内等留意してください。
互換性に関する情報
会員登録済みのメールアドレスかどうか判別が可能 は修正を取り下げました。
PR:https://github.com/EC-CUBE/ec-cube/pull/5460
詳細はこちらをご確認ください。 https://github.com/EC-CUBE/ec-cube/issues/5279#issuecomment-1191180175
リリースバージョンの変更のお知らせ
8月上旬のRC1のリリースについて、当初はバージョン番号「RC1」でのリリースを予定していましたが、セキュリティに関する機能追加を行いました。そのため、バージョン番号を「beta2」としてリリースを行います。
今後のリリース計画に変更はなく、以下のスケジュールで進めます。
- 8月下旬:RC
- 9月中旬:正式版
マイルストーンの変更内容は以下をご確認ください。
before
RC1:2022年8月上旬予定
機能試験および不具合修正が完了したバージョンになります。
RC1以降、原則ソースコードの変更は行われません。
RC2:2022年8月下旬予定
セキュリティ試験を含めた全試験が通ったバージョンになります。
正式版:2022年9月中旬予定
RC2と同等のDL版パッケージバージョンになります。
after
β2:2022年8月8日
機能FIXバージョンになります。
機能試験が完了したバージョンです。
以降、RCに向け、不具合修正のみ行われます。
RC:2022年8月下旬予定
セキュリティ試験を含めた全試験および不具合修正が完了したバージョンになります。
以降、原則ソースコードの変更は行われません。
正式版:2022年9月中旬予定
RCと同等のDL版パッケージバージョンになります
互換性に関する情報
以下PRにて、htmlタグの変更を行っています。 https://github.com/EC-CUBE/ec-cube/pull/5490
プラグインでページへのコンテンツ差し込みに影響がある可能性があります。
互換性に関する情報
以下PRにて、fontawesome 4 → fontawesome 5に更新されました。
https://github.com/EC-CUBE/ec-cube/pull/5557
プラグインで、fontawesome 4を利用している場合影響がある可能性があります。
リリーススケジュールの変更のお知らせ
バグバウンティにより、多数の不具合のご報告、Pull Requestのご提供をいただきました。 当初の予定では9月上旬でのRC版リリースを予定しておりましたが、これらの修正を取り込むことで、安定したバージョン、安心してお使いいただけるバージョンとして4.2をリリースする予定です。
このため、RC版・正式版のリリーススケジュールを以下に変更いたします。
- 9月中旬:RC
- 9月下旬:正式版
マイルストーンの変更内容は以下をご確認ください。
before
RC:2022年8月下旬予定
セキュリティ試験を含めた全試験および不具合修正が完了したバージョンになります。
以降、原則ソースコードの変更は行われません。
正式版:2022年9月中旬予定
RCと同等のDL版パッケージバージョンになります
after
RC:2022年9月中旬予定
セキュリティ試験を含めた全試験および不具合修正が完了したバージョンになります。
以降、原則ソースコードの変更は行われません。
正式版:2022年9月下旬予定
RCと同等のDL版パッケージバージョンになります
リリース日を更新しました。
RC:2022年9月21日
正式版:2022年9月28日
互換性に関する情報
以下PRにて、ファイル管理でアップロード可能なファイル名が限定されました。
https://github.com/EC-CUBE/ec-cube/pull/5760
互換性に関する情報
以下PRにて、GDが必須ライブラリとして追加されます。 https://github.com/EC-CUBE/ec-cube/pull/5772
互換性に関する情報
https://github.com/EC-CUBE/ec-cube/pull/5772 は修正を取り下げました。
PR:https://github.com/EC-CUBE/ec-cube/pull/5821
詳細はこちらをご確認ください。 https://github.com/EC-CUBE/ec-cube/pull/5815
4.2.0のリリースタグを打ちました。 https://github.com/EC-CUBE/ec-cube/releases/tag/4.2.0