Page MenuHomePhabricator

Wikibase gives deprecated warnings on php 8.1
Closed, ResolvedPublicBUG REPORT

Description

Wikibase gives deprecated warnings on php 8.1.

In addition to the general problem that this causes for users who have E_DEPRECATED on, it also makes phpunit tests fail on php 8.1, including extensions that have tests that depend on it, such as Math which is bundled with mediawiki. Having all extensions bundled with MediaWiki pass unit tests on php8.1 would help reassure users that we support php 8.1, which this is blocking.

PHPUnit output:

INFO:quibble.commands:>>> Start: PHPUnit unit tests
PHPUnit unit tests
composer phpunit:unit -- --exclude-group Broken,ParserFuzz,Stub
> phpunit --colors=always --testsuite=core:unit,extensions:unit,skins:unit '--exclude-group' 'Broken,ParserFuzz,Stub'

Deprecated: Return type of Wikibase\Lexeme\Domain\Model\FormSet::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/FormSet.php on line 74
PHP Deprecated:  Return type of Wikibase\Lexeme\Domain\Model\FormSet::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/FormSet.php on line 74

Deprecated: Wikibase\Lexeme\Domain\Model\FormId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/FormId.php on line 15
PHP Deprecated:  Wikibase\Lexeme\Domain\Model\FormId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/FormId.php on line 15

Deprecated: Return type of Wikibase\DataModel\Term\TermList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Term/TermList.php on line 41

Deprecated: Return type of Wikibase\DataModel\Term\TermList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Term/TermList.php on line 64
PHP Deprecated:  Return type of Wikibase\DataModel\Term\TermList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Term/TermList.php on line 41
PHP Deprecated:  Return type of Wikibase\DataModel\Term\TermList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Term/TermList.php on line 64

Deprecated: Wikibase\Lexeme\Domain\DummyObjects\NullFormId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/DummyObjects/NullFormId.php on line 12
PHP Deprecated:  Wikibase\Lexeme\Domain\DummyObjects\NullFormId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/DummyObjects/NullFormId.php on line 12
PHP Deprecated:  Wikibase\Lexeme\Domain\DummyObjects\DummyFormId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/DummyObjects/DummyFormId.php on line 10

Deprecated: Wikibase\Lexeme\Domain\DummyObjects\DummyFormId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/DummyObjects/DummyFormId.php on line 10

Deprecated: Wikibase\DataModel\Entity\ItemId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Entity/ItemId.php on line 12
PHP Deprecated:  Wikibase\DataModel\Entity\ItemId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Entity/ItemId.php on line 12

Deprecated: Wikibase\DataModel\Snak\PropertyNoValueSnak implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/PropertyNoValueSnak.php on line 14
PHP Deprecated:  Wikibase\DataModel\Snak\PropertyNoValueSnak implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/PropertyNoValueSnak.php on line 14

Deprecated: Wikibase\DataModel\Entity\NumericPropertyId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Entity/NumericPropertyId.php on line 11
PHP Deprecated:  Wikibase\DataModel\Entity\NumericPropertyId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Entity/NumericPropertyId.php on line 11

