Sunday 16 May 2021

Re: PHP 8.0 transition plan



On Sat, 15 May 2021 at 15:54, Bryce Harrington <bryce.harrington@canonical.com> wrote:
Hi mwhudson,

The other day you mentioned you'd be on +1 duty next week and expressed
interest in how the php transition is going.

Here's a wiki page with the current state of things:

    https://wiki.ubuntu.com/ServerTeam/Transition/Php8.0

I've put in rebuilds for most of the stack by now, and a healthy chunk
has at least built and entered -proposed, and some has fully migrated.
A bunch of stuff is blocked by php-apcu and if that can migrate, a lot
more of the stack should migrate too.  The task here is getting symfony
and php-doctrine-cache to migrate, but they have some non-obvious test
failures that need investigation.

So what seems to be going on here is that php-apcu-bc is not going to be updated for PHP 8.0 (https://github.com/krakjoe/apcu-bc/issues/34) and so should be removed from the archive (the package currently in impish-proposed has a patch to only build for php 7 and so is almost empty).

Its only reverse-build-depends are ... symfony and php-doctrine-cache (and it has no reverse-depends at all, only a reverse recommends from php-apcu which presumably should also be removed).

Dropping the build-dependency from symfony leaves this failure:

Running src/Symfony/Component/HttpFoundation tests
PHPUnit 9.5.2 by Sebastian Bergmann and contributors.

Runtime:       PHP 8.0.5
Configuration: /<<PKGBUILDDIR>>/phpunit.xml.dist
Warning:       Your XML configuration validates against a deprecated schema.
Suggestion:    Migrate your XML configuration using "--migrate-configuration"!

Testing /<<PKGBUILDDIR>>/src/Symfony/Component/HttpFoundation
.............................................................   61 / 1233 (  4%)
.............................................................  122 / 1233 (  9%)
.............................................................  183 / 1233 ( 14%)
.............................................................  244 / 1233 ( 19%)
..........................................S..................  305 / 1233 ( 24%)
.............................................................  366 / 1233 ( 29%)
.............................................................  427 / 1233 ( 34%)
.............................................................  488 / 1233 ( 39%)
.............................................................  549 / 1233 ( 44%)
.............................................................  610 / 1233 ( 49%)
.............................................................  671 / 1233 ( 54%)
.............................................................  732 / 1233 ( 59%)
.............................................................  793 / 1233 ( 64%)
.............................................................  854 / 1233 ( 69%)
.............................................................  915 / 1233 ( 74%)
......................................
Legacy deprecation notices (4)
KO src/Symfony/Component/HttpFoundation
PHP Fatal error:  Cannot use int as default value for parameter $with_cas of type bool in /usr/share/php/PHPUnit/Framework/MockObject/MockClass.php(51) : eval()'d code on line 141

php-doctrine-cache still ftbfs without the build-dep, like this:

There were 2 failures:

1) Doctrine\Tests\Common\Cache\MemcacheCacheTest::testSetContainsFetchDelete with data set "null" (null)
Scalar and array data retrieved from the cache must be the same as the original, e.g. same type
Failed asserting that false is identical to null.

/<<PKGBUILDDIR>>/tests/Doctrine/Tests/Common/Cache/CacheTest.php:35

2) Doctrine\Tests\Common\Cache\MemcacheCacheTest::testUpdateExistingEntry with data set "null" (null)
Scalar and array data retrieved from the cache must be the same as the original, e.g. same type
Failed asserting that false is identical to null.

/<<PKGBUILDDIR>>/tests/Doctrine/Tests/Common/Cache/CacheTest.php:59

but it also seems the package is deprecated now? 

Cheers,
mwh

For items in that list that are FTBFS I've done some preliminary
investigation and noted possible solutions.  Some of these will be
pretty easy to fix.

The stuff under To Review probably just need nochange rebuilds but I
haven't had a chance yet to look through them.

I'll be out first half of Monday but will continue on this transition
through the rest of the week.

Bryce

On Wed, May 12, 2021 at 09:12:03AM -0700, Bryce Harrington wrote:
> Hi devs,
>
> For impish the server team will be transitioning PHP to 8.0 over the
> coming weeks. (LP: #1927264) [0]
>
> Since version 7.0, upstream PHP has adopted a regular release cadence[1],
> with one release per year. Each release is supported for 2 years, plus a
> third year of security critical fixes. PHP 8.0 was available last cycle
> but since changes from 7.4 to 8.0 were significant[2], we opted to postpone
> it to the 21.10 cycle and focused instead on resolving some phpunit
> 8.5->9.5 transition troubles. Landing PHP 8.0 this cycle will enable it
> to receive testing in a release prior to 22.04 LTS.
>
> php8.0 has now been sync'd into impish from Debian experimental and set
> as the default PHP.  This breaks the PHP stack[3] and starts the actual
> transition.
>
> Most or all of the PHP stack will need rebuilt at this point. This is
> phased due to package dependencies - for the php7.4 transition we
> started with php-propro, php-apcu, and php-msgpack; followed by
> php-apcu-bc, php-imagick, and php-igbinary; and then the rest of the
> stack. I anticipate php8.0's transition will proceed similarly.
>
> Typically during PHP transitions, packages will fail to build or fail
> autopkgtests. Deprecated functionality[4] has been a common case and
> likely will be so for php8.0 as well[5]. There may also be
> phpunit-related issues in packages that didn't get re-built or re-tested
> since phpunit 9.5 transitioned.
>
> Thanks,
> Bryce
>
> 0: https://wiki.ubuntu.com/ServerTeam/Transition/Php8.0
> 1: https://www.php.net/supported-versions.php
> 2: https://stitcher.io/blog/new-in-php-8
> 3: https://people.canonical.com/~ubuntu-archive/proposed-migration/update_excuses.html#php-defaults
> 4: https://wiki.php.net/rfc/deprecations_php_7_4
> 5: https://stitcher.io/blog/new-in-php-8
>
> --
> ubuntu-devel mailing list
> ubuntu-devel@lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel