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 [44;37m#StandWith[0m[43;30mUkraine[0m ........................................................... 59 / 16068 ( 0%) ........................................................... 118 / 16068 ( 0%) ........................................................... 177 / 16068 ( 1%) ........................................................... 236 / 16068 ( 1%) ........................................................... 295 / 16068 ( 1%) ........................................................... 354 / 16068 ( 2%) ........................................................... 413 / 16068 ( 2%) [...] ........................................................... 15517 / 16068 ( 96%) ........................................[31;1mE[0m.......[31;1mE[0m.......... 15576 / 16068 ( 96%) ........................................................... 15635 / 16068 ( 97%) ........................................................... 15694 / 16068 ( 97%) ...............[31;1mE[0m........................................... 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