Deprecated: Return type of Wikibase\DataModel\Snak\SnakList::offsetSet($index, $value) should either be compatible with ArrayObject::offsetSet(mixed $key, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 235

Deprecated: Return type of Wikibase\DataModel\Snak\SnakList::offsetUnset($index) should either be compatible with ArrayObject::offsetUnset(mixed $key): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 207

Deprecated: Return type of Wikibase\DataModel\Snak\SnakList::append($value) should either be compatible with ArrayObject::append(mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 225

Deprecated: Return type of Wikibase\DataModel\Snak\SnakList::unserialize($serialized) should either be compatible with ArrayObject::unserialize(string $data): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 281

Deprecated: Return type of Wikibase\DataModel\Snak\SnakList::serialize() should either be compatible with ArrayObject::serialize(): string, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 272
PHP Deprecated:  Return type of Wikibase\DataModel\Snak\SnakList::offsetSet($index, $value) should either be compatible with ArrayObject::offsetSet(mixed $key, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 235
PHP Deprecated:  Return type of Wikibase\DataModel\Snak\SnakList::offsetUnset($index) should either be compatible with ArrayObject::offsetUnset(mixed $key): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 207
PHP Deprecated:  Return type of Wikibase\DataModel\Snak\SnakList::append($value) should either be compatible with ArrayObject::append(mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 225
PHP Deprecated:  Return type of Wikibase\DataModel\Snak\SnakList::unserialize($serialized) should either be compatible with ArrayObject::unserialize(string $data): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 281
PHP Deprecated:  Return type of Wikibase\DataModel\Snak\SnakList::serialize() should either be compatible with ArrayObject::serialize(): string, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Snak/SnakList.php on line 272

Deprecated: Return type of Wikibase\DataModel\ReferenceList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/ReferenceList.php on line 310

Deprecated: Return type of Wikibase\DataModel\ReferenceList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/ReferenceList.php on line 321
PHP Deprecated:  Return type of Wikibase\DataModel\ReferenceList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/ReferenceList.php on line 310
PHP Deprecated:  Return type of Wikibase\DataModel\ReferenceList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/ReferenceList.php on line 321

Deprecated: Wikibase\Lexeme\Domain\Model\LexemeId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/LexemeId.php on line 18
PHP Deprecated:  Wikibase\Lexeme\Domain\Model\LexemeId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/LexemeId.php on line 18

Deprecated: Return type of Wikibase\Lexeme\Domain\Model\SenseSet::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/SenseSet.php on line 75
PHP Deprecated:  Return type of Wikibase\Lexeme\Domain\Model\SenseSet::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/SenseSet.php on line 75

Deprecated: Wikibase\Lexeme\Domain\Model\SenseId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/SenseId.php on line 14
PHP Deprecated:  Wikibase\Lexeme\Domain\Model\SenseId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/Model/SenseId.php on line 14

Deprecated: Return type of Wikibase\DataModel\Term\AliasGroupList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Term/AliasGroupList.php on line 48

Deprecated: Return type of Wikibase\DataModel\Term\AliasGroupList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Term/AliasGroupList.php on line 56
PHP Deprecated:  Return type of Wikibase\DataModel\Term\AliasGroupList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Term/AliasGroupList.php on line 48
PHP Deprecated:  Return type of Wikibase\DataModel\Term\AliasGroupList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/Term/AliasGroupList.php on line 56

Deprecated: Return type of Wikibase\DataModel\SiteLinkList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/SiteLinkList.php on line 108

Deprecated: Return type of Wikibase\DataModel\SiteLinkList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/SiteLinkList.php on line 117
PHP Deprecated:  Return type of Wikibase\DataModel\SiteLinkList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/SiteLinkList.php on line 108
PHP Deprecated:  Return type of Wikibase\DataModel\SiteLinkList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model/src/SiteLinkList.php on line 117

Deprecated: Wikibase\Lexeme\Domain\DummyObjects\NullSenseId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/DummyObjects/NullSenseId.php on line 14
PHP Deprecated:  Wikibase\Lexeme\Domain\DummyObjects\NullSenseId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/DummyObjects/NullSenseId.php on line 14

Deprecated: Wikibase\Lexeme\Domain\DummyObjects\DummySenseId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/DummyObjects/DummySenseId.php on line 12
PHP Deprecated:  Wikibase\Lexeme\Domain\DummyObjects\DummySenseId implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /workspace/src/extensions/WikibaseLexeme/src/Domain/DummyObjects/DummySenseId.php on line 12
PHPUnit 8.5.30 #StandWithUkraine

...........................................................    59 / 16068 (  0%)
...........................................................   118 / 16068 (  0%)
...........................................................   177 / 16068 (  1%)
...........................................................   236 / 16068 (  1%)
...........................................................   295 / 16068 (  1%)
...........................................................   354 / 16068 (  2%)
...........................................................   413 / 16068 (  2%)
[...]
........................................................... 15517 / 16068 ( 96%)
........................................E.......E.......... 15576 / 16068 ( 96%)
........................................................... 15635 / 16068 ( 97%)
........................................................... 15694 / 16068 ( 97%)
...............E........................................... 15753 / 16068 ( 98%)
........................................................... 15812 / 16068 ( 98%)
........................................................... 15871 / 16068 ( 98%)
..........................PHP Fatal error:  During inheritance of ArrayObject: Uncaught Return type of Diff\DiffOp\Diff\Diff::offsetSet($index, $value) should either be compatible with ArrayObject::offsetSet(mixed $key, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

/workspace/src/vendor/diff/diff/src/DiffOp/Diff/Diff.php:398
/workspace/src/vendor/diff/diff/src/DiffOp/Diff/Diff.php:25
/workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model-services/src/Diff/StatementListDiffer.php:30
/workspace/src/extensions/WikibaseLexeme/src/Domain/Diff/FormDiffer.php:98
/workspace/src/extensions/WikibaseLexeme/src/Domain/Diff/FormDiffer.php:58
/workspace/src/extensions/WikibaseLexeme/tests/phpunit/unit/DataModel/Services/Diff/FormDifferTest.php:25
/workspace/src/tests/phpunit/MediaWikiUnitTestCase.php:116
 in /workspace/src/vendor/diff/diff/src/DiffOp/Diff/Diff.php on line 25

Fatal error: During inheritance of ArrayObject: Uncaught Return type of Diff\DiffOp\Diff\Diff::offsetSet($index, $value) should either be compatible with ArrayObject::offsetSet(mixed $key, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

/workspace/src/vendor/diff/diff/src/DiffOp/Diff/Diff.php:398
/workspace/src/vendor/diff/diff/src/DiffOp/Diff/Diff.php:25
/workspace/src/extensions/Wikibase/lib/packages/wikibase/data-model-services/src/Diff/StatementListDiffer.php:30
/workspace/src/extensions/WikibaseLexeme/src/Domain/Diff/FormDiffer.php:98
/workspace/src/extensions/WikibaseLexeme/src/Domain/Diff/FormDiffer.php:58
/workspace/src/extensions/WikibaseLexeme/tests/phpunit/unit/DataModel/Services/Diff/FormDifferTest.php:25
/workspace/src/tests/phpunit/MediaWikiUnitTestCase.php:116
 in /workspace/src/vendor/diff/diff/src/DiffOp/Diff/Diff.php on line 25
Script phpunit --colors=always --testsuite=core:unit,extensions:unit,skins:unit handling the phpunit:unit event returned with error code 255
<<< Finish: PHPUnit unit tests, in 9.143 s

Details

SubjectRepoBranchLines +/-
mediawiki/extensions/Wikibasemaster+11 -5
mediawiki/coremaster+5 -2
mediawiki/extensions/Wikibasemaster+3 -3
mediawiki/coremaster+1 -1
mediawiki/extensions/WikibaseQualityConstraintsmaster+1 -0
mediawiki/extensions/Wikibasemaster+8 -8
mediawiki/extensions/Wikibasemaster+2 -2
mediawiki/extensions/Wikibasemaster+4 -2
mediawiki/extensions/Wikibasemaster+5 -3
mediawiki/extensions/Wikibasemaster+14 -10
mediawiki/extensions/Wikibasemaster+1 -1
mediawiki/extensions/Wikibasemaster+3 -3
mediawiki/extensions/Wikibasemaster+4 -6
mediawiki/extensions/Wikibasemaster+7 -0
mediawiki/extensions/Wikibasemaster+11 -7
mediawiki/extensions/Wikibasemaster+13 -14
mediawiki/extensions/WikibaseMediaInfomaster+1 -1
mediawiki/extensions/Wikibasemaster+1 -0
mediawiki/extensions/Wikibasemaster+2 -0
mediawiki/extensions/WikibaseLexememaster+81 -53
mediawiki/coremaster+1 -1
mediawiki/extensions/Wikibasemaster+6 -13
mediawiki/extensions/Wikibasemaster+1 -0
mediawiki/extensions/Wikibasemaster+11 -6
mediawiki/coremaster+6 -2
mediawiki/extensions/Wikibasemaster+8 -20
mediawiki/extensions/Wikibasemaster+14 -8
mediawiki/extensions/Wikibasemaster+9 -5
mediawiki/extensions/WikibaseMediaInfomaster+9 -9
mediawiki/extensions/WikibaseLexememaster+3 -3
mediawiki/extensions/Wikibasemaster+4 -2
mediawiki/extensions/Wikibasemaster+64 -42
mediawiki/extensions/WikibaseLexememaster+16 -16
mediawiki/extensions/WikibaseLexememaster+7 -8
mediawiki/extensions/Wikibasemaster+10 -3
mediawiki/extensions/Wikibasemaster+5 -5
mediawiki/extensions/Wikibasemaster+12 -7
mediawiki/extensions/Wikibasemaster+8 -8
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 841191 had a related patch set uploaded (by Hoo man; author: Hoo man):

[mediawiki/extensions/Wikibase@master] Add int type hint to Countable::count implementations

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

Change 841191 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Add int type hint to Countable::count implementations

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

Change 841897 had a related patch set uploaded (by Hoo man; author: Hoo man):

[mediawiki/extensions/Wikibase@master] Add type hints for IteratorAggregate::getIterator implementations

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

Change 841900 had a related patch set uploaded (by Hoo man; author: Hoo man):

[mediawiki/extensions/Wikibase@master] Add ArrayObject method return type hints to SnakList

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

Change 841901 had a related patch set uploaded (by Hoo man; author: Hoo man):

[mediawiki/extensions/Wikibase@master] PropertyLabelNotResolvedException: Default $message to "", not null

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

Change 841897 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Add type hints for IteratorAggregate::getIterator implementations

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

Change 841900 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Add ArrayObject method return type hints to SnakList

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

Change 842524 had a related patch set uploaded (by Hoo man; author: Hoo man):

[mediawiki/extensions/Wikibase@master] DM: Avoid passing null to explode, use ""

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

Change 841901 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] PropertyLabelNotResolvedException: Add default $message

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

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

[mediawiki/extensions/WikibaseLexeme@master] Add missing return types

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

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

[mediawiki/extensions/WikibaseLexeme@master] LexemeNotFoundException: Add default $message

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

Change 842827 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] LexemeNotFoundException: Add default $message

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

Change 842816 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] Add missing return types

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

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

[mediawiki/extensions/Wikibase@master] Add strict types and type hints to entity ID classes

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

Change 848422 abandoned by Lucas Werkmeister (WMDE):

[mediawiki/extensions/Wikibase@master] Add strict types and type hints to entity ID classes

Reason:

going with I4c03c5250f instead

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

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

[mediawiki/extensions/WikibaseLexeme@master] Avoid passing null to explode()

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

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

[mediawiki/extensions/WikibaseMediaInfo@master] Avoid passing null to explode()

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

Change 842524 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] DM: Avoid passing null to explode, use ""

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

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

[mediawiki/core@master] tests: Upgrade giorgiosironi/eris to 0.13.0

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

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

[mediawiki/extensions/WikibaseLexeme@master] tests: Upgrade giorgiosironi/eris to 0.13.0

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

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

[mediawiki/extensions/Wikibase@master] FederatedPropertyId: Add __serialize()/__unserialize()

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

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

[mediawiki/extensions/Wikibase@master] FederatedPropertyId: Add __serialize()/__unserialize()

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

(Moved to the subtask T301249.)

Change 850161 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] Avoid passing null to explode()

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

Change 850162 merged by jenkins-bot:

[mediawiki/extensions/WikibaseMediaInfo@master] Avoid passing null to explode()

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

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

[mediawiki/extensions/Wikibase@master] Add return types to LineReader Iterator methods

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

Change 850485 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Add return types to LineReader Iterator methods

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

With the giorgioseroni/eris update (still open for review), together with everything else that’s been merged, an experimental PHP 8.1 build finally completes without crashing partway through like it used to. This means we now have a full more comprehensive list of the remaining deprecation warnings (40 of them, it seems). Should be doable.

Edit: It’s not a full list, since the first errors occurred during the non-DB tests, and so the DB tests weren’t run yet. But at least it’s a longer list than before.

Change 852154 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Wikibase@master] Make a few tests more compatible with PHP 8.1

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

