Page MenuHomePhabricator

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

Description

Right now a number of extensions treat JsConfigVars as a read-write store, reading a previous value of JsConfigVars, updating it, and then storing the updated value back. This is incompatible with the separate/asynchronous/incremental parsing model on the Parsoid roadmap, as well as with the "write-only" model of the Parsoid ContentMetadataCollector interface.

Replace the current ParserOutput methods for JsConfigVars with add and set variants, which are guaranteed to be write-only. set will throw an exception if a different value is stored for a key (although use as a flag where multiple places set the same value is permitted), and append will create an accumulator set.

Related Objects

StatusSubtypeAssignedTask
OpenReleaseNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenFeatureNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenBUG REPORTNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
Resolvedcscott
ResolvedABreault-WMF
Resolvedcscott
Opencscott
Resolvedssastry
ResolvedJgiannelos
OpenJgiannelos
OpenJgiannelos
OpenJgiannelos
OpenJgiannelos
ResolvedJgiannelos

Event Timeline

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

[mediawiki/core@master] Hard-deprecate ParserOutput::addJsConfigVars()

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

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

[mediawiki/extensions/Graph@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

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

[mediawiki/core@master] Add ParserOutput::{set,append}JsConfigVar()

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

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

[mediawiki/extensions/Kartographer@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

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

[mediawiki/extensions/WikiLambda@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

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

[mediawiki/extensions/ProofreadPage@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

Arlolra triaged this task as Medium priority.Feb 2 2022, 6:27 PM
Arlolra moved this task from Needs Triage to Missing Functionality on the Parsoid board.

Change 757732 merged by jenkins-bot:

[mediawiki/core@master] Add ParserOutput::{set,append}JsConfigVar()

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

Change 757915 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

Change 757908 merged by jenkins-bot:

[mediawiki/extensions/Graph@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

Change 757916 merged by jenkins-bot:

[mediawiki/extensions/ProofreadPage@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

Change 757913 merged by jenkins-bot:

[mediawiki/extensions/Kartographer@master] Replace use of deprecated ParserOutput::addJsConfigVars()

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

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

[mediawiki/extensions/Wikibase@master] Replace use of ParserOutput::addJsConfigVars(), deprecated since 1.38

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

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

[mediawiki/core@master] Hard-deprecate ParserOutput::addJsConfigVars(), deprecated in 1.38

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

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

[mediawiki/extensions/Scribunto@master] Replace use of ParserOutput::addJsConfigVars(), deprecated since 1.38

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

Change 944922 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Replace use of ParserOutput::addJsConfigVars(), deprecated since 1.38

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

Change 946633 merged by jenkins-bot:

[mediawiki/extensions/Scribunto@master] Replace use of ParserOutput::addJsConfigVars(), deprecated since 1.38

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

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

[mediawiki/extensions/Scribunto@master] Assign UUIDs to Scribunto errors independent of page parse order

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

Change 757766 abandoned by Jforrester:

[mediawiki/core@master] Hard-deprecate ParserOutput::addJsConfigVars()

Reason:

Replaced by I53c28ee7c80b889c893c1d00f37678e716e55783.

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

Change 956511 merged by jenkins-bot:

[mediawiki/extensions/Scribunto@master] Assign UUIDs to Scribunto errors independent of page parse order

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

Change #943642 merged by jenkins-bot:

[mediawiki/core@master] Hard-deprecate ParserOutput::addJsConfigVars(), deprecated in 1.38

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