Core Platform Team/Initiative/Unify Parsers-Phase 1/Initiative Description

Project Leads
Subbu Sastry

Current state
Implementing, currently porting Parsoid to PHP

Expected start
Started in FY1819 Q2

Summary
TBD

Significance and motivation
TBD

Milestones and major tasks

 * Prototyping the Parsoid in PHP and evaluation
 * Make fixes to the Parsoid in JS that are required before the port to PHP
 * Port Parsoid to PHP
 * Enable all existing Parsoid clients to use the new PHP port
 * Switch off Parsoid JS

Outcome
Reduce complexity in core

Baseline

 * Percentage of clients using Parsoid: 0%

Target

 * Percentage of clients using Parsoid: 100%

Methodology and rationale
This is a step in a larger project, as such the metric is about completing the porting process so we can get to the next phase of development. The best way to do this is to ensure no clients are using the JS version of Parsoid. The next phase will focus on the ultimate goal of moving to a single parser.

Time and resource estimate
6-9 months, completion is expected near end of FY1819 Q4

3.75 FTE for the duration

Augmenting with 2+ FTE for 3 months

.25 Engineering Manager for the duration

Dependencies
Build new HTTP API (Link TBD)

Reduce Extension Interface Surface Area

Collaborators

 * Parsing Team
 * Core Platform
 * Performance
 * SRE

Stakeholders

 * Client teams (Web, VE, iOS, Android)
 * Editing community
 * Core Platform

Open questions
None (some for Phase 2)

Phabricator
TBD

Plans and RFCs
The Long And Winding Road To Making Parsoid The Default MediaWiki Parser