Page MenuHomePhabricator

Implement a DOM format upgrade framework
Closed, ResolvedPublic

Description

We need to version our DOM format so that

  1. old versions can be detected, and ideally
  2. old versions can be upgraded to the latest version while reusing expensive parts of the DOM

This is especially important once we move to permanent HTML storage, but should also be useful to avoid the need for full cache purges in the current Varnish setup.


Version: unspecified
Severity: normal

Details

Reference
bz52937

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 1:51 AM
bzimport added a project: Parsoid-DOM.
bzimport set Reference to bz52937.

Change 81169 had a related patch set uploaded by GWicke:
Bug 52937: Add Parsoid version in HTML head

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

See also bug 52941, which is about the need to re-sanitize content with a newer sanitizer version as part of the upgrade path.

For efficiency we should probably expose the version as a HTTP header too, which can then be tested by the PHP frontend or Parsoid. The actual upgrade should happen in Parsoid using the varnish HTML, similar to the way we reuse HTML fragments currently.

Change 81169 merged by jenkins-bot:
Bug 52937: Add Parsoid version in HTML head

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

The first part (simple versioning) is now deployed in production. The upgrade framework is still to do. Lowering priority to reflect that.

marcoil added a project: Parsoid.
marcoil set Security to None.
ssastry claimed this task.

We have version numbers for the various pieces of content in the pagebundle endpoints. Whenever version numbers are bumped, Parsoid either provides backward compatibility for older versions or will be providing html2html endpoints as in T114413: Support various conversions in Parsoid's pb2pb endpoint.