Change 852161 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Wikibase@master] Make a few tests more compatible with PHP 8.1

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

Change 852163 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Wikibase@master] Fix incomplete LanguageNameLookup mock returning null

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

Change 852154 abandoned by Lucas Werkmeister (WMDE):

[mediawiki/extensions/Wikibase@master] Make a few tests more compatible with PHP 8.1

Reason:

Split into Iee7dbd9773 and I2f4c896a17.

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

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

[mediawiki/core@master] Fix false/null confusion in Site::getPath()

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

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

[mediawiki/core@master] Don’t track build statistics for unnamed modules

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

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

[mediawiki/extensions/Wikibase@master] SitesModule: Handle missing site language

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

Change 852188 merged by jenkins-bot:

[mediawiki/core@master] Don’t track build statistics for unnamed modules

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

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

[mediawiki/extensions/Wikibase@master] Add strict types to LanguageNameLookup

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

Change 853080 had a related patch set uploaded (by Tim Starling; author: Tim Starling):

[mediawiki/extensions/Wikibase@master] Clean up CacheAwarePropertyInfoStore attempted cache sets

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

Change 853080 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Clean up CacheAwarePropertyInfoStore attempted cache sets

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

Change 852187 merged by jenkins-bot:

[mediawiki/core@master] Fix Site::getPath() + MediaWikiSite::getFileUrl() confusion

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

