Jump to content

Parsoid/Deployments/2025

From mediawiki.org

Dec 16 - Dec 18 Yes V0.23.0-a9 as part of 1.46.0-wmf.7

[edit]
  • Add maintenance script to get TOC data as JSON
  • DOMCompat: optimize getElementsById() on PHP 8.4
  • Recognize dash-prefixed Parsoid fragment markers, T408391

Dec 2 - Dec 4 Yes V0.23.0-a8 as part of 1.46.0-wmf.5

[edit]
  • Fix dirty-diffs in ref content, T411238
  • build: Updating eslint-config-wikimedia to 0.32.2
  • Add a DOMCompat::appendChild method, T411228
  • Sync parserTests with core
  • Add attr to pre ext to parse content as wikitext, T353697
  • Rich attributes: for compatibility use DataMwAttrib::$value['html']
  • Handle deserialization of old parser functions with named arguments, T373253, T204307, T410826
  • Deprecate conversions to inline attribute form without SiteConfig
  • Running in --integrated mode doesn't require the Parsoid extension anymore
  • Bump composer version in prepare_vendor_patch.sh

Nov 26 Yes V0.23.0-a7 backported to 1.46.0-wmf.4

[edit]

Nov 25 - Nov 27 Yes V0.23.0-a6 as part of 1.46.0-wmf.4

[edit]
  • Move HtmlPageBundle::validate() to BasePageBundle()
  • Ensure that we can round-trip through "embedded page bundle" format
  • Sync parserTests with core
  • Ensure DomPageBundle::toInlineAttributeHtml() handles embedded HTML
  • bin/parse.php: Support combining --pageBundle and --wt2wt options
  • build: Allow IP Utils 6 as well as 5
  • Sync parserTests with core
  • Add more tests for template pre hack, T353697
  • Fix packed gallery audio item width, T409127
  • ParsoidExtensionAPI: Error i18n fragments get class='error', T400649
  • Make use of PHP's (...) callable syntax where possible
  • build: Updating eslint-config-wikimedia to 0.32.1
  • Get the list of behavior switch magic words from core, T407289, T407290
  • DataMwAttrib: Use live DocumentFragment for html values

Nov 18 - Nov 20 Yes V0.23.0-a5 as part of 1.46.0-wmf.3

[edit]
  • TableFixups: Fix getReparseType, T407937
  • Move assertion out of DOMDataUtils::storeDataAttribs into caller
  • Remove duplicate from character class
  • Allow row syntax td starting with closing curly brace, T409972
  • Don't suppress extensionData in TOCData serialization, T409910
  • T409345: Convert assertion into logged error, T409345
  • Various code cleanups and modernizations in TokenUtils
  • Make use of PHP's new match() syntax in more places

Nov 12 Yes V0.23.0-a4 cherry-picked to 1.46.0-wmf.2

[edit]
  • Don't suppress extensionData in TOCData serialization, T409910

Nov 11 - Nov 13 Yes V0.23.0-a3 as part of 1.46.0-wmf.2

[edit]
  • DOMTraverser: Allow invoking handlers *before* attribute-embedded HTML
  • Avoid appending empty fragment, T409608
  • Span wrap fostered fragments earlier, T408958
  • Add tests for template pre hack, T353697, T398969
  • Remove fromCache option to tunnelDOMThroughTokens
  • Update docs since encapsulateExpansionHTML was removed
  • Fix parserTests differ
  • TOCData: don't emit extensionData key in JSON unless it is nonempty
  • RegressionTesting.php: ensure files are group writable

Nov 4 - Nov 6 Yes V0.23.0-a2 as part of 1.46.0-wmf.1

[edit]
  • build: Update phpunit/phpunit to 10.5.58
  • Allow templates with no target in template arguments, T408631
  • Split first argument from target in parser function ParamInfo, T390344
  • Convert Language Converter to use NodeData objects, T380517
  • Add assertions of source consistency
  • prepare_vendor_patch: Update documentation
  • Remove methods which have been deprecated with warnings

Oct 29 v0.23.0-a1 to kick off the 1.46 branch

[edit]
  • No changes from v0.22.0

Oct 29 v0.22.0 for 1.45 release

[edit]
  • Sync parser tests with core
  • Support U+FF3F as behavior switch prefix, as used on jawiki, T407289

Oct 28 - Oct 30 Yes V0.22.0-a29 as part of 1.45.0-wmf.25

[edit]
  • Add missing null checks in ParsoidExtensionAPI, T408312
  • Limit transferring typeof to mw:Transclusion, T370751, T378906
  • DOMUtils::appendToHead(): create outer <html> if necessary
  • DOMRangeBuilder: Suppress newline-spans between link tags, T407798
  • Make td & th parsing rules more or less identical
  • Add known Parsoid-failing table test
  • TableFixups: Generalize cell-splitting support, T407937
  • TableFixups::hoistTransclusionInfo: Update removal of wrappers
  • Empty ext content shouldn't prevent mw-empty-elt
  • Self-closed nowikis are pwrap optional, T407809
  • Set stx for special case
  • Minor: Cleanup stale doc
  • DOMRangeBuilder: Refactor non-element deletion into own method
  • Cleanup table fixup tests file a bit
  • TableFixups: Set the right flag on a split cell to prevent merges

Oct 21 - Oct 23 Yes V0.22.0-a28 as part of 1.45.0-wmf.24

[edit]
  • Enable parsoid rendering for ProofreadPage extension, T278481
  • Non extlink in wikilink, T374445, T400771
  • Template Wrapping: Narrowly targeted hack/fix for next-sibling breakage, T370751
  • Add PreprocTk::trimContentsKV()
  • Add PreprocTk::splitContentsBy(), T394834
  • New PreprocTk tokens for "unexpanded preprocessed text", T393391
  • WTUtils: Cleanup b/c code in findAboutSiblings
  • TSP: Handle case of null srcOffset correctly
  • Separate out "TSR source" from the "template argument frame", T405759
  • TSP: on EOF, use sourceOffsets to extract pipeline input, T405666
  • Make source offsets a first-class pipeline stage property
  • Suppress breaking on !! in wikilinks, T403931
  • Fix file in table pipe precedence, T403931
  • PipelineStage: Cleanup stale documentation
  • PipelineUtils::handleAsyncResult() doesn't need the $env argument

Oct 14 - Oct 16 Yes V0.22.0-a27 as part of 1.45.0-wmf.23

[edit]
  • mw:DOMFragment nodes are not rendering-transparent
  • Migrate leading/trailing rendering-transparent nodes in templates, T370751, T378906
  • Fix documentation typo
  • DataParsoid::$pi is a clonable list
  • Update known failures for integrated tests
  • Factor out PipelineUtils::handleAsyncResult()
  • Regenerate grammar with latest prerelease wikipeg
  • ParserHook: rename fragmentHandlers to pFragmentHandlers
  • Don't use Pre handler in ExtensionTestHandler
  • Grammar.pegphp: Allow |{{!}} and {{!}}| in `pipe_pipe` production
  • Sync parserTests with core
  • tests: Remove usage of ReflectionProperty::setAccessible(), T406744
  • build: Updating ockcyp/covers-validator to 1.7.0
  • Set TempData::AT_SRC_START if template source starts with `|`
  • DOMRangeBuilder: Cleanup signatures
  • build: Convert some phpcs:disable to phpcs:ignore and remove unused one

Oct 7 - Oct 9 Yes V0.22.0-a26 as part of 1.45.0-wmf.22

[edit]
  • TSP: Deal with includeonly tokens during tr-reprocessing, T405666
  • Fix AttributeExpander::tplTokensToString to actually return string
  • DataMw::newFromJsonArray(): distinguish parserfunction and old-parserfunction
  • build: Replace @phan-template annotations with @template, T403790
  • (Finally) port `--color=true` to PHP
  • Fix regression of vertical alignment, T405987
  • Add links to HISTORY.md to where releases are now tracked, T405934, T332457
  • Deprecate DOMCompat::nodeName() with warnings
  • Packed mode gallery thumbs have min 60px width, T404007
  • Sync parserTests with core
  • ParsoidExtensionAPI: add support for &amp in renderMedia method, T403850

Sep 30 - Oct 2 Yes V0.22.0-a25 as part of 1.45.0-wmf.21

[edit]
  • Sanitize data- attributes, T401099
  • bin/parse.php: add --nativeTemplateExpansion option
  • Add newline after `--dump=help` output from script tools
  • Ensure wikilink fragments are appropriately escaped, T199926, T404823
  • Sync parserTests with core
  • magicWords.txt: Modify test to go with new file with core, T403850
  • Tests: Strip unnecessary dsr from a number of tests
  • Add KVSourceRange::span()
  • Fix misnaming of $wgParsoidExperimentalParserFunctionOutput
  • Rename {,v3}parserfunction to {old-,}parserfunction
  • Move parsoid fragment marker processing into the tokenizer, T385806
  • TSP: Minor refactor and cleanup for clarity

Sep 23 - Sep 25 Yes V0.22.0-a24 as part of 1.45.0-wmf.20

[edit]
  • Account for aborted tokens when tr is templated, T404409
  • Tokens property is always set on trReparseBuf
  • Reapply "TSP: Support minimal token gluing for attributes", T404409
  • composer.json: remove --allow-polyfill-parser from `phan` invocation
  • Sync parserTests with core
  • tests/parser/headings.txt: fix typo in comment
  • Eliminate bad dsr for br logs from rt testing
  • Update systemd unit names in testing scripts for PHP 8.3, T403772

Sep 16 - Sep 18 Yes V0.22.0-a23 as part of 1.45.0-wmf.19

[edit]
  • Revert "TSP: Support minimal token gluing for attributes", T404409, T404447
  • ContentMetadataCollector: temporarily broaden ::append* param types

Sep 16 - Sep 18 Yes V0.22.0-a22 as part of 1.45.0-wmf.19

[edit]
  • TSP: Fix edge-case breakage in tr-token-gluing support, T404409
  • Rename DOMCompat::nodeName() to DOMUtils::nodeName()
  • composer.json: Relax justinrainbow/json-schema constraint and allow ^6.4.2
  • Switch ContentMetadataCollector strategy to an enumeration, T403621
  • Mark "empty" <tbody> elements with mw-empty-elt class, T378629

Sep 12 Yes V0.22.0-a21 as early tag for 1.45.0-wmf.19

[edit]
  • Ensure that Parsoid DOM aliases are loaded before parsing, T400401
  • BasePageBundle: add ::withHtml(), ::withDocument(), and ::toBasePageBundle()
  • Consider all pf arguments as positional, T400080, T204307
  • DOMDataUtils: add ::cloneDocument() method
  • Grammar.pegphp: Small optimization to comment parsing
  • Use wikipeg rule variable to ensure headingIndex is correct after backtrack, T52369, T222419, T372387
  • Fix breaking tpl args on equals in html tags, T400080
  • Reapply "Reapply "Switch to named when numbered tpl arg has tag with attr""
  • Add redlinks colour to broken media links, T374868
  • Rename MergeStrategy::COUNTER to MergeStrategy::SUM, T403621
  • build: Updating mediawiki/mediawiki-codesniffer to 48.0.0
  • Simplify ParserPipeline::processChunkily

