Page MenuHomePhabricator

Vagrant eventbus role can't be installed because of node_version
Closed, InvalidPublic

Description

I've just set up a completely fresh mediawiki-vagrant instance, and attempted to enable the visualeditor role. This causes the following provision error:

==> default: Error: Evaluation Error: Error while evaluating a Function Call, EventBus role requires the EventGate service, which requires NodeJS 10. Please set npm::node_version: 10 in hiera to install it. at /vagrant/puppet/modules/role/manifests/eventbus.pp:15:9 on node vagrant.mediawiki-vagrant.dev

Event Timeline

This is probably a regression of T218238, which indicated that it was going to be making eventgate optional for cases which don't strictly require it.

For now I went with making a puppet/hieradata/local.yaml file and including npm::node_version: 10 within it.

You can change the setting with vagrant hiera npm::node_version: 10. The error message should probably say that.
See T217113#5685963 for background.

c620520 improves the error message.

It's unclear from the current description what this task is about. Should visualeditor not use EventLogging? Should EventLogging be set up without pulling in the eventgate role?

I mean, VisualEditor doesn't need Eventbus for anything -- it's pulled in because VE depends on Restbase, which depends on Eventbus.

I have no idea whether Restbase actually needs it. I assume it doesn't strictly need it, since I have to aggressively disable at least eventgate on my vagrant install to stop runaway CPU use from it crashing and restarting constatly and nothing seems to break, but I don't know about other places the role might be used. ¯\_(ツ)_/¯

RESTBase uses EventBus for cache invalidation (see rMWVAd08fc6f1d80e: RESTBaseUpdateJobs: Remove the extension, specifically). That seems important enough to keep it as a dependency.

(EventLogging is not involved at all; I assumed there is a VE -> some extension -> EventLogging -> EventGate dependency chain somewhere but apparently none of the VE dependencies actually pull in EventLogging.)

So, this seems non-actionable (beyond that it would be nice if either Vagrant could use multiple Node versions, which is sort of tracked in T217113; or if RESTBase and Citoid would be upgraded to Node 10, which is tracked in T210704).