Page MenuHomePhabricator

PHP 8.4: Wikibase CSVUnitStorage: fgetcsv(): the $escape parameter must be provided as its default value will change
Closed, ResolvedPublic

Description

Seen in this experimental PHP 8.4 build for Wikibase (alongside plenty of errors related to T376711):

2) WikibaseQuality\ConstraintReport\Tests\Checker\RangeChecker\DiffWithinRangeCheckerTest::testDiffWithinRangeConstraintWithinRange
fgetcsv(): the $escape parameter must be provided as its default value will change

/workspace/src/extensions/Wikibase/lib/includes/Units/CSVUnitStorage.php:42
/workspace/src/extensions/Wikibase/lib/includes/Units/BaseUnitStorage.php:33
/workspace/src/extensions/Wikibase/lib/includes/Units/BaseUnitStorage.php:47
/workspace/src/extensions/Wikibase/lib/includes/Units/UnitConverter.php:67
/workspace/src/extensions/WikibaseQualityConstraints/src/ConstraintCheck/Helper/RangeCheckerHelper.php:66
/workspace/src/extensions/WikibaseQualityConstraints/src/ConstraintCheck/Helper/RangeCheckerHelper.php:110
/workspace/src/extensions/WikibaseQualityConstraints/src/ConstraintCheck/Checker/DiffWithinRangeChecker.php:152
/workspace/src/extensions/WikibaseQualityConstraints/tests/phpunit/Checker/RangeChecker/DiffWithinRangeCheckerTest.php:172

(The test is in WBQC but the affected code is pure Wikibase and I’m pretty sure it’s reachable within Wikibase too.) Should hopefully be a simple fix; compare also T378302.

Event Timeline

See fgetcsv manual.

As of PHP 8.4.0, depending on the default value of escape is deprecated. It needs to be provided explicitly either positionally or by the use of named arguments.

We can’t use named arguments yet, so I’m tempted to wait with this until we’ve dropped PHP 7.4 support, to be honest (see T328921). Though if we need PHP 8.4 support sooner, we can of course just pass all the other positional arguments.

Change #1120234 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/Wikibase@master] Provide escape paramater for fgetcsv

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

Change #1121596 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/Wikibase@master] CSVUnitStorage: Change escape to future default of ""

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

Change #1121597 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/Wikibase@master] CSVUnitStorage: Use named arguments

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

Change #1120234 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Provide escape paramater for fgetcsv

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

Change #1121618 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Umherirrender):

[mediawiki/extensions/Wikibase@REL1_43] Provide escape paramater for fgetcsv

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

Change #1121669 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/Wikibase@REL1_42] Provide escape paramater for fgetcsv

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

Change #1121670 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/Wikibase@REL1_39] Provide escape paramater for fgetcsv

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

Change #1121670 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@REL1_39] Provide escape paramater for fgetcsv

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

Change #1121669 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@REL1_42] Provide escape paramater for fgetcsv

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

Change #1121618 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@REL1_43] Provide escape paramater for fgetcsv

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

Change #1121596 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] CSVUnitStorage: Change escape to future default of ""

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

Change #1121597 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] CSVUnitStorage: Use named arguments

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