Sep 9 - Sep 11 Yes V0.22.0-a20 as part of 1.45.0-wmf.18

[edit]
  • Add MergeStrategy::COUNTER support to StubMetadataCollector, T403621
  • Revert "Reapply "Switch to named when numbered tpl arg has tag with attr""
  • Improve debuggability of data-mw/data-parsoid deserialization failures, T388160, T403208
  • Linter: Add metrics and disabled lint for templates inside extlinks
  • Add MergeStrategy enumeration, T403621
  • TSP: Fix bug in handling unsupported tr token gluing scenario
  • TSP: Support minimal token gluing for attributes, T401054
  • Reapply "Switch to named when numbered tpl arg has tag with attr", T400080
  • ExtensionError i18n fragments get class='error', T400649
  • Use Bcp47Code instead of string on parse CLI args, T403239
  • Use bracketPairStrippedStr when doing nowiki checks
  • Skip duplicate JsonSchema validations for performance reasons
  • composer.json: Relax constraints on symfony/polyfill-php8*

Sep 2 - Sep 4 Yes V0.22.0-a19 as part of 1.45.0-wmf.17

[edit]
  • Turn on hints to improve the serialization of I18nInfo
  • Use admin instead of alice to change contentmodel, T85847
  • Hard deprecate DOMTraverser::traverse() with ParsoidExtensionAPI

Aug 26 - Aug 28 Yes V0.22.0-a18 as part of 1.45.0-wmf.16

[edit]
  • Stop passing ParsoidExtensionAPI to ContentUtils::shiftDSR, T402710
  • Missing Images: Don't drop span content for "empty" alts, T399979
  • Add missing caption tag to WtTagWidths
  • Forward-compatibility for I18nInfo hints
  • Use SiteConfig for processing attribute embedded DOM/HTML
  • Don't drop autoinsertedend mark on trs in html tables
  • Retokenize wikilink target for non-wikilinks, T402415, T402586
  • AttributeExpander: Disable nl-splitting for td/th/caption tokens, T402351
  • AttributeExpander: Handle degenerate case better
  • Fix title-casing and NFC normalization of titles, T21451, T258858, T400057
  • Upgrade to wikimedia/remex-html 5.1.0; always use single owner document, T400060, T179082, T217705
  • Update ContentMetadataCollector docs for ::updateRuntimeAdaptiveExpiry()
  • build: Updating mediawiki/mediawiki-phan-config to 0.17.0
  • PegTokenizer: Ensure token stream ends in an EOFTk

Aug 19 - Aug 21 Yes V0.22.0-a17 as part of 1.45.0-wmf.15

[edit]
  • OnlyInclude: Add resetState() method
  • TSP: Log TSP output so we know what TSP did to the token stream
  • Ensure we reset srcOffsets when setting srcText in new pipeline
  • Update to wikipeg 6.0.0
  • Add PHPUtils::deprecated()
  • Tweak trace logging in Sanitizer & TreeBuilder
  • Allow wikimedia/json-codec 4.0.0
  • Shift tokens after parsing to expanded, T401454
  • Add .editorconfig to protect parser tests from changes
  • TSP: Reduce scenarios of passing null offset to reprocessTokens, T401454

Aug 12 - Aug 14 Yes V0.22.0-a16 as part of 1.45.0-wmf.14

[edit]
  • Enable TokenStreamPatcher on extension content, T399638
  • Set attrSrc tmp on the rest of the table tags, T400633
  • Ensure TSP doesn't lose attributes for templated tokens, T400633
  • Clean up TokenUtils::shiftTokenTSR to clarify semantics, T237463
  • Resolve some PORT-FIXMEs, T237463
  • Change comment style for various class comments
  • Stop calling setlocale and checking for a sensible platform, T291234

Aug 5 - Aug 7 Yes V0.22.0-a15 as part of 1.45.0-wmf.13

[edit]
  • Revert "Switch to named when numbered tpl arg has tag with attr", T400955
  • Use constructor property promotion on anon class in SiteConfig
  • Improve DataMwBody::hasHtml
  • Dom/Handlers/CleanUp.php: Added mw:DisplaySpace spaces removal, T400845
  • ParserTests/Grammar.pegphp: optimize with new WikiPEG 6.0 features
  • Grammar.pegphp: use @ (pick) operator
  • Improve performance of smartQuote feature in XHtmlSerializer
  • Parser functions don't need equals escaping, T400080
  • build: Move @phan-file-suppress to top of file
  • build: Updating eslint-config-wikimedia to 0.31.0
  • Add polyfills for methods added in PHP 8.2/8.3/8.4
  • Switch to named when numbered tpl arg has tag with attr, T400080
  • Add caching of attribute value expansions, T392939

July 25 - July 30 Yes V0.22.0-a14 as part of 1.45.0-wmf.12

[edit]
  • Grammar.pegphp: Add POSITION shortcut to tokenizer
  • Grammar.pegphp: re-enable infinite loop and useless choice checks
  • build: Fix PSR-4 namespace paths to include trailing slash
  • Grammar.pegphp: mark the most common rules for inlining
  • Regenerate tokenizer with latest wikipeg 6.0-prerelease
  • Allow to pass existing DataMwError instances
  • extension.json: Add missing trailing slash to AutoloadNamespaces
  • Add a test that default prefix isn't xhtml serialized, T400060

