Planned deployments, linked from wikitech:Deployments. For a list of past deployments, look for 'parsoid' in wikitech:Server Admin Log. See also Parsoid/Releases for non-alpha versions.

For the current train deploy schedule, see MediaWiki 1.43/Roadmap#Schedule for the deployments.

See wikitech:Parsoid#Deploying changes to learn how to deploy a new version of Parsoid.

July 9 - July 11: Yes V0.20.0-a12 as part of 1.43-wmf.13

  • Skip linting rendering transparent nodes on template pages, T369317
  • Add template to the mock namespace map
  • Add "new section link" to ParserOutput, T368726
  • Represent dataMw natively (not serialized to JSON) in Token
  • Remove redundant check
  • Introduce DataMwAttrib to represent attributes in DataMw objects
  • Add the tracked template for the task to the deploy log

July 2 - July 4: Yes V0.20.0-a11 as part of 1.43-wmf.12

  • Placeholders for future renaming of 'attrs' to 'extAttrs', T367616
  • Replace DataMwPart with TemplateInfo
  • Lint fostered rendering transparent nodes unless from a template, T290936
  • Sync parserTests with core
  • Decode section from title derived from href, T368334
  • Add selflink classes to variant resolved links, T358193
  • Avoid setting or serializing null for DataParsoid DSR properties
  • Sync parserTests with core, T279831
  • Add a --wt2lint option to bin/parse.php, T279831
  • Remove

June 25 - June 27: Yes V0.20.0-a10 as part of 1.43.0-wmf.11

  • Fix regression in Kartographer caused by the emergence of a `null` dsr
  • Ensure the title associated with the current test is a known title
  • Use JsonCodec to serialize data-parsoid/data-mw; ensure PageBundle is arrays, T365433
  • Sync parserTests with core
  • Loosen argument type of TokenStreamPatcher::reprocessTokens, T367376
  • Add DOMDataUtils::getCodec()
  • Proper class type for DataMwPart, T226428, T367109

June 18 - June 20: Yes V0.20.0-a8 as part of 1.43.0-wmf.10

  • Suppress missing-image-alt-text lint on aria-hidden or role=presentation, T344378
  • Add attribute data-mw-tmh="" to the video/audio elements, T295514
  • Detect modern image formats when using wgAllowExternalImages, T365636
  • Allow use of wikimedia/json-codec 3.0.0
  • Sync parserTests with TMH
  • Sync parserTests with core
  • Sync parserTests with core
  • Grammar: Minor: Reorder th/td rules a bit
  • Make th/td rules as similar as possible
  • Grammar: Remove unused sub-rule in table_data_tags + minor cleanups

June 11 - June 13: Yes V0.20.0-a7 as part of 1.43.0-wmf.9

  • Add missing-image-alt-text lint, T344378
  • Remove I18n DOM PostProcessor, T358191

June 4 - June 6: Yes V0.20.0-a6 as part of 1.43.0-wmf.8

  • Sanitizer: Disallow src()
  • Document a bug in KV.php with duplicate attributes
  • Use passed in dp in lints when node unchanged
  • Template Wrapping: Delete whitespace/comments in fosterable positions, T363170
  • Fix color output on test runner
  • Handle variants that resolve to invalid titles, T365678
  • Export another WTUtils helper to Extensions
  • Extract stripParsoidIds methods to be able to use it in other contexts
  • Don't recheck Parsoid's src/ directory when running phan in integrated mode

May 21 - May 23: Yes V0.20.0-a5 as part of 1.43.0-wmf.6

  • AddRedLinks: add string typecast to satisfy type constraints
  • Disable Chinese language conversion for variant link resolution, T258856, T53587
  • Rename /PP Directory to /DOM
  • eslint: remove redundant ruleset wikimedia/jsdoc, T365047
  • Add Parsoid and HTML version to the <body> tag
  • JSON::toDOM doesn't take a second option
  • Fix applying pb to old html selser
  • Implement basic variant link resolution, T258856, T53587
  • UnpackDOMFragmentsTest: Avoid dynamic property creation
  • Use more understandable names for pipeline recipes
  • Match whitespace between sol transparent utils

May 7 - May 9: Yes V0.20.0-a4 as part of 1.43.0-wmf.4

  • Move mock option to the top in CLI
  • Apply an inline style width to audio elements to match TMH, T133673
  • Update newly passing knownFailures
  • Clarify comment in Gallery about entity decoding in titles
  • ListHandler: Handle edge case in dt-dd lists, T363599
  • Fix response check on Parsoid API error, T358745
  • Extract info from $matches closer to where it's initialized
  • ListHandler: Minor cleanup

Apr 30 - May 2: Yes V0.20.0-a3 as part of 1.43.0-wmf.3

  • Match core styles for gallery line media errors
  • Handle gallery line with trailing closing square brackets
  • Apply gallery attributes in the legacy parser's order
  • Remove obsolete comment from Gallery::pLine
  • Remove obsolete comment from WikiLinkHanlder::renderFiler
  • Decode entities in filenames on gallery lines, T363520
  • Sync parserTests with core
  • Select branch when fetching parserTests
  • build: Updating npm dependencies

