Page MenuHomePhabricator

Clean up old ParserCache serialization test cases
Open, Needs TriagePublic

Description

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.

Event Timeline

This could also help for php8.2 as dynamic properties, even after serialization, are deprecated (T314099), at the moment the tests are skipped on php8.2 (1b9809b3). Not sure if the check for ghost fields could make problems, but the json format should not be a problem (hopefully).

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).