July 22 - July 24 Yes V0.22.0-a13 as part of 1.45.0-wmf.11

[edit]
  • Revert "Ensure <mw:editsection> can round-trip with PHP 8.4", T400060
  • Use php8 functions str_contains, str_starts_with and str_ends_with
  • Don't expand template-like strings returned from the preprocessor, T385806
  • DomPageBundle: clarify by-reference output parameters, always provide Env
  • Document @throws in ExtensionTagHandler
  • Use $this directly in closures
  • tools: Pass separator as first argument to implode()
  • Reapply "Regenerate tokenizer with latest wikipeg 6.0-prerelease"
  • DOMCompat: Ignore $isHtml argument to ::newDocument(), always return HTML doc
  • Ensure <mw:editsection> can round-trip with PHP 8.4
  • Always add mw-empty-elt class to empty wikitext tr nodes, T399019
  • build: Remove ReturnTypeWillChange stub from phan

July 15 - July 17 Yes V0.22.0-a12 as part of 1.45.0-wmf.10

[edit]
  • Add fragment map to HtmlPageBundle/DomPageBundle
  • Omit comment-like strings from greater than escaping in attrs, T396421
  • Reapply "Allow annotation tags in extension tags", T396421
  • Revert "Regenerate tokenizer with latest wikipeg 6.0-prerelease"
  • Enable PHP error reporting (deprecated methods, etc) when standalone
  • Add serialization hint for compound tokens
  • Drop intemplate rule parameter as redundant
  • Grammar.pegphp: th and preproc parameters should be reference parameters
  • Regenerate tokenizer with latest wikipeg 6.0-prerelease
  • Bump wikimedia/wikipeg to 5.0.1
  • Rename PageBundle to HtmlPageBundle; leave aliases behind
  • Allow BasePageBundle in getNodeData
  • Add new BasePageBundle type
  • Fix tokenization issue when parser function is embedded in dldt, T399010
  • Sync parserTests with core
  • WikitextEscapeHandlers: Fix crasher due to unhandled CommentTk, T398610

July 8 - July 10 Yes V0.22.0-a11 as part of 1.45.0-wmf.9

[edit]
  • metrics: Fix msperkb histogram buckets calculation

v.22.0-a10 - not deployed, superseded by v0.22.0-a11

[edit]
  • Update mediawiki/mediawiki-phan-config to 0.16.0, T398655
  • Regenerate tokenizer with latest wikipeg 6.0-prerelease
  • Tighten wikimedia/remex-html requirement to 5.0.0
  • Use a WeakMap instead of a dynamic property on the Document object
  • Stop using deprecated PageConfigFactory::create()
  • Sync parserTests with core
  • Enforce proper types on PipelineStage

July 1 - July 3 Yes V0.22.0-a9 as part of 1.45.0-wmf.8

[edit]
  • Revert "Allow annotation tags in extension tags", T396421
  • Bug fix: Newlines can contain \r as well, T353874
  • Allow annotation tags in extension tags, T396421
  • Move DOMUtils::attributes() to DOMCompat::attributes()
  • Support Dodo/PHP8.4 DOM implementations, T393922
  • Regenerate tokenizer with wikipeg 6.0-prerelease
  • Grammar.pegphp: Remove some infinite loops
  • Grammar.pegphp: more table parsing rule optimizations, T353874
  • Require strict_types

June 24 - June 26 Yes V0.22.0-a8 as part of 1.45.0-wmf.7

[edit]
  • composer.json: Updated nikic/php-parser from ^4.10.2 to ^5.5.0, T379508
  • Move toc stripping to normalizePhpOutput
  • build: Updating brace-expansion to 1.1.12, 2.0.2
  • Update normalize php output method, T395234
  • Avoid ZhConverter creation altogether in AddRedLinks, T395630
  • Convert DiffMarkers to PHP8 enum
  • Introduce DataMwExtAttribs, T367616
  • Remove back-compat code for string-valued language codes
  • composer.json: Remove symfony/polyfill-php80

June 17 - June 19 Yes V0.22.0-a7 as part of 1.45.0-wmf.6

[edit]
  • Fix wrong offset type on ExtensionHandler argument normalization
  • Harden TokenUtils::dedupeAboutIds, T396886
  • Add a test for lintHandler
  • Make argument normalization API for extension less clunky
  • Don't hoist categories outside the <body> in the presence of bare <li>, T390629
  • Grammar.pegphp: Avoid excessive memory use on malformed inputs, T353874
  • Api\DataAccess::mergeMetadata(): cast array keys to string
  • Mark or fix unused foreach variables
  • Introduce DOMUtils::childNodes() and avoid using Node->childNodes
  • Remove unused properties from RemoveRedLinks/Consts/WikiLinkHandler
  • Refine types, part 3/3
  • Minor: Finish removing PegTokenizer::$lastError
  • Refine types, part 2/3
  • Drop PHP 7.4 support
  • Refine types, part 1/3

June 10 - June 12 Yes V0.22.0-a6 as part of 1.45.0-wmf.5

