Page MenuHomePhabricator

Ensure Page Properties can always be combined asynchronously/out-of-order
Open, MediumPublic

Description

Setting the same page property multiple times with conflicting values is inconsistent with an asynchronous/out-of-order parsing model.

Event Timeline

As part of this work, we should probably also deprecate ParserOutput::unsetPageProperty().
It is hardly used: https://codesearch.wmcloud.org/search/?q=unsetPageProperty&i=nope&files=&excludeFiles=&repos=

Unfortunately the use in Wikibase is a little nontrivial to get rid of. It's being used to clear all 'badge' related page properties before adding the new ones for an item. I strongly suspect that it is almost always doing nothing, because the pre-existing badge properties are either identical to the ones being set, or empty, but I'd need to understand what's going on with badges in wikibase a little better to be able to be confident of this.

Change 757905 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Deprecate ParserOutput::setPageProperty with conflicting values

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

Change 759740 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Store `noexternallanglinks` in extension data, not page property

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

ssastry triaged this task as Medium priority.Jun 14 2022, 10:38 PM
ssastry added a project: Parsoid-Read-Views.