View Issue Details

IDProjectCategoryView StatusLast Update
0018450phplist applicationAll Otherpublic31-01-17 21:34
Reportersamtuke 
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version3.3.0 
Target VersionFixed in Version3.3.0 
Summary0018450: Disallow upgrade to 3.3 if minimum PHP version not met
DescriptionphpList 3.3 requires a newer version of PHP than 3.2.6. To prevent users upgrading phpList, and their database, without meeting the minimum system requirements (and encountering fatal errors), check the version of PHP currently running before the upgrade starts and disallow the procedure if necessary.
TagsNo tags attached.

Activities

gingerling

03-01-17 09:40

manager   ~0058579

changed 3.2.7 to 3.3 in line with new roadmap

michiel

03-01-17 13:40

manager   ~0058580

Interesting. I never thought about blocking upgrade when the PHP version is not correct. Currently it will warn you when the version is not correct, but that's it.

THis is web software, not desktop. WHen the code is in place, it has already been upgraded, and there's no going back. In that case blocking upgrade of the DB would be counter intuitive to me.

gingerling

03-01-17 15:15

manager   ~0058581

good point, perhaps we should file this under the project to make a one click update feature? If no one disagrees i will do that.

duncanc

03-01-17 15:32

developer   ~0058582

Last edited: 03-01-17 15:38

View 2 revisions

This idea was suggested because, a few weeks ago, it seemed that php 5.6 was going to be the minimum required version of php. I don't know whether that is still the case as there are is now a file php_compat.php and a directory random_compat that might be avoiding that restriction.

If 5.6 really is going to be the minimum then we need to understand when and how phplist would fail when using an earlier version. Possibly even trying to access the index page would fail.

gingerling

03-01-17 15:44

manager   ~0058583

Last edited: 03-01-17 15:45

View 4 revisions

Hi Duncan, I have reviewed the email discussion about PHP version and am looking at how we can be clearer about PHP versions over the coming releases, I agree there is an issue here and so I have marked this as a priority task. Do you have any ideas about M's noted problem though? The problem we have is that the upgrade process is like:

Copy config
Replace all phpList files with new version using ftp
Log in
Update database if needed

ie: by the time they have shown intent to upgrade the files are already replaced, so if they then got an error, they would actually need to downgrade. I guess it's different with the auto-installers though. I am not sure how we can get around this other than documenting better. We could have a "dependency check" page / button or something? And suggest people use it before they upgrade?

duncanc

04-01-17 11:47

developer   ~0058586

What, if anything, to do depends on whether the version of php is a hard requirement or just a recommendation.

michiel

04-01-17 21:22

manager   ~0058587

I remember I used a tool to generate the list on https://resources.phplist.com/system/start

but now I can't find it any more. Duncan, do you remember what it was?

I'll keep searching. It would be useful to use something like that to figure out where the dependencies are.

michiel

04-01-17 21:29

manager   ~0058588

I think it was this one https://github.com/glenscott/php-dependencies

michiel

04-01-17 21:41

manager   ~0058589

Ah, I just ran it, but it only reports on PHP modules, not on the version of Core required.

duncanc

05-01-17 11:45

developer   ~0058595

This package looks useful http://php5.laurent-laville.org/compatinfo/

I don't fully understand its output but it does seem to do a lot of analysis. Attached is the output from analysing phplist 3.2.6.

duncanc

05-01-17 11:45

developer  

phpcompat.out (131,881 bytes)

michiel

05-01-17 13:16

manager   ~0058596

Wow, that's brilliant. Looks like we're ok.

I will try to add this to the Travis-CI tests.

Interesting is this one:

    function_exists(cli_set_process_title) 1 standard 5.5.0 5.5.0

michiel

31-01-17 21:34

manager   ~0058704

I've decided to do the following:

PHP < 5.3 -> error showing "please upgrade PHP".

We can change that with each release.

I've also added "phpList older than 2 years" -> Error showing "Please upgrade phpList". This will mean we have to release at least once every two years. That seems achievable.