[edit]
  • Re-enable wikilink caching
  • Remove TokenStreamPatcher::$lastConvertedTableToken
  • Fix undefined SourceOffset in wikitext grammar
  • Add missing return types
  • Add types to closures
  • Tweak attribute comparison in DomDiff
  • bin/parse.php: log to stderr by default
  • Remove DOMFragment contents when it is cloned for use as a wrapper
  • Fix string concatenation bug in LanguageVariantHandler
  • Fix missing use() variable in LanguageVariantHandler
  • Fix QuoteTransformer::onCompoundTk handling of EmptyLineTk
  • Minor: Simplify QuoteTransformer td/th handling
  • Remove dead code after fca8a7df
  • Use DOMDataCodec for logging; rename 'saveData' option to 'noSideEffects'
  • DOMDataUtils: dedupe should handle transclusions in general
  • Don't mutate embedded DocumentFragments while logging
  • Don't store an entire token for contextTok -- name is sufficient
  • Introduce EmptyLineTk to replace the EmptyLine meta tag, T268584
  • Remove chainable return value from ContentUtils::shiftDSR
  • Remove unused Config/Api/Env
  • Make method parameter names consistent
  • Clean up __clone() in DataMw/DataParsoid
  • Convert data-parsoid.html to a DocumentFragment
  • Remove unused variable definitions
  • Remove unused Utils::phpURLEncode method
  • Remove b/c for RFC magic link url, T382963
  • Add mildly hacky --debug-oom flag to parse.php, T392261

June 3 - June 5 Yes V0.22.0-a5 as part of 1.45.0-wmf.4

[edit]
  • Add DataMwBody::{get,set,has}Html as transitional helpers
  • Only deduplicate about and annotation ID beginning at a start tag
  • Refactor LinterTest::testWikilinkInExternalLink to use a dataProvider
  • Minor: Cleanup comments & dead code
  • Use consistent argument names when implementing inherited methods
  • Create language converter only once for AddRedLinks, T395630
  • Remove normalizing heading ids
  • Add ::getContentId() and ::clearContentId() to extension API
  • Deduplicate about IDs and annotation IDs as well as node data ids
  • Minor: Use the compact 'instanceof XMLTagTk' check + other tweaks
  • Disable WikiLink caching temporarily.
  • Create a TokenCache class and use it in PegTokenizer & WikiLinkHandler
  • Ensure logger can handle tokens with embedded DocumentFragments
  • build: Updating eslint-config-wikimedia to 0.30.0
  • Bump wikipeg to 5.0.0 and remove redundant code in Tracer
  • Minor: Fix class names to match case
  • PipelineUtils: remove ::encapsulateExpansionHTML
  • PipelineUtils: remove dead code, simplify ::encapsulateExpansionHTML
  • Use DocumentFragment for data-mw.html (indicators)
  • Sync parserTests with core
  • Cache wikilink computation, T393726

May 27 - May 29 Yes V0.22.0-a4 as part of 1.45.0-wmf.3

[edit]
  • Use histogram metrics instead of fake timings, T392078
  • Process attribute embedded dom with tpl info, T376943
  • Limit onCompoundTk handler to LineBasedHandler
  • Remove $wgParserEnableLegacyMediaDOM option, T394054
  • Implement onNewline method in ListHandler
  • DisplaySpace DOM pass: Combine handlers & simplify, T394808
  • ParserPipelineFactory: Move BehaviorSwitchHandler to 2nd stage
  • Split token handlers into three types, T393971
  • Sync parserTests with core
  • Enable linting on embedded docs, T376943
  • Remove knownFailures files for legacyHeadings.txt
  • Remove Token::getName
  • Hoist context check out of the loop
  • Remove semver check in preprocessDOMForSelser
  • Gate OnlyInclude on nativeTemplateExpansion
  • Move some methods from ListHandler to ListFrame

May 19 - May 21 Yes V0.22.0-a3 as part of 1.45.0-wmf.2

[edit]
  • Simplify list frame handling in ListHandler
  • Turn currListTk documentation into code
  • Replace unnecessary uses of `empty()`
  • Cleanup CompoundTk handling in token handlers
  • Fix XMLSerializer alias, T393983
  • Stop using DOMUtils::assertElt
  • Serialize table row start if it has attributes, T306207
  • Minor: Compact code a bit in DisplaySpace.php
  • Remove unnecessary condition
  • Sync parserTests with core
  • Avoid invalid characters in metric label names, T394053
  • P-Wrapping: Don't assume </pre> is last token in IndentPreTk
  • ListHandler: Clean up ListFrame confusion by splitting code paths
  • ListHandler: Fix breakage caused by ListTk compound token
  • Don't emit duplicate id lint errors from mw:FallbackId spans, T393982
  • Handle partial update of knownFailures, T53448
  • Fix rt-testing crasher due to missing cast in ef745a8e
  • Change function doc-style to enable doc-style sniff
  • build: Updating mediawiki/mediawiki-codesniffer to 47.0.0
  • Token::getName(): Return '' instead of the expensive getType()
  • Tokens: Extend xml-ish tag classes from an abstract XMLTagTk class
  • Add IndentPre compound token, T268584
  • Construct a compound ListTk token for wiki-lists, T268584
  • Stop creating tokens to serialize node attributes

May 13 - May 15 Yes V0.22.0-a2 as part of 1.45.0-wmf.1

[edit]
  • Tracing: Tweak logging format + PWrapper trace output
  • Refactor ParagraphWrapper::onAny for clarity + making common case faster
  • Rename XMLSerializer to XHtmlSerializer
  • Remove unused isWt option to serializeAttributes
  • Turn dsr info logs into traces, T358445
  • Sync parserTests with core
  • Cleanup ListHandler + update ListFrame docs
  • Documentation: Improve docs for TokenHandler return value conventions
  • Minor: Clarify behavior with a comment in TemplateHandler
  • ListHandler: Remove dead code
  • Remove inHTMLPre, T335843
  • Get rid of unused TokenUtils::getTokenType
  • Remove uses of Token::getType
  • Extract dsr-removal from Test to TestUtils for access in core runner, T393263

May 7 Yes V0.22.0-a1

[edit]

This tag is identical to v0.21.0 and begins the 0.22.0 series for Parsoid, ultimately intended for MediaWiki 1.45.0.

May 7 Yes V0.21.0

[edit]

This tag is identical to v0.21.0-a28, and is for the REL1_44 branch of MediaWiki and its upcoming 1.44.0 release.

May 6 - May 8 Yes V0.21.0-a28 as part of 1.44.0-wmf.28

[edit]
  • Track MediaWiki extension which registered the Parsoid extension module
  • tests: Make PHPUnit data provider static, T332865
  • tests: Remove unused mocks from DOMTraverserTest
  • Grammar: Refactor template-name & tpl-arg-name rules, T306679
  • PegTokenizer: Cache PEG tokenizer output, T306679
  • DOMCompat: A note about ::nodeName()
  • XMLSerializer: handle <template> node in a spec-compliant way
  • Use Parsoid's DOMBuilder consistently to DRY out code
  • Use DOMUtils::parseHTML() not the non-standard DOMDocument::loadHTML()
  • Remove temporary $wgParsoidFragmentInput support, T268144
  • LanguageConverter/AddRedLinks: use Parsoid's Document, not \DOMDocument
  • PreHandler: Skip onAny handler for EOFTk and NlTk
  • The onAny handler is only called if onAnyEnabled
  • Remove unused TemplateHandler::flattenAndAppendToks
  • Remove TokenHandlerResult class and return arrays instead
  • DOMDiff tracing: Use closure, restore JSON encoding
  • Return null if a token-handler didn't modify its input
  • TableFixups: Update getReparseType to not rely on outerHTML
  • Sanitizer: Minor tweaks
  • TokenHandlerResult: Get rid of useless validation
  • TokenHandlerResult: Simplify and get rid of skipOnAny signal
  • Simplify hacky_dl_uses rule
  • Use Env::trace() in WikitextSerializer and TokenHandlerPipeline
  • Add Env::trace() to more efficiently short-circuit tracing when disabled
  • Grammar 'table_line' rule: Extract common prefix out of its subrules
  • DOMDiff: use improved log formatter and remove unnecessary wrapper function
  • ParsoidLogger: improve formatting of log messages
  • ComputeDSR: remove a trace shortcut that is no longer necessary
  • composer.json: Allow wikimedia/wikipeg ^5.0.0
  • build: Updating formidable to 3.5.4
  • Make Tokens JsonCodecable
  • Remove a few DOMUtils::assertElt with types / phan-assertions
  • DOMCompat::nodeName: Get rid of unnecessary strtolower
  • Env: Add types for all property declarations
  • DOMUtils & WTUtils: Remove useless doc types
  • DOMUtils & WTUtils: Minor simplifiations & tweaks
  • Avoid extending DefaultTracer

Apr 28 - Apr 30 Yes V0.21.0-a27 as part of 1.44.0-wmf.27