Apr 23 - Apr 25: Yes V0.20.0-a2 as part of 1.43.0-wmf.2

  • Handle comments and IEW on indicator paragraph unwrapping
  • Allow callers to pass in linterOverrides, T337275
  • Note in findLints that ext content is assumed to root in a single node
  • Remove the ability of lints to skip nodes
  • [CMC] Add ::setUnsortedPageProperty and ::setNumericPageProperty, T305158, T350224
  • Fix quote in help text of vendor prepare script

Apr 16 - Apr 18: Yes V0.20.0-a1 as part of 1.43.0-wmf.1

  • Look behind tables for fostered content when linting
  • WTUtils: Generalize fromExtensionContent + add unit tests
  • Sync parserTests with core
  • Process indicators as first nodes of templates, T359483
  • Move skipping rendering-transparent nodes into lintFostered
  • Move desc of multiline-html-table-in-list to method docblock
  • ContentMetadataCollectorCompat: remove old ::appendOutputStrings() stub
  • Make phab task id an arg and use it to branch / reference commit
  • Ensure composer is the version used in the vendor README
  • Simplify RegistrationHookHandler
  • tests: Replace deprecated withConsecutive in PHPUnit tests

Apr 9 - Apr 11: Yes V0.19.0-a25 as part of 1.42.0-wmf.26

  • Linter: Make names of methods consistent
  • build: Drop compatibility with composer/semver 3.3.x, T356447
  • Linter: A few minor cleanups
  • Move tidyWhitespaceBugMaxLength to LinterConfig
  • Check per-lint enable/disable conditions when recording
  • Stop dropping null values from lint data
  • Do not clobber existing data-mw on templates, T214241
  • Update baseconfig, T361231, T361232
  • Update sitematrix, T361231, T361232
  • Update api-testing expected error response
  • Literal html headings don't get section edit links, T361253
  • Sync parserTests with core

Apr 2 - Apr 4: Yes V0.19.0-a24 as part of 1.42.0-wmf.25

  • Assert processOneNlTk is only called when nlWsTokens has a NlTk
  • Tighten Parsoid dependencies ahead of MW 1.42/Parsoid 0.19.0 releaase

Mar 19 - Mar 21: Yes V0.19.0-a23 as part of 1.42.0-wmf.23

  • Bump wikimedia/zest-css dependency to 3.0.1, T357812
  • Add category in metadata when parsing links, T351931
  • ParserTests/TestRunner: Don't skip parsoid tests with empty-but-present html
  • Allow filter: in inline CSS, T308160
  • Lint inline styles with bg color without color, T358238
  • Strip entity spans from toc lines, T331483
  • Remove the special case for isATagFromWikiLinkSyntax
  • Reduce a level of nesting

Mar 12 - Mar 14: Yes V0.19.0-a22 as part of 1.42.0-wmf.22

  • Use tree walking to determine if headings are nested in extensions
  • Fix handling of headings in extensions wrt TOC data, T359450
  • Combine the anchor processing from WrapSectionState and Headings, T358401
  • Match metadata anchor/linkAnchor to heading with html entities
  • Beef up the decoding html entities in headings test
  • Move WrapSectionsState::processHeadingContent to Headings
  • Don't bother storing heading content data-attribs
  • Cleanup in deduplicating headings
  • Grammar: Use classes instead of assoc arrays to reduce memory use

Mar 05: Yes V0.19.0-a21


Released to break a dependency cycle with wikipeg in CI, but not deployed.

  • Allow use of wikipeg 4.0.0
  • Remove Poem implementation from Parsoid repository, T358054
  • Rewrite core tests using poem extension tag
  • Fix some NPM and Composer scripts on Windows
  • TemplateDataTest: Call non static functions non statically

Mar 05 - Mar 07: Yes V0.19.0-a20 as part of 1.42.0-wmf.21

  • LinterTest: Tidy up testLargeTables docblock
  • LinterTest: Add explicit @covers for Linter class, T358954
  • Document metadata options
  • composer.json: Explicitly pin nikic/php-parser, T358796
  • Support "showmedia" parsertests option, T358158
  • Add some cross-reference documentation between DOMCompat and DOMUtils
  • Remove bogus comment in storeInPageBundle, T358588
  • Add external link attributes to media links
  • Add an $extApi::getExternalLinkAttribs()

Feb 26 - Feb 28: Yes V0.19.0-a19 as part of 1.42.0-wmf.20

  • Populate image metadata info in parser output, T358158
  • No need to add TMH modules if we aren't rendering timed media
  • Sync parser tests from core
  • Don't count childNodes unnecessarily
  • build: Upgrade mediawiki/mediawiki-phan-config from v0.12.1 to v0.14.0 and make pass
  • build: Upgrade mediawiki-codesniffer to 43.0.0
  • querySelectorAll() and getElementsByTagName() return Countable or array
  • Fix more incorrect casing of MediaWiki

Feb 20 - Feb 22: Yes V0.19.0-a18 as part of 1.42.0-wmf.19

  • Fix two incompatibilities with PHPUnit 10
  • Ensure template wrappers get mw-empty-elt class, T353821
  • Remove unnecessary var
  • Add PageBundle::toDom()
  • Allow the use of composer/semver 3.4.0, T356447
  • [SectionMetadata] documentation updates

