Page MenuHomePhabricator

ProofreadPage: Move page proofreading status to an MCR slot
Open, Needs TriagePublic

Description

Currently, the proofreading status is stored in the Wikitext of the Page namespace main slot content. This is undesirable because it makes it awkward to present the page in various editors and binds the content and metadata uncomfortably.

Moving the proofreading status to a multi-content-revision (MCR) slot will allow us to keep the revision data in the revision, but also allow us to separate the content and status.

By using, e.g. a serialised JSON format, it will also be possible to easily add more data to the page metadata in future.

This is a separate issue to using change-tags (T290578) for a query-able and filterable view into page histories, which are currently derived from the <pagequality> tag, but moving it to a new MCR slot will not affect them.

See T290578#7357138 for more comments to this effect.

Event Timeline

One possible method towards this could be to use Wikibase in much the same way as Structured Data on Commons was deployed. We could develop something akin to Extension:WikibaseMediaInfo (or perhaps more like Extension:WikibaseLexeme since I am not sure we would need or want names, descriptions and aliases for these new objects) and for querying (per T172408) we could leverage things like WikibaseCirrusSearch, e.g., haswbstatement, wbstatementquantity, etc. or whatever else they are using.

It might be slightly heavy for our purposes but it also keeps us from having to reinvent several things while at the same time providing a lot. We could also perhaps move other things there (I am not sure how these are currently implemented but Index data comes to mind).

We might also be able to move page headers and footers into separate wikitext MCR slots that are rendered on pages in the Page: space (transcluding somewhat like a template) while allowing normal template style Page: transclusions of the main wikitext MCR slot (instead of being forced to use special transcludion tags; although they are handy for transcluding many pages at once).

For migration maybe a database script to add the slots to the revisions based on the current pagequality extension tags in the main slots could be used. I don't like altering past history and would not suggesting attempting to alter the historic main slot containing the pagequality tags but after migration they can effectively be ignored (except to ensure they were removed from future revisions; we could have a bot go around and touch all the pages removing this in a new revision after the MCR revision migration event).

Changes to the page quality level could also be tagged as per T290578 (but we would not need to use that as the source value and thereby not needing to depend on older revision tags or perform any migration there).