[edit]
  • Tracing: Get rid of closures to json_encode tokens
  • Grammar: Ensure href attributes are strings, not arrays, T391416
  • Add start character to grammar trace output
  • Grammar: short-circuit checks for annotations
  • parserTests.php: Divide by 1M, not 1K for ns -> ms conversion
  • SiteConfig: allow listing pfragment handlers & record where they were defined, T392436
  • Remove PageConfig::getRevisionUser(), ::getRevisionUserId(), T329457
  • Audit Parsoid's Title::newFromText() against core's TitleParser, T329457
  • PreHandler: Use constant array in logging statements
  • Grammar: Move options assertion to constructor from sol rule
  • Fix --profile to use nanosecond resolution timer, T391416
  • Grammar: Don't add about ids to extension tokens
  • Minor: Emit profiles only for top-level full-parse pipeline
  • bin/parse.php: use --page and --title options like action=parse does
  • Run a few more passes on nested pipelines, T346196
  • Fix deprecation warnings and unpin wikimedia/remex-html
  • Sync parserTests with core
  • Minor: Fix casing of method name
  • DataMw::{get,set}ExtAttrib(): fix handling of numeric attribute names
  • Fix undefined access, T391869
  • Suppress warning in test
  • Add documentation about the log redirection for the test server
  • Turn $wgParsoidFragmentInput on to test new core side code
  • bin/parse.php: Add --record/--replay options for local benchmarking
  • Add DataMw:{get,set}ExtAttrib(), T367616
  • Avoid some work in attribute expansion
  • {{#interlanguage}} tests should be integrated-mode only
  • Lint empty headings, T368722
  • Update systemd unit names in testing scripts for PHP 8.1, T380485
  • build: Updating api-testing to 1.7.1
  • Add script to gather legacy & parsoid timing data from limit report
  • StripState::addAllFrom() bug fix

Apr 15 - Apr 17 Yes V0.21.0-a26 as part of 1.44.0-wmf.25

[edit]
  • Stop linting missing alt text, T344378
  • Introduce DataMwBody for data-mw.body

Apr 8 - Apr 19 Yes V0.21.0-a25 as part of 1.44.0-wmf.24

[edit]
  • Selective update of addmetadata should run on the entire doc
  • Rename FragmentHandler to PFragmentHandler, with compatibility alias
  • FragmentHandler: HtmlPFragment/DomPFragment should have mw:ParserFunction, T391007
  • Sync parserTests with core
  • Reintroduce fake timing flag whether timing is observing time, T359388
  • Reapply "Remove native special page transclusion implementation"
  • Localize fallback message used for not-ready-yet Asynchronous content, T390341
  • FragmentHandler support: Don't pass a empty string if no args are given
  • Arguments: documentation improvements
  • Allow extension modules to register PFragment subtypes
  • Fix incorrect broken-wikilink handling (alternative), T374156, T389623
  • Improve documentation for Ext\ExtensionModule
  • Revert "Revert changes to indicator processing"

Apr 4 Yes V0.21.0-a24 (early release for Abstract Wikipedia)

[edit]
  • FragmentHandler: new parser function API, T268144, T373255, T204307, T268144
  • Remove last use of Utils::clone() in ParserTests\Test and deprecate it
  • Rename saveDP and run it in full parse embedded-docs pipeline
  • Computation of idIndex should include extension-generated & embedded content
  • Only process captions *once* when traversing.
  • v3 parser function DOM spec: add /<key> suffix to mw:ParserFunction
  • Add json-schema for extension module configuration array, and validate it
  • Enable 'v3' parsoid fragment support for RT Testing
  • Remove no longer valid comment
  • Don't rerun gen-anchors in selective-update-global-dom-transforms
  • Small doc improvements for some function arguments
  • Add ParsoidExtensionAPI::preprocessFragment()
  • Match legacy section numbering with sol transparent on line, T384490, T214538
  • Add some self type declaration to functions
  • Update --dump tplsrc output to dump pfragment map
  • Revert "metrics: Fix scaling of values when we use a fake timing"
  • DOMDataUtils: Add a space to error message, T390629
  • Don't use Utils::clone() in AttributeExpander; add token __clone methods, T390499
  • Use rich attribute (live DocumentFragment) for data-mw.caption
  • build: Updating eslint-config-wikimedia to 0.29.1
  • metrics: Fix scaling of values when we use a fake timing, T359388

Apr 1 - Apr 3 Yes V0.21.0-a23 as part of 1.44.0-wmf.23

[edit]
  • Fix parse.php --integrated
  • Make "native template expansion" output more consistent with integrated output
  • DRY out registration/unregistration mechanism for standalone parser tests
  • Minor: fix typo in comment
  • Do not delete old Flow board images when converting to wikitext, T388687
  • Add PFragment::containsMarker() and PFragment::split()
  • Add a type declaration in generateCiteLanguageCSS.php
  • ListHandler: Refactor onAny for clarity
  • Api/SiteConfig: Update list of legacy-registered parser functions
  • Add PFragment helper methods ::killMarkers() and ::markerSkipCallback()
  • Throw on error in json_decode of knownFailures
  • Remove unused Utils::isLinkTrail()
  • Fix longstanding gap handling table elt syntax outside tables
  • Process new line tokens after <p> tags out of order in Remex, T368720
  • Add type declaration to undocumented class properties
  • Convert some static class properties to real const
  • Add unicode modifier for Utils::$linkTrailRegex regex

Mar 25 - Mar 27 Yes V0.21.0-a22 as part of 1.44.0-wmf.22

[edit]
  • Tweak extension argument normalization API, T386713
  • Fix full table parsing of multiline inline table data cells, T389555, T389573
  • Revert "Add new indicator test with a named ref tag defined in main doc"
  • Rich attribute support, phase 1b, T348161
  • Re-enable Parsoid fragment support v2 for RT testing, T380758
  • Match legacy output for category in wikilink, T389446
  • Add TokenUtils::is{TemplateArg,Extension,AnnotationMeta}Token()
  • Load data-parsoid and data-mw directly from page bundle
  • Save rich attributes when using 'saveData' option to XMLSerializer::serialize
  • Inspect dom fragments for pwrap optional children, T387937

Mar 18 - Mar 20 Yes V0.21.0-a21 as part of 1.44.0-wmf.21

[edit]
  • Add DataMwBody::new() as transitional support for the Cite extension
  • Revert changes to indicator processing
  • Add new indicator test with a named ref tag defined in main doc
  • Ensure multi-line table captions are accepted
  • Add ::processAttributeEmbeddedDom() methods
  • Fix quoting in exception error message, T388173
  • Improve debugabbility of JsonString decoding issues on data-mw, T388160
  • Revert "Temporarily disable insertion between WikitextPFragments"
  • Move doc prep out of setupTopLevelDoc
  • Make whitespace normalization of extension options configurable, T386713
  • Fix parsoid parser tests for fragment v2; sync parserTests with core
  • Sync parserTests with core
  • Grammar: Ensure nested blocks don't consume SOLs in isolation, T387922
  • Add v3ParserFunctions.txt to parserTests.json
  • Stop emitting dp->isIW

Mar 11 - Mar 13 Yes V0.21.0-a20 as part of 1.44.0-wmf.20

[edit]
  • Ignore data-parsoid href for invalid interwiki prefix, T385132
  • bin/parse.php: Use namespaced Title class
  • Support {{!}} as a top level wikilink seperator, T290526
  • Add shadow attribute for media link href
  • Fix here doc expansion happening client side
  • Disable ParsoidFragmentSupport in rt-testing (not enabled in prod)
  • Test for dirty tree before starting rt

Mar 4 - Mar 6 Yes V0.21.0-a19 as part of 1.44-wmf.19

[edit]
  • Revert "Process white space tokens after <p> tags out of order in Remex"
  • Revert "Remove native special page transclusion implementation"
  • Remove pipeTrick from dp
  • Rename fetchHTML to parseToHTML
  • Remove native special page transclusion implementation, T356718
  • Remove html pre b/c, T335843
  • Process white space tokens after <p> tags out of order in Remex, T368720
  • Update copyright year
  • Fix processing pipe magic word in bailing wikilinks, T387237, T290526
  • Stop combining displayspace and linkattributes passes, T387170

Feb 27 Yes V0.21.0-a18

[edit]

Cherry-picked mid-week release.

Feb 25 - Feb 27 Yes V0.21.0-a17 as part of 1.44-wmf.18

[edit]
  • Remove mention of tidy.conf and add missing empty tags
  • Add source tags to OnlyInlineElements, T386647
  • Tweak ContentUtils::createAndLoadDocument default declaration

Feb 18 - Feb 20 Yes V0.21.0-a16 as part of 1.44-wmf.17

[edit]
  • Call Assert::parameterType with array for type list
  • Re-enable "Turn on Parsoid Fragment Support v2 for RT testing""
  • Temporarily disable insertion between WikitextPFragments, T386233
  • Replace call_user_func with dynamic function calls
  • Replace DOMDataUtils::validDataMw() with DataMw::isEmpty()
  • Remove unused ContentUtils::createDocument()
  • Only combine when cell is the first node of a template
  • Replace call_user_func_array with dynamic function call
  • Use constant in test
  • Migrate langconv metrics to using statslib, T359393
  • Finish refactoring PageBundle/DomPageBundle
  • Account for dsr adjustments to cell source, T384737

Feb 11 - Feb 13 Yes V0.21.0-a15 as part of 1.44-wmf.16

[edit]
  • Followup to 7f4d47f5: Handle null currListFrame case
  • Definition Lists & T2529: 3rd time lucky: Get it right this time, T385897
  • Temporary Revert "Turn on Parsoid Fragment Support v2 for RT testing"
  • Turn on Parsoid Fragment Support v2 for RT testing, T374661
  • PFragment support: expand parser function result to tokens not DOM
  • Remove old broken caching code
  • Improve type annotations in SiteConfig
  • Add DataMwError::equals()
  • definitionLists.txt: Remove 'Definition Lists' prefix from test names
  • definitionLists.txt: Remove a couple convoluted tests
  • Only look for combining scenarios from templates, T384738
  • Sync parserTests with core
  • Add experimental v3 parser function output for use by wikifunctions, T373253, T385129
  • build: Updating mediawiki/mediawiki-codesniffer to 46.0.0
  • Move TemplateHandler::processTemplateSource to PipelineUtils
  • Clean up tplsrc dump for fragments

Feb 4 - Feb 6 Yes V0.21.0-a14 as part of 1.44-wmf.15

[edit]
  • Don't serialize/unserialize DOMFragments, just copy node data
  • Keep stx info for all headings, T100856, T373400
  • ParserTests: Support improved <spantag>/<divtag>
  • ListHandler: Fix dl-list breakage from ef86d93bc
  • Remove no longer relevant condition
  • Better handle expanded attrs when converting in table fixups, T384739
  • Fixups to table fixups
  • Sync parserTests with core
  • Duplicate heading tests now result in identical metadata for parsoid and legacy
  • Add a remark about test end-of-lines
  • Rename DOMPostProcessor to DOMProcessorPipeline, T382912
  • Rename TokenTransformManager to TokenHandlerPipeline, T382912
  • Move DOMPPTraverser to src/Wt2Html/DOM/Processors, T382912
  • Remove a bunch of backwards compatibility, T335843

Jan 28 - Jan 30 Yes V0.21.0-a13 as part of 1.44-wmf.14

[edit]
  • Remove all T2529 support code in integrated mode, T382464
  • Sync parserTests with core
  • Fix fostered flag confusion between pipelines, T384644
  • Unbreak Parsoid CI: Disable wgParsoidNewTemplateExpansionMode
  • parsoid: migrate linting metrics to prometheus, T359392

Jan 21 - Jan 23 Yes V0.21.0-a12 as part of 1.44-wmf.13

[edit]
  • Set TrackingCategory from __HIDDENCAT__, T372010
  • Set OutputFlag from __NOGALLERY__, T367846
  • Fix cardinality restriction on User-Agent, T383712
  • Add formats to REST routes
  • TemplateHandler: Support --dump tplsrc for fragment expansions
  • TableFixups: Handle gaps in capabilities

Jan 14 - Jan 16 Yes V0.21.0-a11 as part of 1.44-wmf.12

[edit]
  • build: Updating mediawiki/mediawiki-phan-config to 0.15.1
  • Sync parserTests with core
  • tools/FetchWt.php: Fix to run script on parsoidtest1001
  • Remove stale comment from DOMPostProcessor
  • Tests: Turn on integrated mode for tableFixupsParserTests.txt
  • Add further testing of wikilinks preventing cell merging
  • Sync parserTests with core + update code to pass tests, T71997, T382963
  • Revert "Turn on Parsoid Fragment Support v2 for RT testing"
  • Turn on Parsoid Fragment Support v2 for RT testing, T374661
  • Sync parserTests with core

Deployments from previous years

[edit]