Change 852189 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] SitesModule: Handle missing site language

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

Change 852161 abandoned by Thiemo Kreuz (WMDE):

[mediawiki/extensions/Wikibase@master] Make a few tests more compatible with PHP 8.1

Reason:

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

Change 852163 abandoned by Thiemo Kreuz (WMDE):

[mediawiki/extensions/Wikibase@master] Fix incomplete LanguageNameLookup mock returning null

Reason:

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

Change 852824 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Add strict types to LanguageNameLookup

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

Change 850187 merged by jenkins-bot:

[mediawiki/core@master] tests: Upgrade giorgiosironi/eris to 0.13.0

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

Change 850188 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexeme@master] tests: Upgrade giorgiosironi/eris to 0.13.0

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

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

[mediawiki/extensions/Wikibase@master] Fix missing language in ItemDiffVisualizerTest

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

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

[mediawiki/extensions/Wikibase@master] Fix mocked iteration in PageHistoryPagerHookHandlerTest

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

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

[mediawiki/extensions/Wikibase@master] Complete Language mock in DefaultEntityLinkFormatterTest

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

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

[mediawiki/extensions/Wikibase@master] Check language code type in MonolingualTextParser

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

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

[mediawiki/extensions/Wikibase@master] Use strict types in EntityRevision, RedirectRevision constructors

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

