Page MenuHomePhabricator

PHP 8.4: Implicitly nullable parameter declarations deprecated in qrcode vendor libs
Closed, ResolvedPublic

Description

Related to T376276: PHP 8.4: Implicitly nullable parameter declarations deprecated.

Affects at least OATHAuth and UrlShortener, both currently have 5.1.0 of endroid/qr-code.

As per T379587: PHP 8.4: Implicitly nullable parameter declarations deprecated in 3rd party vendor libs, we need to upgrade these libraries (when T358666: Drop PHP 8.1 support from MediaWiki is done) to endroid/qr-code v6.0.

Deprecated: Endroid\QrCode\Builder\Builder::buildObject(): Implicitly marking parameter $optionsPrefix as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Builder/Builder.php on line 245

Deprecated: Endroid\QrCode\Writer\PngWriter::write(): Implicitly marking parameter $logo as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/PngWriter.php on line 22

Deprecated: Endroid\QrCode\Writer\PngWriter::write(): Implicitly marking parameter $label as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/PngWriter.php on line 22

Deprecated: Endroid\QrCode\Writer\WriterInterface::write(): Implicitly marking parameter $logo as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/WriterInterface.php on line 15

Deprecated: Endroid\QrCode\Writer\WriterInterface::write(): Implicitly marking parameter $label as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/WriterInterface.php on line 15

Deprecated: Endroid\QrCode\Writer\SvgWriter::write(): Implicitly marking parameter $logo as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/SvgWriter.php on line 23

Deprecated: Endroid\QrCode\Writer\SvgWriter::write(): Implicitly marking parameter $label as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/SvgWriter.php on line 23

Deprecated: Endroid\QrCode\QrCode::__construct(): Implicitly marking parameter $encoding as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/QrCode.php on line 27

Deprecated: Endroid\QrCode\QrCode::__construct(): Implicitly marking parameter $errorCorrectionLevel as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/QrCode.php on line 27

Deprecated: Endroid\QrCode\QrCode::__construct(): Implicitly marking parameter $roundBlockSizeMode as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/QrCode.php on line 27

Deprecated: Endroid\QrCode\QrCode::__construct(): Implicitly marking parameter $foregroundColor as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/QrCode.php on line 27

Deprecated: Endroid\QrCode\QrCode::__construct(): Implicitly marking parameter $backgroundColor as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/QrCode.php on line 27

Deprecated: Endroid\QrCode\Label\Label::__construct(): Implicitly marking parameter $font as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Label/Label.php on line 24

Deprecated: Endroid\QrCode\Label\Label::__construct(): Implicitly marking parameter $alignment as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Label/Label.php on line 24

Deprecated: Endroid\QrCode\Label\Label::__construct(): Implicitly marking parameter $margin as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Label/Label.php on line 24

Deprecated: Endroid\QrCode\Label\Label::__construct(): Implicitly marking parameter $textColor as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Label/Label.php on line 24

T328922: Drop PHP 8.0 support from MediaWiki was a previous blocker.

bacon/bacon-qr-code was upgraded to 3.0.1 in rMWVDaaca27396784: Upgrade QR Code vendor libs, which fixed the issues in this library:

Deprecated: BaconQrCode\Encoder\Encoder::chooseMode(): Implicitly marking parameter $encoding as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php on line 158

Deprecated: BaconQrCode\Common\ReedSolomonCodec::decode(): Implicitly marking parameter $erasures as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php on line 225

Event Timeline

Reedy renamed this task from PHP 8.4: Implicitly nullable parameter declarations deprecated in OATHAuth vendor libs to PHP 8.4: Implicitly nullable parameter declarations deprecated in qrcode vendor libs.Oct 28 2024, 10:19 PM
Reedy updated the task description. (Show Details)

Depending if there's any breaking API changes... We might be able to "just" support older and newer versions...

Change #1154406 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@master] Upgrade QR Code vendor libs

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

Change #1154407 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/OATHAuth@master] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1154408 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/UrlShortener@master] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1154406 merged by jenkins-bot:

