PHP 7.3 is already released and is installed by default on new systems (such as Debian Buster).
We need to identify which dependencies are not fully compatible with it..
Which dependencies are offering new stuffs we need or potentially want to use (e.g: latest RFC for SwiftMailer).
EDIT: support for php7.3 has been officially announced for incoming 1.7.7 version
See http://build.prestashop.com/news/announcing-end-of-support-for-obsolete-php-versions/
2 PRs associated to this issue :
First try because we have issues with Doctrine:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- doctrine/dbal v2.9.2 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- doctrine/dbal v2.9.1 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- doctrine/dbal v2.9.0 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- doctrine/dbal v2.8.1 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- doctrine/dbal v2.8.0 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- doctrine/dbal v2.7.2 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- doctrine/dbal v2.7.1 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- doctrine/dbal v2.7.0 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- doctrine/dbal v2.9.2 requires php ^7.1 -> your PHP version (7.3.2-3+0~20190208150833.31+buster~1.gbp0912bd) overridden by "config.platform.php" version (5.6.0) does not satisfy that requirement.
- Installation request for doctrine/dbal ^2.7 -> satisfiable by doctrine/dbal[v2.7.0, v2.7.1, v2.7.2, v2.8.0, v2.8.1, v2.9.0, v2.9.1, v2.9.2].```
Hello,
Is that mean the 1.7.5 version will not work with PHP 7.3 ?
My Ubuntu server propose me to update my PHP version to 7.3 and I don't want to mess up my actual PS 1.7.5.1 shop.
Thanks for the details (I couldn't find any info about the subject)
Hello,
Is that mean the 1.7.5 version will not work with PHP 7.3 ?
My Ubuntu server propose me to update my PHP version to 7.3 and I don't want to mess up my actual PS 1.7.5.1 shop.
Thanks for the details (I couldn't find any info about the subject)
Yes indeed, PrestaShop v1.7.5 will not work for php7.3 .
However php7.2 is still the standard valid php version to use: php7.1 will be EOL at the end of this year and php7.3 is still fresh, a lot of php applications need update to work with php7.3 . So I advise you to use php7.2 on your Ubuntu server.
Source: http://php.net/supported-versions.php
Edit: the work to make one of the future versions of prestashop (1.7.6 or 1.7.7) is in progress. But 1.7.5 will not be patched to work with php7.3
First try because we have issues with Doctrine:
I think those messages mean the composer.json file in Prestashop has to be updated. There's no problem in Doctrine itself, it's requiring PHP 7.x so it would work with PHP 7.3.
I think those messages mean the composer.json file in Prestashop has to be updated. There's no problem in Doctrine itself, it's requiring PHP 7.x so it would work with PHP 7.3.
Be careful: php7.3 removed/broke several php behaviors possible in php7.1 and php7.2 . The fact that a library requires PHP7.x does not mean it is compatible with php7.3, for each dependency this must be analyzed either by ourselves or by the dependency maintainer (and I'd say, both checks are even better).
For doctrine/dbal here, it's fine (we know this thank to its CI status ) and indeed what PierreRambaud meant is that we need an update of the composer.json . Not a big deal, but we must check thoroughly the impacts of this update.
Yes, the composer.json file needs to be updated but we can't remove the PHP5.6 for now, this is why we can't be compliant with 7.3 for the next release.
As @matks said, we also need to check if nothing's broken, when you need the latest Symfony patch added BC breaks, we must be careful -_-
That's what I was guessing. Dependencies have been frozen for some time because of that requirement but PHP5.6 has already reached EOL. I hope it's dropped soon if not already.
Thanks.
Dev dependencies are no longer maintained due to PHP7.1+ requirements. For example if I use phpunit & codecoverage:
Generating code coverage report in HTML format ...count(): Parameter must be an array or an object that implements Countable
As discussed today, we're going to enable PS to work php7.3 on develop
(milestone 1.7.7) branch. This means dropping php5.6 support as we have incompatible dependencies requirements between 5.6 and 7.3 .
Todo:
Do we have a list of dependencies dropping support of PHP 5.6?
I just realized we'll have to handle compatibility with both core and native modules 馃槶
Of course, but doesn't mean a module can't be compatible with older PS versions or PHP versions :)
The upgrade path from PS 1.6 to 1.7 would be much easier if support for PHP 7.3 was also added to 1.6 - as now if you want to upgrade to PS 1.7 you might have to upgrade your linux distro to get a newer PHP version, and then suddenly you are on PHP 7.3, (with PHP 7.0 as an only partially supported out of the box alternative on Debian 10 buster, there are issues with mysql connectivity). This upgrade path issue will only get worse if newer versions of PHP is not getting support on the PS 1.6 branch. To run 1-click update PS 1.6 to 1.7 you must also have both PS 1.6 and 1.7 supporting the PHP version you are running at the time you are doing the upgrade.
The upgrade path from PS 1.6 to 1.7 would be much easier if support for PHP 7.3 was also added to 1.6 - as now if you want to upgrade to PS 1.7 you might have to upgrade your linux distro to get a newer PHP version, and then suddenly you are on PHP 7.3, (with PHP 7.0 as an only partially supported out of the box alternative on Debian 10 buster, there are issues with mysql connectivity). This upgrade path issue will only get worse if newer versions of PHP is not getting support on the PS 1.6 branch. To run 1-click update PS 1.6 to 1.7 you must also have both PS 1.6 and 1.7 supporting the PHP version you are running at the time you are doing the upgrade.
I think one way to solve this would be to first perform an upgrade to an earlier version of 1.7 (such as PS 1.7.5) then upgrade the php version.
If I'm not wrong (better check that), last PS 1.6.1 version was compatible with php 7.1 . PS 1.7.7 will have a php range compatibility from php 7.1 to php 7.3 to php 7.1 will be a shared compatible version.
This upgrade path issue will only get worse if newer versions of PHP is not getting support on the PS 1.6 branch.
I'm sorry this is not going to happen. PS 1.6 is old and gone for good now, it's time to let go 馃槃we can't keep working on the past. The world is moving, the web development world is moving even faster, it's really time to upgrade.
It's not going to happen ... on this repository, at least. You might get a php7.2-compliant 1.6 version from https://github.com/PrestaShop/PrestaShop-1.6 (see the details about this repository on http://build.prestashop.com/news/1.6.1.x-what-s-next/). But this would be a "community-driven" version, not an official PS 1.6 version.
@matks
I don't think you can 1-click upgrade to an older version of PS 1.7?
PHP 7.2 is not good enough for PS 1.6 at this time, because main stream linux distros like Debian ship with PHP 7.3 and limited, not recommended, not default and not complete PHP 7.0 suport (mysql library issues among else). PHP 7.1 is not really an option here, so there is no common platform for PS 1.6 and 1.7 if 1.6 doesn't support PHP 7.3 I think.
It's not long since PS 1.6 was the latest and greatest, and taking into account that PS 1.7 was lacking a lot of features in the start and having no easy upgrade path for a long time, uses have not had that much time to adapt, and especially now with all the new PHP versions and what is supported and what is not is being more and more difficult for ordinary users and small businesses to keep up with.
If the upgrade path from PS 1.6 to 1.7 is not pretty straight forward many users will be stuck on 1.6, and more and more upset about it - and they will be looking for alternatives, I'm afraid.
@eriknuds
So you want a newest OS but still quite old ecommerce platform.
I started my PS stores in 2015 with 1.6. Now just waiting for 1.7.7 to be released in 2020 and I move to this version. And even more - I am aware that my next update will be in 2 years. Hopefully to PS 2.0
Sure, every update is a pain but just think that every time you move to a new version you may implement new ideas and make your shop more competitive.
You seem to misunderstand. I obviously want to upgrade PS. And that is much easier and less risky if both PS 1.6 and 1.7 run on the same PHP version or at least on two PHP versions properly supported on the same OS version.
Hello,
I'm on PHP 7.3. I need to quickly update Prestashop so that it works. Can you please point me to the update file? Thanks!
@Andrewsuares we are doing this in PR https://github.com/PrestaShop/PrestaShop/pull/13761/files but the PR not only ensures compatibility, it also upgrades some outdated dependencies, removes some duplicate dependencies and update the tests to pass php7.3 checks
@matks Any timeline on this. I need to golive this week. Thanks.
@Andrewsuares PS 1.7.7.0 release time is expected to be January/February 2020. We're about to start the feature freeze, and then comes a 1-month long stabilization period, and then comes a 1-month long beta period and finally a Release Candidate will be released that might be the final release if no issue is reported in it.
I think the easiest for you, if you need to deploy this week, is to use php7.2 instead (PS 1.7.5 and 1.7.6 are php7.2-compatible).
Before PrestaShop 1.7.7.0 is released, make sure, all dependencies incl. dev were tested against PHP 7.3. And add this issue to the 1.7.7.0 milestone.
@mvorisek During the Feature Freeze, our QA Team will check support PHP 7.1, 7.2 & 7.3.
Milestone added.
Merged in #13761
Most helpful comment
As discussed today, we're going to enable PS to work php7.3 on
develop
(milestone 1.7.7) branch. This means dropping php5.6 support as we have incompatible dependencies requirements between 5.6 and 7.3 .Todo: