Parsoid/Deployments
Appearance
< Parsoid
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.
Oct 29 - Oct 31: V0.21.0-a2 as part of 1.44-wmf.1
[edit]- Use accessors for Env::$topLevelDoc
- Removed 'params' attribute from data-mw-i18n serialization where possible
- Port data-mw-i18n to use new generic rich attribute support, T348160
- Rich attribute support, phase 1a, T339927, T348160
- Handle undefined counter notices, T351047
- DOMDataUtils::extractPageBundle: return a proper PageBundle object
- Add a test for selective updates, T363421
- Get rid of ParserPipelineFactory initializer
- Render purely fragment links as links on pages in certain namespaces, T375002
- Scale new-style timing metrics by 1000
Oct 24: V0.20.0 for 1.43.0, v0.21.0-a1 to start new version series
[edit]- Render purely fragment links as links on pages in certain namespaces, T375002
- Scale new-style timing metrics by 1000
Oct 22 - Oct 24: V0.20.0-a27 as part of 1.43-wmf.28
[edit]- [CMC] Remove ::setPageProperty() in favor of its more-specific replacements
- Metrics improvements
- Fix case-sensitivity in namespaces and interwiki links
- Bump composer version in prepare_vendor_patch.sh
- Eliminate use of topLevel flag in DOM processors
- PHPUtils::counterToBase64: fix error in documentation comment
- Traversing with tplInfo includes extensions and language-variants, T377287
- Simplify processor config by moving 'withAnnotations' flag into the processor
- Replace Token[] with array<Token|string>
Oct 15 - Oct 17: V0.20.0-a26 as part of 1.43-wmf.27
[edit]v0.20.0-a26 cherrypick:
- Traversing with tplInfo includes extensions and language-variants, T377287
v0.20.0-a25:
- Process HTML in embedded attributes in a specialized pipeline, T214994
- Classify parses to identify opportunities for selective update, T371713
- Fix import in RegressionTesting script
- Remove unactionable logspam, T358588
- Allow localized gallery widths, T374311
- Remove hack from DOMRangeBuilder
- Remove stripDoubleTDs pass, T358958, T371745
- Increase ETag number in api-testing
- Remove transitional UTF-8 checks
- The devAPI routes were never ported to php
- Make sol a required option to parse
Oct 8 - Oct 10: V0.20.0-a24 as part of 1.43-wmf.26
[edit]- scandium is being replaced by parsoidtest1001, T363402
- stats: Use units as metrics suffix, T354908
- Add ::addTrackingCategory() to the ParsoidExtensionAPI
- Clarify that ParserTests\TestUtils is not for public use
- Move DataParsoid::$extLinkContentOffsets to TempData
- Use statslib for metrics increment, T359393, T359457
- Document signifiance of array order for SiteConfig::interwikiMap(), T370691
- Add ParserTests\Test::normalizeKnownFailure() for consistency with core
- Use try/catch for json_decode now that we're in PHP 7.4
- Fix constraining width in packed galleries
- Simplify separators test
- Sync parserTests with core
- Sync parserTests with core
- sync-parserTests.js: update documentation
- Inline lookupArg in expandTemplateArg
- Preserve newlines in tpl arg names when not substituted, T372170
- Sync parserTests with core
Oct 1 - Oct 3: V0.20.0-a23 as part of 1.43-wmf.25
[edit]- Make metadata addition a separate DOM processor
- Followup of 40b7474c: Unbreak selective update
- DRY out ParserPipelineFactory
- Selective update tweaks
- Canonicalize the dom to be selectively updated
- Separate parsing to fragment from the atTopLevel flag
- Sync parserTests with core
- Use processContentInPipeline util in TokenStreamPatcher
- Parser tests: add additional options to test ParserOutput metadata, T310512
- Deprecate SiteConfig::getMWConfigValue()
- Tests: Move RFC/ISBN/PMID parser tests to magicLinks.txt
- Add magiclink-tracking-* tracking categories, T373383
- Update Parsoid to be compatible with magic links being disabled, T145590
- Additional parser pipeline tweaks
- Sync parser tests with core
- Exit early from combineAttrsWithPreviousCell if prev had trailing bar, T358958, T371745
- Create specialized DOM transform pipeline stages & use them
- Introduce DataMwError, T367141
Sep 24 - Sep 26: V0.20.0-a22 as part of 1.43-wmf.24
[edit]- Use fresh-node when regenerating the pegjs tokenizers
- Lint duplicate ids, T200517
- Add tracking for 'broken-file-category', T375116
- Add DataAccess::addTrackingCategory, T375116
- Update pipeline types and declare specialized DOM transformers
- Generalize mw:EmptyLine to include sol-transparent-links (not just cats), T373389
- Make some Linter methods static
- Introduce TitleValue class
- Simplify DOM processor registration and invocation
- Fix complying with psr-4 autoloading standard complaint
- ParserTests: Don't run langParserTests test twice
- Make LinterTests covers more specific
- DOMPostProcessor: Ensure DOMTraverser handlers have the same signature
- Parser test: fixup html/parsoid sections after parser test sync
- Parsoid::wikitext2lint: Allow passing in a CMC
- Deprecate Title::getKey()
- Sync parserTests with core; ensure metadata is checked only in wt2html
Sep 17 - Sep 19: V0.20.0-a21 as part of 1.43-wmf.23
[edit]- DOMDataUtils::prepareChildDoc: Ensure codec is set
- Sync parserTests with core
- Match packed gallery height rounding with core
- Fix bin/parse.php crasher in remote API parsing mode
Sep 10 - Sep 12: V0.20.0-a20 as part of 1.43-wmf.22
[edit]- Use statslib for metrics emitted by parsoid, T354908
- Minor: Rename arg of DOM processors to $root from $workNode
- Make PWrap like other DOM processors that run before UnpackDOMFragments
- Remove deprecated function reference in a comment
- Clean up ContentMetadataCollector
- Fix parsing of interwiki links containing `mw:Extension` within annotations, T373374
Sep 3 - Sep 5: V0.20.0-a19 as part of 1.43-wmf.21
[edit]- Parsoid <title> element should be actual title, not displaytitle, T324431
- Remove old bcp-47 back compat code
- Deprecate uses of MediaWiki-specific language codes in parser tests
- Add local interlanguage links to page metadata, T358950
- build: Updating micromatch to 4.0.8
- Selective HTML Update: Unbreak selective updating code
- Selective HTML Update: Fix incorrect dom stage name
Aug 27 - Aug 29: V0.20.0-a18 as part of 1.43-wmf.20
[edit]- Selective HTML Updates, T363421
- Revert "Html2Wt: Remove substring UTF-8 checks where they are unsafe"
- Html2wt: Fix string creation with bad UTF-8 by validating offsets in DSRs, T371875
- For templated template targets, only expand first attribute, T372669
- Html2wt: be more careful to check DSR validity in separator reconstruction
- Minor: Fix trace output in TokenStreamPatcher to add missing ")"
- Prefer literal string image option to prefixed image option, T372935
- Replace gettype() with get_debug_type() in exception messages
Aug 20 - Aug 22: V0.20.0-a17 as part of 1.43-wmf.19
[edit]- Handle crashers in DisplaySpace after changes in b4679062
- Html2Wt: Remove substring UTF-8 checks where they are unsafe, T371875
- Html2Wt: don't construct substrings with bad UTF-8, T371875
- Emit fostered rendering transparent lints as a separate category, T371142, T369317, T290936
- Combine traversing for displayspaces and addlinkattributes
- Move AddLinkAttributes from /Processors to /Handlers
- Makes AddLinkAttributes a traverser, including through embedded HTML, T363705
- Add some FIXMEs highlighting issues around makeUneditable, T365706
- Exit early from combineAttrsWithPreviousCell if prev has attrs already, T371745
- Cleanup AnnotationDOMRangeBuilder::makeUneditable
- Cleanup constructing DOMRangeInfo
- Add explicit parentheses around mixed boolean operator
- build: Updating mediawiki/mediawiki-codesniffer to 44.0.0
- Improve tools/gen_visualdiff_titles.js
Jul 30 - Aug 1: V0.20.0-a16 as part of 1.43-wmf.16
[edit]- Revert "Ensure that empty lint errors `params` field is a JSON object", T371376
- build: Updating dependencies
- Ensure that empty lint errors `params` field is a JSON object, T371073
- Remove unnecessary null coalescing
- Use SourceRange objects in Html2Wt serializer code, T234548
- Add failing parser test to demonstrate failure
- Improve TableFixups code with better info from tokenizer
July 23 - July 25: V0.20.0-a14 as part of 1.43-wmf.15
[edit]- Make CleanUp::isEmptyNode more permissive, T370301
- Stop dropping sol transparent links in empty nodes in templates
- Remove unreachable code
- Add a test for unmatched closing block tags in lists, T368721
- Use a grammar header from npm run
- Revert linting fostered rendering transparent nodes, T369317
- Remove some dead code
- Handle numerical interwiki prefix key cast, T362499
- Reset Grammar::prevOffset on pipeline resuse
- Add a test for section titles failing to resolve redirected templates, T368095
- Reset section numbering per template, T368095
- More informative failure when knownFailures file is missing
- Remove duplicated codes in WikiLinkHandler
July 16 - July 18: V0.20.0-a13 as part of 1.43-wmf.14
[edit]- Grammar: Make table_heading_tag parsing rule not newline-greedy
- Set POF::NO_SECTION_EDIT_LINKS from behavior switch, T368095
- Run regen-tokenizer
- Handle "!!foo" parsing differences compared to "||foo"
- Sync parserTests with core
- Avoid dropping log lines containing "--" in gen_deploy_log.sh
- Clone dataMw in ExternalLinkHandler
July 9 - July 11: V0.20.0-a12 as part of 1.43-wmf.13
[edit]- 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: V0.20.0-a11 as part of 1.43-wmf.12
[edit]- 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 toolcheck.js.sh
June 25 - June 27: V0.20.0-a10 as part of 1.43.0-wmf.11
[edit]- 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: V0.20.0-a8 as part of 1.43.0-wmf.10
[edit]- 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
- Use JSON_THROW_ON_ERROR
- 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: V0.20.0-a7 as part of 1.43.0-wmf.9
[edit]June 4 - June 6: V0.20.0-a6 as part of 1.43.0-wmf.8
[edit]- 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: V0.20.0-a5 as part of 1.43.0-wmf.6
[edit]- 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: V0.20.0-a4 as part of 1.43.0-wmf.4
[edit]- 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: V0.20.0-a3 as part of 1.43.0-wmf.3
[edit]- 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: V0.20.0-a2 as part of 1.43.0-wmf.2
[edit]- 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: V0.20.0-a1 as part of 1.43.0-wmf.1
[edit]- 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: V0.19.0-a25 as part of 1.42.0-wmf.26
[edit]- 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: V0.19.0-a24 as part of 1.42.0-wmf.25
[edit]- 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: V0.19.0-a23 as part of 1.42.0-wmf.23
[edit]- 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: V0.19.0-a22 as part of 1.42.0-wmf.22
[edit]- 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: V0.19.0-a21
[edit]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: V0.19.0-a20 as part of 1.42.0-wmf.21
[edit]- 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: V0.19.0-a19 as part of 1.42.0-wmf.20
[edit]- 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: V0.19.0-a18 as part of 1.42.0-wmf.19
[edit]- 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: V0.19.0-a17 as part of 1.42.0-wmf.18
[edit]- 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: V0.19.0-a16 as part of 1.42.0-wmf.17
[edit]- 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: V0.19.0-a15 as part of 1.42.0-wmf.16
[edit]- 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: V0.19.0-a14 as part of 1.42.0-wmf.15
[edit]- 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: V0.19.0-a13 as part of 1.42.0-wmf.14
[edit]- 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: V0.19.0-a12 as part of 1.42.0-wmf.13
[edit]- 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: V0.19.0-a11 as part of 1.42.0-wmf.12
[edit]- Revert "Remove deprecated PageConfig::getTitle()"
v.19.0-a10
[edit]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
[edit]- Parsoid/Deployments/2013
- Parsoid/Deployments/2014
- Parsoid/Deployments/2015
- Parsoid/Deployments/2016
- Parsoid/Deployments/2017
- Parsoid/Deployments/2018
- Parsoid/Deployments/2019
- Parsoid/Deployments/2020
- Parsoid/Deployments/2021
- Parsoid/Deployments/2022
- Parsoid/Deployments/2023
- Parsoid/Deployments/T336101 followup