Change 853317 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Fix missing language in ItemDiffVisualizerTest

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

Change 853320 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Complete Language mock in DefaultEntityLinkFormatterTest

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

Change 853915 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Wikibase@master] PHP 8.1 compatible sanity checks in Entity/RedirectRevision

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

Change 853924 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/WikibaseMediaInfo@master] Fix mismatching TS_MW timestamp type in a test

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

Change 853924 merged by jenkins-bot:

[mediawiki/extensions/WikibaseMediaInfo@master] Fix mismatching TS_MW timestamp type in a test

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

Change 853915 abandoned by Thiemo Kreuz (WMDE):

[mediawiki/extensions/Wikibase@master] PHP 8.1 compatible sanity checks in Entity/RedirectRevision

Reason:

Obsolete via Id3b6fc9.

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

Change 853323 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Use strict types in EntityRevision, RedirectRevision constructors

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

Change 853322 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Check language code type in MonolingualTextParser

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

Change 853319 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Fix mocked iteration in PageHistoryPagerHookHandlerTest

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

With the CirrusSearch fix for T322408 pulled in via Depends-On, the experimental PHP 8.1 build on this DNM WikibaseLexeme change made it all the way through the no-DB tests, and only had 29 errors and 2 failures in the DB tests. We’re getting there!

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

[mediawiki/core@master] HTMLFormField: Treat null as missing value

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

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

[mediawiki/extensions/Wikibase@master] HTMLTrimmedTextField: Don’t trim non-string values

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

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

[mediawiki/extensions/Wikibase@master] Assign statement ID in EntityDataSerializationServiceIntegrationTest

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

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

[mediawiki/extensions/Wikibase@master] Fix Titles in HtmlPageLinkRendererEndHookHandlerTest

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

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

[mediawiki/extensions/Wikibase@master] Don’t mock encodeParamName in ApiPropsEntityUsageTest

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

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

[mediawiki/extensions/Wikibase@master] Specify htmlspecialchars() flags

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

Change 854552 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Fix Titles in HtmlPageLinkRendererEndHookHandlerTest

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

Change 854556 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Don’t mock encodeParamName in ApiPropsEntityUsageTest

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

Change 854560 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Specify htmlspecialchars() flags

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

Change 854549 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Assign statement ID in EntityDataSerializationServiceIntegrationTest

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

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

[mediawiki/extensions/Wikibase@master] Handle null/false $value in HTMLAliasesField

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

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

[mediawiki/extensions/Wikibase@master] Make $subPage comparisons less strict

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

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

[mediawiki/extensions/WikibaseQualityConstraints@master] Assign a statement ID in DelegatingConstraintCheckerTest

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

I think these changes should cover all the remaining test failures in WikibaseLexeme. (Wikibase itself might have some more, I haven’t checked that in a while.)

Change 854502 merged by jenkins-bot:

[mediawiki/core@master] HTMLFormField: Treat null as missing value

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

Change 854503 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] HTMLTrimmedTextField: Don’t trim non-string values

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

Change 855008 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Make $subPage comparisons less strict

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

Change 855006 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Handle null/false $value in HTMLAliasesField

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

Change 855009 merged by jenkins-bot:

[mediawiki/extensions/WikibaseQualityConstraints@master] Assign a statement ID in DelegatingConstraintCheckerTest

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

Lucas_Werkmeister_WMDE claimed this task.

PHP 8.1 is voting in gate-and-submit now, so I think we can be confident that this is done. (I guess Wikibase didn’t have any additional errors that didn’t show up in WikibaseLexeme CI.)

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

[mediawiki/extensions/Wikibase@master] Fix SpecialListProperties subpage handling in PHP 8.1

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

Found one more that didn’t get caught by CI. (Edit: Two more special pages had the same issue – added them to the above change.)

Change 859097 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Fix special page subpage handling in PHP 8.1

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