ec-cube icon indicating copy to clipboard operation
ec-cube copied to clipboard

EC-CUBE 4.2 Roadmap

Open chihiro-adachi opened this issue 4 years ago • 19 comments

4.2のリリース内容・計画のまとめや目安箱Issueです。

基本方針

メジャーバージョンとして以下の方針で開発を行います。

  1. Symfony 5.4 へのアップデート / PHP 8 対応
  2. 既存プラグイン/デザインテンプレートとの互換性を「ある程度」考慮した機能追加
  3. 不具合改修および機能改善

開発スケジュール

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にぜひコメントください。

chihiro-adachi avatar Apr 18 '22 06:04 chihiro-adachi

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

chihiro-adachi avatar Apr 18 '22 07:04 chihiro-adachi

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

chihiro-adachi avatar Apr 18 '22 07:04 chihiro-adachi

TODO:js/cssフレームワークのサポート状況調べる

chihiro-adachi avatar Apr 18 '22 07:04 chihiro-adachi

サーバサイドのシステム要件、まとめるとこんな感じでしょうか(案)。

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

chihiro-adachi avatar Apr 18 '22 08:04 chihiro-adachi

MySQL8 で utf8mb4 を使用するためには以下の対応が必要そうです https://github.com/EC-CUBE/ec-cube/pull/4796

nanasess avatar Apr 18 '22 08:04 nanasess

ご意見・ご要望等お待ちしております。 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 を返却する。参照元のファイルはあるが、リサイズファイルがない場合、最適化されたファイルが有る場合など、場合分けをして最適なファイルをチョイスする。

watarukashii avatar Apr 19 '22 02:04 watarukashii

連投失礼します。

不具合改修および機能改善

からですが、現状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 avatar Apr 19 '22 06:04 watarukashii

@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は棚卸ししていきますね。

chihiro-adachi avatar Apr 20 '22 05:04 chihiro-adachi

プラグインの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

taguchimasahiro avatar Jun 10 '22 04:06 taguchimasahiro

互換性に関する情報

以下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

chihiro-adachi avatar Aug 01 '22 22:08 chihiro-adachi

互換性に関する情報

以下PRで、パスワードの文字長・文字種が従来から変更されました。 https://github.com/EC-CUBE/ec-cube/pull/5474

旧バージョンから移行を行う場合、顧客へのご案内等留意してください。

chihiro-adachi avatar Aug 01 '22 23:08 chihiro-adachi

互換性に関する情報

会員登録済みのメールアドレスかどうか判別が可能 は修正を取り下げました。

PR:https://github.com/EC-CUBE/ec-cube/pull/5460

詳細はこちらをご確認ください。 https://github.com/EC-CUBE/ec-cube/issues/5279#issuecomment-1191180175

chihiro-adachi avatar Aug 05 '22 07:08 chihiro-adachi

リリースバージョンの変更のお知らせ

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版パッケージバージョンになります

chihiro-adachi avatar Aug 05 '22 08:08 chihiro-adachi

互換性に関する情報

以下PRにて、htmlタグの変更を行っています。 https://github.com/EC-CUBE/ec-cube/pull/5490

プラグインでページへのコンテンツ差し込みに影響がある可能性があります。

chihiro-adachi avatar Aug 08 '22 07:08 chihiro-adachi

互換性に関する情報

以下PRにて、fontawesome 4 → fontawesome 5に更新されました。

https://github.com/EC-CUBE/ec-cube/pull/5557

プラグインで、fontawesome 4を利用している場合影響がある可能性があります。

chihiro-adachi avatar Aug 24 '22 09:08 chihiro-adachi

リリーススケジュールの変更のお知らせ

バグバウンティにより、多数の不具合のご報告、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版パッケージバージョンになります

chihiro-adachi avatar Sep 05 '22 04:09 chihiro-adachi

リリース日を更新しました。

RC:2022年9月21日
正式版:2022年9月28日

chihiro-adachi avatar Sep 21 '22 05:09 chihiro-adachi

互換性に関する情報

以下PRにて、ファイル管理でアップロード可能なファイル名が限定されました。

https://github.com/EC-CUBE/ec-cube/pull/5760

chihiro-adachi avatar Sep 21 '22 05:09 chihiro-adachi

互換性に関する情報

以下PRにて、GDが必須ライブラリとして追加されます。 https://github.com/EC-CUBE/ec-cube/pull/5772

chihiro-adachi avatar Sep 22 '22 01:09 chihiro-adachi

互換性に関する情報

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

chihiro-adachi avatar Sep 27 '22 09:09 chihiro-adachi

4.2.0のリリースタグを打ちました。 https://github.com/EC-CUBE/ec-cube/releases/tag/4.2.0

chihiro-adachi avatar Sep 28 '22 07:09 chihiro-adachi