Feature Wiki
Tabs
Drop Support for PHP 5
Page Overview
[Hide]1 Reasons to Abandon Feature
The support for PHP 5.x in our unit testing framework PHPUnit ends on February 2, 2018.
Therefore we suggest to abandon the support for PHP 5.x in ILIAS and focus on PHP 7, especially on PHP 7.1 (Migration from PHP 7.0 to PHP 7.1)
Default PHP versions in common OS:
- Ubuntu 16.04 LTS: 7.0.x
- Ubuntu 14.04 LTS: 5.5.x
- Debian 8.7: 5.6.x (stable), PHP 7.0.x (testing/unstable)
- SLES 12: 7.0.x (Initial release of PHP 7) via Module for Web Scripting or SDK
- RHEL/Centos 7.3: 5.4.x default, higher supported via rhscl/scl Repos
2 Technical Information
see above
3 Contact
- Author of the Request: Jansen, Michael [mjansen]
- Maintainer: {Please add your name before applying for an initial workshop or a Jour Fixe meeting.}
- Implementation of the feature is done by: {The maintainer must add the name of the implementing developer.}
4 Funding
- ...
5 Discussion
Use the following discussion section to express your objections against this request or your consent to get rid of this feature.
Schenk, Ralf [rschenk], May 02, 2017: In my opinion we should support php 5.x until end of 2018. Enterprise distributions are still behind, but they are used in large and important ILIAS environments i.E. latest Centos 7.3.1611 (11/2016) comes with php 5.4.x out of the box Ubuntu 14.04 (php 5.5.x) will be supported until April 2019. I would suggest to drop support of php 5.x with Release 5.4.x of ILIAS at end of 2018.
Amstutz, Timon [amstutz], May 04, 2017: I would rather switch to PHP7 with 5.3 and make full use of the new language features. I am aware, that this is a rather developer centered view. In my opinion PHP7 ships with really nice new features that can improve the quality of our work and we should not wait to long before making use of it. We do not force anybody to make a quick update to 5.3 and will support 5.2 for some time also. I therefore do not see an immediate problem with some institutions not beeing able to instantly update on the latest edge version after the release. Note that Ubuntu 16.04 ships with PHP7 (by using the default packet manager).
Schmid, Fabian [fschmid], May 08, 2017: I support the opinion of Timon. The ILIAS development could greatly benefit from new features in PHP 7. In addition, we should not forget that the release of ILIAS 5.3 (around 1.1.2018) already contains PHP 7.1 shortly before the end of active support. The switch to PHP7 has shown that PHP is progressing faster and takes some decisive decisions.
- I think we as developers should provide a little bit more information on the benefits of PHP7 to make it clear that it outweights the burden some administrators may need to take. And besides scalar type declarations there is little that comes to my mind. However I think this is quite a strong point as they will allow us to define internal interfaces more strictly. This will make ILIAS more robust and allows us to potentially find errors earlier in the development process. Anonymous classes may be a second point. What other benefits do you see?
- To get more opinions of the administrators, we may send an email to the admin list to make them aware of this development.
- More important than dropping PHP 5 would be to decide on PHP 7.1 support in my opinion. We should ask developers if they see the need for any funding for this (see PHP 7.1 incompatibilities. Personally I do not see a reason for this. Imo there are no changes that imply a major refactoring like for PHP 7.0. Maybe we are fine by just testing ILIAS 5.3 under PHP 7.1 and get rid of errors during testing phase. But other developers should have a look at this, too.
- Scalar Type Declarations & Return type declarations: The most important feature and missing since the beginning of PHP. many bugs can be prevented by having more type-security. Internal Interfaces and tests are more reliable and eassier to use.
- Exception Hierarchy: Improvements to the different leves of "errors" and the ability to catch them by a central catcher.
- Some time-saving small Features:
- Null coalescing operator
- Spaceship operator
- Multi catch exception handling
- We will try to support PHP 7.1 with 5.3.
- We won't drop PHP 5 for 5.3 but will give up PHP 5 support with 5.4. A final decision will be taken at the next Jour Fixe.
- The TB will ask the ILIAS admins in the admin list about their opinion and when they will change their OS distributions to PHP 7 support.
- The TB will ask the developers if any of them needs funding for supporting PHP 7.1. If we do not get a feedback until the next Jour Fixe, PHP 7.1 will be supported with ILIAS 5.3.
Raimann, Marcel [raimann], May 16, 2017
I think, we should drop PHP 5 with ILIAS 5.3.x and not later! We have Test-Installations like www.ilias.de/test52 with the actual PHP-Version. So, we can't test ILIAS on with different PHP-Versions. If somebody reports a Problem on Mantis and you can't reproduce it on the official Test-System, different developers will not fix it, because they can't reproduce it.
, May 16, 2017
I assume we will see official PHP7 support in all major Distributions (RHEL/Debian) this year. So I think it's quite safe to drop the support end of 2018. But I think there will be some RHEL/CentOS installations running at least till Q4/2020 (EOL for RHEL7, extented support will end 30 June 2024).
Would an ILIAS-LTS version (maybe with a paid subscription) be an option for users who need to stick to PHP5 for the next years? No new features, but bugfixes after the 2 year support term.
Kunkel, Matthias [mkunkel], May 16, 2017: A paid service and an ILIAS LTS could not be offered by the ILIAS society. It would be a commercial service and we would need developers for it to fix bugs. This could only be offered by one of the ILIAS service providers.
, May 19, 2017
I would also suggest dropping the PHP 5 support because of the PHPUnit release cycle. As far as I know the ILIAS community is steadily increasing the number of automated test for the ILIAS codebase, therefore the time required to migrate the tests to newer PHPUnit version increases at the same speed. That is especially a problem with the breaking changes of the major version 6 of PHPUnit.
Speaking for myself, the automated codebase is a very important part of ILIAS. Due to that I highly recommend writing the new test in the current stable release flavor to ensure a solid test base which can be extended in a sustainable way. My personal fear is that the community starts lagging with each release to a point of no return where we need to remove or disable tests due to incompatibility reasons.
I am also aware that some system engineers cannot upgrade their systems right away, but is that really needed? The ILIAS support is not immediately dropped after 5.3 is released. So, there should be no operational problems for the current installations. An alternative would be to buy an LTS support from an ILIAS service provider as mentioned by and Kunkel, Matthias [mkunkel].
Boehringer, David [DavidBoehringer], Neumann, Fred [fneumann] & ; Advisory Council Chairpersons, May 20, 2017
Many community members have supported the work for PHP 7 and ILIAS 5.2. The project was also supported from the Advisory Council. As Advisory Council Chairpersons we see the risk that if ILIAS 5.3 still will support PHP 5, the developers will write less sustainable software code. In addition, we think that if ILIAS 5.3 is tested exclusively on PHP7, we can not officially release it also for PHP 5.
With ILIAS 5.2, there is already a release that supports both versions of PHP. This makes it possible to decouple the transition to PHP7 from a ILIAS update.
Our proposal is therefore:
ILIAS 5.3 supports only PHP 7 and the bugfix support for ILIAS 5.2 will be extended by one year.
This would support system administrators who are currently unable to update their servers, as well as the developers who want to write sustainable and up-to-date software code.
In this way, we see the investments that have been made for PHP7, as sustainable investment.
JourFixe, ILIAS [jourfixe], May 22, 2017: We had a longer discussion about dropping PHP 5.6 support with ILIAS 5.3 and exchanged the different opinions and pros and cons. The product manager decided to continue PHP 5 support with ILIAS 5.3 and to drop PHP 5 support with ILIAS 5.4. Support of PHP 7.1 with ILIAS 5.3 has been accepted.
Bogen, Christian [bogen], May 23, 2017: Too late for to influence the decission but I wanted to document this nonetheless … :) The Universität Stuttgart successfully made the transition to PHP7 with the upgrade to ILIAS 5.2—so we’d be ok with PHP5 support to be dropped ASAP.
Also a thought on those users who supposedly cannot or do not want to transition to PHP7 in the coming months: I’d at least strongly suspect that these are (in may cases) also the ones who have a (very) conservative upgrade policy regarding ILIAS itself, too, ie. they probably won’t even care if PHP7 support it dropped in 2018 because they won’t upgrade to that ILIAS before 2019 (or 2020) either way.
6 Implementation
{The maintainer has to give a description of the final implementation and possible consequences for existing installations.}
Approval
Approved at {date} by {user}.
Last edited: 23. May 2017, 17:07, Bogen, Christian [bogen]