[mediawiki/vendor@master] Upgrade QR Code vendor libs

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

Change #1154407 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@master] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1154408 merged by jenkins-bot:

[mediawiki/extensions/UrlShortener@master] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Jdforrester-WMF assigned this task to Reedy.

I think this isn't actually fixed...

Per T379587: PHP 8.4: Implicitly nullable parameter declarations deprecated in 3rd party vendor libs

bacon/bacon-qr-code says

v3.0, needs PHP 8.1

We've gone to 3.0.1, so tick.

endroid/qr-code says

v6.0, needs PHP 8.2

We went to 5.1.0, newest as of writing.

https://github.com/endroid/qr-code/releases/tag/6.0.0 says

Drop PHP 8.1 and prepare for PHP 8.4

Would probably want to scan things again to make sure on the latter/both

Change #1159378 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@REL1_43] Upgrade QR Code vendor libs

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

Change #1159379 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@REL1_44] Upgrade QR Code vendor libs

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

Change #1159381 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/UrlShortener@REL1_44] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1159382 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/UrlShortener@REL1_43] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1159383 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/OATHAuth@REL1_44] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1159384 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/OATHAuth@REL1_43] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1159379 merged by Reedy:

[mediawiki/vendor@REL1_44] Upgrade QR Code vendor libs

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

Change #1159378 merged by Reedy:

[mediawiki/vendor@REL1_43] Upgrade QR Code vendor libs

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

Change #1159384 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@REL1_43] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1159382 merged by jenkins-bot:

[mediawiki/extensions/UrlShortener@REL1_43] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1159381 merged by jenkins-bot:

[mediawiki/extensions/UrlShortener@REL1_44] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Change #1159383 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@REL1_44] composer.json: Upgrade endroid/qr-code to 5.1.0

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

Yeah, these are still present:

Deprecated: Endroid\QrCode\Builder\Builder::buildObject(): Implicitly marking parameter $optionsPrefix as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Builder/Builder.php on line 249

Deprecated: Endroid\QrCode\Writer\PngWriter::write(): Implicitly marking parameter $logo as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/PngWriter.php on line 18

Deprecated: Endroid\QrCode\Writer\PngWriter::write(): Implicitly marking parameter $label as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/PngWriter.php on line 18

Deprecated: Endroid\QrCode\Writer\AbstractGdWriter::write(): Implicitly marking parameter $logo as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/AbstractGdWriter.php on line 30

Deprecated: Endroid\QrCode\Writer\AbstractGdWriter::write(): Implicitly marking parameter $label as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/AbstractGdWriter.php on line 30

Deprecated: Endroid\QrCode\Writer\WriterInterface::write(): Implicitly marking parameter $logo as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/WriterInterface.php on line 15

Deprecated: Endroid\QrCode\Writer\WriterInterface::write(): Implicitly marking parameter $label as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/WriterInterface.php on line 15

Deprecated: Endroid\QrCode\Writer\SvgWriter::write(): Implicitly marking parameter $logo as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/SvgWriter.php on line 25

Deprecated: Endroid\QrCode\Writer\SvgWriter::write(): Implicitly marking parameter $label as nullable is deprecated, the explicit nullable type must be used instead in /var/www/wiki/mediawiki/core/vendor/endroid/qr-code/src/Writer/SvgWriter.php on line 2

Change #1214594 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@master] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214595 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/OATHAuth@master] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214617 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/UrlShortener@master] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214594 merged by jenkins-bot:

[mediawiki/vendor@master] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214595 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@master] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214617 merged by jenkins-bot:

[mediawiki/extensions/UrlShortener@master] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214651 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@REL1_45] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214651 merged by Reedy:

[mediawiki/vendor@REL1_45] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214652 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/OATHAuth@REL1_45] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214653 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/UrlShortener@REL1_45] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214652 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@REL1_45] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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

Change #1214653 merged by jenkins-bot:

[mediawiki/extensions/UrlShortener@REL1_45] Upgrading endroid/qr-code (5.1.0 => 6.0.9)

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