Parsoid/Deployments

Planned deployments, linked from Deployments. For a list of past deployments, look for 'parsoid' in Server Admin Log.

For the current train deploy schedule, see MediaWiki 1.37/Roadmap.

See Parsoid to learn how to deploy a new version of Parsoid.

July 29:
This version of Parsoid is being released to mediawiki-vendor in order to verify that T287419 and similar issues are fixed in beta before the train rolls for production. It is expected that 1.37.0-wmf17 will have a follow up build as  has not been rt-tested.
 * Fixes for Dodo issues w/ CI and DiscussionTools:
 * T287419: Upgrade wikimedia/dodo to 0.2.0
 * Add DocumentType and ProcessingInstruction to our DOM alias list
 * Be DOM-agnostic in DOMCompat/TokenList
 * T287611: Don't strictly enforce type hints in DOMCompat methods
 * T287463: Wrap next siblings in fixUpMisnestedTagDSR
 * html2wt: Centralize wikitext escaping to one place
 * html2wt: Use consistent casing for escapeWikitext
 * Add  to the automatically-generated documentation
 * Rename  to
 * PHPUtils::jsonEncode: Borrow some code from FormatJson::encode in core
 * T286840: Add leniency for active formatting elements in AddMediaInfo

July 27-29: ✅

 * T286839: P-wrap: Fix failing invariant by fixing undoIndentPre handling
 * P-wrap: Minor code simplification
 * T286786: Fix backtracking in solRegexp
 * Remove optional match
 * P-wrap: Minor code consistency tweaks

v0.14.0-a9 retracted
V0.14.0-a9 was the same as -a10 with the addition of patches to prepare Parsoid for a shift to using the Dodo DOM library. These patches caused core CI to break, and the problem wasn't solved by reverting Parsoid's deployment on  due to a bug in the   job (T287419). The v0.14.0-a9 tag was deleted from gerrit and removed from packagist to prevent its installation by the buggy  job.

July 20-22: ✅

 * T286786: Strip the double underscores from the extension bswRegexp
 * T286401: Fix DSR for unstripped stray closing tags & add b/c handling in selser
 * Ultra rare edge case: Fix bad check in html2w
 * T276512: Tweak heuristic to trim excess newlines from a separator string
 * html2wt: Rename awkwardly named function ( isForceSOL -> forceSOL )
 * html2wt: Fix incompatible min/max nl constraints early
 * html2wt: Minor code simplification and assorted minor cleanups
 * SerializerState: Minor cleanup to mimic code in Separators.php

July 13-15: ✅

 * T277760: Stop adding newlines in manglePreprocessorResponse
 * Lower the level of some noisy logs
 * Attribute exceeding limit to the right resource
 * T280381, T211946, T221238: Stop throwing on arbitrary resource limits,

June 29-July 1: ✅

 * html2wt: Simplify mergeSeparatorConstraints
 * T280381, T211946, T239841: Enforce wikitext limits like in the legacy parser
 * T283273: Replace freenode references with libera references
 * T283961: Prevent inline breaks in language variant text

June 8-10: ✅

 * Followup on : Add missing update to DDHandler

May 25-27: ✅

 * T247143: Extension: require MW 1.37+ and remove support for Revision objects
 * Minor cleanups: Remove dead code, use foreach, simplify exprs
 * Merge encapsulateTemplate and encapTokens
 * Pass media structure to figure handler

May 18-20: ✅

 * Account for all trailing newlines when wrapping text nodes
 * Upgrade to mediawiki/mediawiki-codesniffer 36
 * Only select on mw:Image when adding info
 * Magic word pipe isn't going to match table_start_tag

May 4-6: ✅

 * T279682: Handle optional spaces after table_attributes for table_row_tag
 * T279963: Fix interplay between recoverTrimmedWhitespace and DisplaySpace
 * T278565: Don't p-wrap tags in extension HTML
 * Always provide string to preg_match subject param

April 27-29: ✅

 * Bump wikimedia/zest-css version
 * T279682: Don't break on pipe in linkdescs if we're in an ext tag
 * T279803: Fixing asserting an about id
 * T264028: Disable single line context when serializing nowikis
 * T280050: UnpackDOMFragments: Improve DSR fixup for misnested A tags
 * T279867: Fix collecting attributish content in table fixups
 * html2wt: Use trimmed whitespace recovery heuristics only if needed
 * T280449: Add some logging around failing preg_match when serializing
 * T280672: Account for nested transclusions in table fixups

