Page MenuHomePhabricator

Upgrade doctrine/dbal from 2.10.4 to 3.0.x for PHP 8.0 support
Closed, ResolvedPublic

Event Timeline

Change 651606 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/core@master] Upgrade doctrine/dbal from 2.10.4 to 3.0.0 for PHP 8.0 support

https://gerrit.wikimedia.org/r/651606

We don't use much of doctrine, so the breaking changes aren't likely to be as bad for us... Easy enough to confirm

But we're on 2.10.4 currently, so a few releases behind

https://github.com/doctrine/dbal/releases/tag/2.11.0
https://github.com/doctrine/dbal/releases/tag/2.11.1
https://github.com/doctrine/dbal/releases/tag/2.11.2
https://github.com/doctrine/dbal/releases/tag/2.11.3
https://github.com/doctrine/dbal/releases/tag/2.12.0
https://github.com/doctrine/dbal/releases/tag/2.12.1
https://github.com/doctrine/dbal/releases/tag/3.0.0

https://github.com/doctrine/dbal/compare/2.10.4...3.0.0 (GitHub says no)

Targets
    Occurrences of 'doctrine' in Directory /Users/reedy/PhpstormProjects/mediawiki/core/maintenance with mask '*.php'
Found Occurrences  (11 usages found)
    Unclassified  (8 usages found)
        mediawiki  (8 usages found)
            core  (8 usages found)
                maintenance  (8 usages found)
                    generateSchemaChangeSql.php  (4 usages found)
                        25 use Doctrine\SqlFormatter\NullHighlighter;
                        26 use Doctrine\SqlFormatter\SqlFormatter;
                        27 use Wikimedia\Rdbms\DoctrineSchemaBuilderFactory;
                        72 $schemaChangeBuilder = ( new DoctrineSchemaBuilderFactory() )->getSchemaChangeBuilder(
                    generateSchemaSql.php  (4 usages found)
                        25 use Doctrine\SqlFormatter\NullHighlighter;
                        26 use Doctrine\SqlFormatter\SqlFormatter;
                        27 use Wikimedia\Rdbms\DoctrineSchemaBuilderFactory;
                        72 $schemaBuilder = ( new DoctrineSchemaBuilderFactory() )->getSchemaBuilder( $platform );
    Usage in comments  (3 usages found)
        mediawiki  (3 usages found)
            core  (3 usages found)
                maintenance  (3 usages found)
                    generateSchemaChangeSql.php  (2 usages found)
                        102 // https://github.com/doctrine/sql-formatter/issues/53
                        109 // Doctrine prepends __temp__ to the table name and we set the table with the schema prefix causing invalid
                    generateSchemaSql.php  (1 usage found)
                        121 // https://github.com/doctrine/sql-formatter/issues/53

I'll try it locally tonight

Oh, and we might be able to remove a few of our hacks and workarounds too...

Change 651653 had a related patch set uploaded (by Reedy; owner: Jforrester):
[mediawiki/core@REL1_35] Upgrade doctrine/dbal from 2.10.2 to 3.0.0 for PHP 8.0 support

https://gerrit.wikimedia.org/r/651653

Ah. Another issue... 3.0.0 drops support for PG < 9.4

https://www.postgresql.org/support/versioning/ - 9.4 was first released December 18, 2014, and final release is February 13, 2020.

So I don't think that's a problem to do in MW 1.36...

I don't think this is probably necessarily a problem for backporting to 1.35 either... If when we regenerate the SQL schema for REL1_35 on PG, the files are the same...

It might be more of an issue if we were doing SQL transformations on the fly via doctrine, but we're not

But more poking

Change 651653 merged by jenkins-bot:
[mediawiki/core@REL1_35] Upgrade doctrine/dbal from 2.10.2 to 3.0.0 for PHP 8.0 support

https://gerrit.wikimedia.org/r/651653

Change 651606 merged by jenkins-bot:
[mediawiki/core@master] Upgrade doctrine/dbal from 2.10.4 to 3.0.0 for PHP 8.0 support

https://gerrit.wikimedia.org/r/651606

Reedy triaged this task as Medium priority.