This will allow us to run like-for-like versions of PHP in CI on buster.
What @Legoktm said, to run CI tests on Buster and PHP 7.2 best to use the sury.org repository. Our component for stretch-wikimedia is a rebuild of sury.org which fixes a build issue with our mariadb version on stretch and which ensures that only stock libraries from Debian stretch are used during the build (the sury.org repo covers more distros and also backports some base libs). In the absence of production actually running PHP 7.2 on buster, using sury.org is the best approximation.
Summary: buster-wikimedia components/php72 provides php-wikidiff2 1.8.1 instead of 1.10.0
I have compared the Strech versus Buster images using:
docker run --rm -it --entrypoint=apt docker-registry.discovery.wmnet/releng/quibble-stretch-php72 list 'php*' docker run --rm -it --entrypoint=apt docker-registry.discovery.wmnet/releng/quibble-buster-php72 list 'php*'
php-wikidiff2 on Stretch is 1.10.0-1~wmf1 while Buster provides the outdated 1.8.1-1~wmf1+buster1. We require a more recent one for some tests, notably for the api-testing suite.
All the other packages match :]
Looking inside the containers:
php-wikidiff2: Installed: 1.10.0-1~wmf1 Candidate: 1.10.0-1~wmf1 Version table: *** 1.10.0-1~wmf1 1001 1001 http://apt.wikimedia.org/wikimedia stretch-wikimedia/main amd64 Packages 100 /var/lib/dpkg/status 1.8.1-1~wmf1 1001 1001 http://apt.wikimedia.org/wikimedia stretch-wikimedia/component/php72 amd64 Packages 1.4.1-1 500 500 http://mirrors.wikimedia.org/debian stretch/main amd64 Packages
# apt-cache policy php-wikidiff2 php-wikidiff2: Installed: 1.8.1-1~wmf1+buster1 Candidate: 1.8.1-1~wmf1+buster1 Version table: 1.10.0-1~bpo10+1 100 100 http://mirrors.wikimedia.org/debian buster-backports/main amd64 Packages *** 1.8.1-1~wmf1+buster1 1001 1001 http://apt.wikimedia.org/wikimedia buster-wikimedia/component/php72 amd64 Packages 100 /var/lib/dpkg/status 1.7.3-2 500 500 http://mirrors.wikimedia.org/debian buster/main amd64 Packages
I guess the issue is that when php-wikidiff2 1.10.0 got build for Stretch it got uploaded to main instead of component/php72. When later building for Buster, the same versions used in component/php72 got used and we end up with the outdated version.
There is the version from buster-backports, though it would not necessarily match production and we found out that backports magically disappear before the EOL of the distribution. So probably buster-backports should be removed from our CI images but that is a different problem.