Apr 13-15: ✅

 * T279451: Use a protected key to distinguish comments internal to Parsoid
 * Remove option to
 * T279184: Fix undefined DSR notice
 * T279182: Handle comments that decode to valid json
 * T279223: Handle empty text nodes in Selective Serializer
 * Only call encapTokens if we're wrapping

Apr 6-8: ✅

 * Process jsconfigvars from core parser output
 * Minor bug fix in handling of in TemplateHandler
 * T277800: Add some logging around failing preg_replace when serializing

Mar 30-Apr 2: ✅

 * T269749, T277415: ListHandler: when in EOL state, close lists always
 * DOMPostProcessor: Extract function to update classes
 * DOMPostProcessor: Extract function to export style modules in
 * T276620: html2wt: Improve heuristics enabling reuse of separators from source
 * T274521, T30980: Be more permissive for extension tag names
 * T278074: Handle wikilinks misnested in media links
 * T278074: Log an error if media structure is messed up
 * Allow use of newest version of wikimedia/remex-html

Mar 23-25: ✅

 * T275918: French spacing: don't require non-space before French spacing
 * T223797: Strip newlines from Category sortkeys
 * ListHandler: Close holes in tracing code
 * WrapTemplates: Extract functions to improve code comprehensibility

Mar 17-18: ✅

 * Fix roundtripping interwiki links with complex targets that have colons (follow up to patch in -a27 for T276649 to fix regression).
 * Separators: Code cleanup and documentation fixes

Mar 16-18: ✅

 * T199070: More permissive regexp for nested extension start tags
 * No need to protect opening angle bracket in extension tag
 * Stop allowing spaces before extension closing tag name
 * Add some explanatory comments for ref in ref
 * T276649: Subpages on interwiki / language links are invalid
 * T276388: Check for multiples doesn't apply to follows

Mar 2-4: ✅

 * T248369: Follow on patch to wikilink in extlink for video and audio content
 * T248369: Adding linter case for media in extlink
 * T275503: WTUtils::isFirstEncapsulationWrapperNode expects a node
 * TplWrap: Fix edge case bug that expanded template scope unnecessarily
 * T240642: WrapSections: Don't crash if we have incomplete DSR information

Feb 23-25: ✅

 * T215999 Lint duplicated media width options; lint bogus media width options
 * T255007 Don't apply French spacing in raw text elements
 * T272232 Modify UTF-8 regex to use builtin PCRE validation
 * T242068 Add lint for Parsoid wikilinks in extlinks with italic or bold
 * T265720 TableFixups: One more mishandled scenario with newlines
 * Minor robustness fix in WikitextEscapeHandlers
 * WrapTempates: Get rid of unused property in template ranges

Feb 16: ✅

 * TableFixups: Minor tweaks
 * Don't apply border class to thumbs

Feb 16: ✅

 * Template Wrapping: don't expand range unnecessarily
 * T270373: Use prefixed text for content of links up the path
 * Separate arguments to getPipeline
 * Get rid of parseToplevelDoc
 * Add $frame to ParserPipeline and remove from pipeline stages
 * Refactor sanitization in a normalizeKey function
 * T267974: Contract multiple underbars in a row in refnames to a single underbar
 * Get rid of rtTestMode (used for pre-production testing only)

Jan 18 - 22: No deploy
No deploy due to week shortened by WMF holiday.

Jan 11 - 15: ✅

 * T270180: Handle selser edge case for first content-node of (follow up to T262448 patch included in )
 * T267974: Fix for Parsoid Cite refname whitespace handling
 * T237538: Disentangle Disambiguator extension from Parsoid
 * T260082, T271357: More papering over in References.php (follow up to T259676 patch included in )
 * T265094: Handle newlines in wikilinks for selser as well (follow up to T265094 patch included in )
 * Other: Disable rt-testing mode, clean up most old code from Parsoid/JS, tweak rt test configuration

Jan 5 - 7: ✅

 * T251641: Emit span tags instead of figure-inline
 * Bump output content version to 2.2.0
 * T51538: Add parameters to various cite errors
 * T270307: Allow Parsoid extension modules to be unregistered
 * Tokenizer: Don't eat leading spaces from template values
 * T269719: PHP 8.0 compatibility, Remove PHPUtils::coalesce