Page MenuHomePhabricator

Decide the fate of Parsoid/JS Puppet in Mediawiki-Vagrant
Closed, ResolvedPublic

Description

As Parsoid/PHP been implemented in production. It is now a good time to decide what we should do about puppet roles that are using the old Parsoid/JS since the current parsoid.pp role will no longer represent the production environment

Currently, the following roles are required to use Parsoid/JS:

There are a few options for:

  1. Add _js to the end of the name of all current puppet roles that need Parsoid/JS and create new roles that using Parsoid/PHP
  2. Add _php to the end of the name of all newly created puppet roles that use Parsoid/PHP and keep the name of roles using Parsoid/JS intact.
  3. Replace the current roles that need Parsoid/JS to Parsoid/PHP

Personally, I prefer option 1 as deleting old Parsoid/JS's role after a few years will not be a headache, as well as keeping compatibility for older Mediawiki installation.

Event Timeline

Parsoid/JS should be eliminated from all these roles, it is an unnecessary complication now. parsoid.pp is not useful anymore, since Parsoid/PHP is included in MediaWiki by default - maybe the Parsing team is interested in a Vagrant role for Parsoid/JS, for backwards compatibility checks and such; otherwise, it should be deleted.

The question is, do all the other roles require RESTBase or can they manage with plain Parsoid/PHP? Installing RESTBase on Vagrant is a bit of a pain as it conflicts with EventGate which is a fairly common dependency.

ssastry subscribed.

I've moved this to the non-parsing-team tasks column on the parsoid board since we haven't maintained this in vagrant before. But, if you need any assistance or our input, we are happy to do so. Just ping me.

@ssastry questions for the Parsing team would be:

  • do you see any problem with Parsoid/JS being completely removed from Vagrant? (Is there something somewhere still relying on it that we might want to test in a developer environment?)
  • do you happen to know which of the other things mentioned (IEG review portal, OCG, VE, CX, Flow) benefit from using Parsoid/PHP through RESTBase, as opposed to directly? I know VE has slightly dirtier diffs without RESTBase, is there anything else?

You can still use RESTBase with Parsoid/PHP, and I'd suggest configuring things that way in vagrant. I'm fine w/ getting rid of support for Parsoid/JS, but RESTBase will be with us for another year or 18 months or so.

(I've recently updated the docs of both VisualEditor and RESTBase to describe setup & config w/ Parsoid/PHP, so all the documentation should be on wiki for how to configure things this way.)

You can still use RESTBase with Parsoid/PHP, and I'd suggest configuring things that way in vagrant. I'm fine w/ getting rid of support for Parsoid/JS, but RESTBase will be with us for another year or 18 months or so.

There will still be a restbase role; I just want to avoid installing RESTBase for other roles unless actually needed, as Node services are fragile on Vagrant (T217113).

That's reasonable. RESTBase has a (not undeserved) reputation for being difficult to configure, which is why it's especially useful to have an 'out of the box' vagrant config for it. I don't think there's any reason other than performance to use it for any extension other than VE.

The only reason for keeping parsoid/js is if someone were using vagrant to actively test against MW 1.34 (EOL Nov 2020) or 1.31 (EOL June 2021). But presumably they can use an older version of vagrant to do that, and you don't need to keep parsoid/js support on the vagrant master branch.

Add _js to the end of the name of all current puppet roles that need Parsoid/JS and create new roles that using Parsoid/PHP

FWIW this was done a while ago in rMWVA62096859d677: Separate Parsoid/JS and Parsoid/PHP roles.

Change 858453 had a related patch set uploaded (by Gergő Tisza; author: Gergő Tisza):

[mediawiki/vagrant@master] Remove dependency on parsoid role

https://gerrit.wikimedia.org/r/858453

Change 858453 merged by jenkins-bot:

[mediawiki/vagrant@master] Remove dependency on parsoid role

https://gerrit.wikimedia.org/r/858453

Tgr claimed this task.