Feb 12 - Feb 14: Yes V0.19.0-a17 as part of 1.42.0-wmf.18

  • More informative error when trying to parse a revision that dne
  • Only set DSR on special page transclusion if it's first encap, T356714
  • Match HTML spec where transclusion shadows aren't needed

Feb 6 - Feb 8: Yes V0.19.0-a16 as part of 1.42.0-wmf.17

  • Assert invariant when constructing a Title from a LinkTarget, T356024
  • Remove deprecated PageConfig::getTitle()
  • build: Updating npm dependencies
  • build: Upgrade phpunit to 9.6.16, T342110
  • Remove tracking of needTransclusionShadow in TreeBuilderStage
  • Use posix compliant character class in sed
  • Fix casing of Mediawiki: Use MediaWiki consistently

Jan 30 - Feb 1: Yes V0.19.0-a15 as part of 1.42.0-wmf.16

  • Revert "No need to track needTransclusionShadow"
  • Remove Cite implementation from Parsoid repository, T354215
  • Add self-link processing, T69486
  • No need to track needTransclusionShadow
  • Remove deprecated SiteConfig (linter related) methods, T343314
  • TreeBuilderStage: Optimize inserting text in an edge case
  • Say preprocessWikitext is equivalent of preprocess from core
  • Replace use of deprecated tier 1 term in test title with neutral "bail", T254646
  • Fix integrated use of bin/parse.php with a title
  • Rename SerializerState::inModifiedContent to inInsertedContent
  • Fix selser issue with inserted gallery, T355282
  • Set DSR info on special page transclusions, T355704
  • Please De Morgan

Jan 23 - Jan 25: Yes V0.19.0-a14 as part of 1.42.0-wmf.15

  • Handle empty string return value from special page transclusions
  • WrapSectionsState: Prevent nextSibling access of null
  • WrapSections: Fix typos in comment
  • WrapSections: Fix potential edge-case bug
  • WrapSections: Accept null about id on "encapsulated" content
  • Support special page transclusions, T59886
  • Don't add TOC data for sections in extensions, T355092
  • Skip over extension content while looking for TOC insertion point, T355092
  • Add WTUtils::isFirstExtensionWrapperNode helper and use it
  • Ensure that the Cite extension can provide its own implementation, T354215
  • Add a test for section wrapping for heading as first child of a div
  • Fix typo in WTUtils::isExtensionOutputtingCoreMwDomSpec
  • Dry out WTUtils::isExtensionOutputingCoreMwDomSpec
  • Add helper script to generate visualdiff titles sql queries
  • Remove unused condition in TemplateHandler::processSpecialMagicWord
  • Show warning when dir="…" don't match, T202593
  • Fix a couple of bugs on prepare_vendor_patch

Jan 16 - Jan 18: Yes V0.19.0-a13 as part of 1.42.0-wmf.14

  • Avoid null in WrapSectionsState, T352467
  • Refactor WrapSectionsState.php
  • Ensure TOC is inserted in the right place, T352467
  • Decode href before attempting to construct a Title, T353889
  • Use TempData flag for bogus px
  • Fix edge case bug in TOC meta-tag generation, T352467
  • Simplify MW_COMPOSER
  • Enable picking composer from MW_COMPOSER env variable
  • Handle patches with no Bug:s
  • Make the vendor prep script more portable

Jan 9 - Jan 11: Yes V0.19.0-a12 as part of 1.42.0-wmf.13

  • Remove dead code path from WikiLinkText::fromSelSerImpl, T186241
  • Sync parserTests with Cite
  • TableFixups: Fix checks pertaining to cell recombination, T354204
  • Core requires a SettingsBuilder in Maintenance:finalSetup
  • Verify an existing tag's hash when preparing vendor patch
  • Give a different error from too_many_keys when 'follow' attribute conflicts, T299280
  • Disable Parsoid-integrated-mode tests for now
  • Minor tweaks to the vendor preparation script

Jan 2 - Jan 4: Yes V0.19.0-a11 as part of 1.42.0-wmf.12

  • Revert "Remove deprecated PageConfig::getTitle()"



Not deployed because it breaks core.

  • Remove deprecated PageConfig::getTitle()
  • Sync up citeParserTests with Cite repo copy
  • Make DataAccess::getPageInfo compatible with LinkTarget
  • Narrow argument type for DataAccess::fetchTemplate{Source,Data}
  • Template title resolution: Handle entities in template names, T353757
  • Remove deprecated PageConfig::getTitleObj() and SiteConfig::mainpage()
  • Remove redundant PHPDoc blocks that are identical to the code
  • Use correct Sanitizer method for id/fragment escaping, T298278
  • Sanitizer: Add missing strict types to all methods
  • Move property initializations from constructor to property
  • Remove obsolete comment about Sanitizer::safeEncodeAttribute
  • Change name of renamed messages, T353316
  • Fix sealed fragment duplication on node cloning, T260082

Deployments from previous years