We don't need to test the PHP serialization any more, and we don't need to test versions as far back as 1.35. Just "the last version" and "the next version" should be sufficient.
Description
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Open | None | T325567 Document how to safely make changes to ParserOutput serialization | |||
Resolved | cscott | T355952 "PHP Deprecated: Use of MediaWiki\Parser\ParserOutput::setTOCHTML was deprecated in MediaWiki 1.40" in PHPUnit tests | |||
Open | None | T353570 Clean up old ParserCache serialization test cases | |||
Open | None | T279942 Why the type of values in mCategories in serialized data for ParserOutputTest::testDeserialization is int? | |||
Open | None | T293513 Deprecate and remove ParserOutput::setTOCHTML() | |||
Resolved | cscott | T295169 Parser TOC placeholder should be a meta tag | |||
Open | cscott | T295168 Ensure <meta typeof="..."> in Parser/Parsoid HTML can't be spoofed from wikitext | |||
Resolved | matmarex | T218330 Table of contents HTML may be unbalanced | |||
Open | None | T343050 Remove ParserOutput::$mWarningMsgs workaround from ParserCacheSerializationTestCases | |||
Open | None | T343048 Serialize ParserOutput::$mWarningMsg | |||
Resolved | cscott | T293515 Migrate ParserOutput::addWarning() to ::addWarningMsg() |
Event Timeline
As mentioned in https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1000086 and by @Umherirrender above there's a bunch of "ghost field" serialization compat that can get stripped out too.
Clarified the current compatibility policy with @daniel (prompted by a discussion with @Krinkle on https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1023098) and documented the policy at https://www.mediawiki.org/wiki/Manual:Parser_cache/Serialization_compatibility:
tl;dr the current policy is to retain compatibility with two LTS releases. Right now (1.43.0-wmf.2) that's back to 1.35 and PHP serialization, even though serializing as PHP was turned off in 1.39 (697f28df320d957676ad2cbaaeedba9b2e80bdfa).
So that means this task is blocked until 1.44.0 is branched; at which point we can remove PHP serialization support (including "reading PHP serialized objects" in ParserCache and the 'ghost field' support) as well as the serialization test files before 1.39 (aka *.serialized and 1.35-*, 1.36-*, and 1.38-* in tests/phpunit/data/ParserCache).