Monday 17 May 2021

Re: PHP 8.0 transition plan

On Mon, May 17, 2021 at 03:52:17PM +1200, Michael Hudson-Doyle wrote:
> 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).

There's also an unreleased 1.0.5-13:
https://salsa.debian.org/php-team/pecl/php-apcu-bc/-/blob/7fc1aad5b4ac1378fac4f705fb4f1ae7776a63eb/debian/changelog

I see one of the changes here hardcodes the package to php7.4, so it
definitely does appear this package is no longer relevant for impish.

> 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).

Thanks, I've applied and uploaded this change for php-apcu.

> 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

Ah, yes there were a bunch of these int/bool issues during the phpunit
8.5 transition last cycle, this should be straightforward to fix.

> 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?

Ah yes you're right, I found this note upstream:

https://github.com/doctrine/cache/issues/354

There is a 1.11 release with deprecation notices introduced, but there
are only 8 rdepends (all php-doctrine-* or php-symfony-*) and if they
have updates (or can themselves be dropped) then perhaps this package
can go.

> 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
> >

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel