With the deprecation of precise, I suggest depooling precise jenkins instances
Bits from {T143349}
------------
In T143349#2683793, @hashar wrote in October 2016:
For CI , we need to keep some Precise instances which are used to run Zend PHP 5.3 tests. That is until MediaWiki 1.23 LTS reaches end of life in May 2017 ([[ https://www.mediawiki.org/wiki/Version_lifecycle | lifecycle ]]).
Instances are:
* integration-slave-precise-1002
* integration-slave-precise-1011
* integration-slave-precise-1012
------------
Summary by hashar in February 2017 at T143349#3024759 (see follow up comments there):
About Zend 5.3 / CI:
Context
==============
Candidates were to use https://github.com/phpenv/phpenv | https://github.com/CHH/phpenv but they are not packaged for Debian, barely maintained and that is a lot of cruft to add to CI. Instead we went splitting jobs on different distributions, the current shards are:
| Distro | PHP Flavor
|--|--
| Precise | Zend 5.3
| Trusty | Zend 5.5
| Jessie | Zend 5.6, Zend 7.0 and HHVM
For Zend 7.0 we use the package from https://deb.sury.org which are co installable up from PHP 5.5 (iirc). So on Jessie we have: /usr/bin/php5 /usr/bin/php7 and /usr/bin/hhvm. We have a `php` script that picks whatever version is passed to the CI build via a PHP_BIN env variable.
Eventually we will coinstall Zend 5.5 on Jessie as well ( T144959 ) and phase out Trusty instances entirely, specially since Wikimedia production has been doing the same.
The PHP shell script and sharding has a huge advantage: it is ridiculously easy to maintain for us . Set the version you want in CI, invoke the wrapper of few lines of code: success. The oddity is we have to do some routing to map Zend 5.3 jobs to Precise and Zend 5.5 ones to Trusty.
I did try a few times to compile Zend 5.3 on Jessie stripping down some extensions, borrowing patches here and there. But I am illiterate in C or the PHP build chain so that did not go to far.
Plan as of now
===========
CI envisioned porting Zend PHP 5.3 support on Trusty or Jessie back in June 2015 eventually after much discussion and the above work happening (php wrapper, package from sury.org) I have declined the idea. My assumption is that it is not worth the trouble just for the six months or so we would have used them (November 2016 - May 2017).
The end of life of MediaWiki 1.23 is May 2016 which would be during the European Hackathon. At that point:
* the REL1_23 branches will be closed
* all the CI related configuration for REL1_23 removed
* the php53 Jenkins configuration removed
* the Precise instances deleted
Other solutions?
=============
I understand that Precise has to be dropped due to end of quarter on 03/31 and most importantly Ubuntu dropping support for it in April. It is surely annoying that MediaWiki 1.23 supports just a month later (in May). So from there I guess the choices are:
* phase out precise / drop PHP5.3. Leaving us without Zend 5.3 CI from April 1st to the May EOL of 1.23. If a new 1.23 security release has to be cut out, figure out a manual strategy to test MediaWiki.
* Keep the Precise instances as-is till EOL. They can use a stripped down set of puppet manifests so the rest can be purged from Precise references.
* Figure out a way to forward port Zend 5.3 to Trusty/Jessie in a way that is co installable with the PHP flavors we have (eg /usr/bin/php53 /usr/share/php53 etc). Which might work or not depending on lib versions and whatever MediaWiki codes ends up relying on.
My preference goes toward keeping the Precise instance for an extra month and a half and phase them out the moment 1.23 is EOL.