Parsoid/Deployments/2025
Appearance
< Parsoid | Deployments
Dec 16 - Dec 18
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
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
V0.23.0-a7 backported to 1.46.0-wmf.4
[edit]Nov 25 - Nov 27
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
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
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
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
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
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
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
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
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 & in renderMedia method, T403850
Sep 30 - Oct 2
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
V0.21.0-a18
[edit]Cherry-picked mid-week release.
Feb 25 - Feb 27
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
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
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
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
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
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
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]- 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/2024
- Parsoid/Deployments/2025
- Parsoid/Deployments/T336101 followup