Talk:Parsoid/2017
Add topic| This page used the Structured Discussions extension to give structured discussions. It has since been converted to wikitext, so the content and history here are only an approximation of what was actually displayed at the time these comments were made. |
Report a new bug in Phabricator
Previous discussion was archived at Talk:Parsoid/Archive on 24 June 2015.
parsoidserver-http-error: (curl error: 7) Couldn't connect to server.
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
I recently upgrade my MediaWiki install to 1.28 and upgraded ViusalEditor and Parsoid in the process. I was able to get it to work with one wiki, but it broke when I added another using the configuration example provided in the Parsoid configuration section.
Hopefully I save some people some time here with what I learn about yaml. In yaml, apparently indentation is critical it being interpreted properly, however tab characters are not allowed. If everything is configured correctly and it is not working, try checking the indentations to make sure they use spaces and not tabs.
The error I received was: parsoidserver-http-error: (curl error: 7) Couldn't connect to server. DustinICW (talk) 20:13, 28 January 2017 (UTC)
Parsoid listing not only on localhost
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hi, as i understand Parsiod in its standard installation is only accessable from localhost. However, for my setup i tried to allow any host in the network to reach it. Therefore, i modified /etc/mediawiki/parsoid/config.yaml by setting serverInterface: '0.0.0.0'. But this did not have any effect even after a restart of the service. What needs to be done to get it running? I miss any information about it in the documentation. Aschroet (talk) 17:39, 31 January 2017 (UTC)
- No, the default is to omit the hostname and accept connections on any address at the specified port.
- See https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback
- Try using a tool like netcat to confirm that the host you're connecting from can reach the server. Maybe you have iptables (firewall) settings preventing it? Arlolra (talk) 20:49, 31 January 2017 (UTC)
- Interestingly, I see the following:
- netstat -lntu
- Proto Recv-Q Send-Q Local Address Foreign Address State
- tcp6 0 0 127.0.0.1:8000 :::* LISTEN Aschroet (talk) 08:31, 1 February 2017 (UTC)
- Sorry, there war a port 8000 conflict where another process also was listening. Aschroet (talk) 12:22, 1 February 2017 (UTC)
Parsoid installation with Visual Editor / mwoffliner.js: Error loading data from server: 404: parsoidserver-http: HTTP 404
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hello,
I am trying to install Parsoid in order to use the https://github.com/kiwix/mwoffliner script for dumping my MediaWiki for offline usage in http://www.kiwix.org/ first. Using the Visual Editor would be also nice later.
The mediawiki is running inside an intranet at http://172.18.200.40/himtwiki/, I have disabled short URLs for now, it is a private wiki.
$wgGroupPermissions['*' ]['read'] = false;
- The system is running on openSUSE 13.1 (Bottle) (x86_64).
- MediaWiki: 1.25
- Parsoid: 0.6.1 / 2016-11-14
- NodeJS: v4.2.4
- I followed the steps from Parsoid/Developer Setup
- Parsoid resides in
/root/parsoid/for testing now - Created
config.yamlas following:
# Configure Parsoid to point to your MediaWiki instances.
mwApis:
- # This is the only required parameter,
# the URL of you MediaWiki API endpoint.
uri: 'http://172.18.200.40/himtwiki/api.php'
# The "domain" is used for communication with Visual Editor
# and RESTBase. It defaults to the hostname portion of
# the `uri` property below, but you can manually set it
# to an arbitrary string.
domain: 'localhost' # optional
prefix: 'localhost'
- Service is running
node bin/server.js- Update: Command line output added
{"name":"parsoid","hostname":"server223","pid":793,"level":30,"levelPath":"info/service-runner","msg":"master(793) initializing 4 workers","time":"2017-02-07T13:08:11.107Z","v":0}
{"name":"lib/index.js","hostname":"server223","pid":802,"level":30,"levelPath":"info","msg":"loading ...","time":"2017-02-07T13:08:11.858Z","v":0}
{"name":"lib/index.js","hostname":"server223","pid":802,"level":30,"levelPath":"info","msg":"ready on :8000","time":"2017-02-07T13:08:11.879Z","v":0}
{"name":"lib/index.js","hostname":"server223","pid":807,"level":30,"levelPath":"info","msg":"loading ...","time":"2017-02-07T13:08:12.637Z","v":0}
{"name":"lib/index.js","hostname":"server223","pid":807,"level":30,"levelPath":"info","msg":"ready on :8000","time":"2017-02-07T13:08:12.656Z","v":0}
{"name":"lib/index.js","hostname":"server223","pid":812,"level":30,"levelPath":"info","msg":"loading ...","time":"2017-02-07T13:08:13.403Z","v":0}
{"name":"lib/index.js","hostname":"server223","pid":812,"level":30,"levelPath":"info","msg":"ready on :8000","time":"2017-02-07T13:08:13.422Z","v":0}
{"name":"lib/index.js","hostname":"server223","pid":817,"level":30,"levelPath":"info","msg":"loading ...","time":"2017-02-07T13:08:14.171Z","v":0}
{"name":"lib/index.js","hostname":"server223","pid":817,"level":30,"levelPath":"info","msg":"ready on :8000","time":"2017-02-07T13:08:14.189Z","v":0}
{"name":"parsoid","hostname":"server223","pid":793,"level":40,"levelPath":"warn/service-runner","msg":"Startup finished","time":"2017-02-07T13:08:14.190Z","v":0}
- Then I am following https://www.mediawiki.org/wiki/Parsoid/Troubleshooting
- http://172.18.200.40:8000/ shows the welcome page
- http://172.18.200.40:8000/localhost/v3/page/html/Main_Page/ shows the correct Main Page output
- However, http://172.18.200.40:8000/_wikitext/ and http://172.18.200.40:8000/_wikitext/localhost show errors
Cannot GET /_wikitextandCannot GET /_wikitext/localhostrespectively.
- Question: how can I get a log file from Parsoid?
Visual Editor
[edit]- I have also went through the Visual Editor installation, which is not working,
I get the button.Edit sourcefor editing only (Visual Editor is actually enabled in the user preferences)- Update:
$wgVisualEditorNamespaces = array(NS_MAIN, NS_USER);was missing in my LocalSettings.php, now I can try to edit existing pages the Visual Editor, but it fails withError loading data from server: 404: parsoidserver-http: HTTP 404, now I am looking at other users´ issues with the same error, but nothing has helped so far.
- Update:
- Question: I could not really figure out, whether I really need Extension:UniversalLanguageSelector? This one fails to run with error 500.
LocalSettings.php:
wfLoadExtension( 'VisualEditor' );
// Enable by default for everybody
// $wgDefaultUserOptions['visualeditor-enable'] = 1;
// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
// Don't allow users to disable it
// $wgHiddenPrefs[] = 'visualeditor-enable';
// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
$wgVirtualRestConfig['modules']['parsoid'] = array(
// URL to the Parsoid instance
// Use port 8142 if you use the Debian package
'url' => 'http://localhost:8000',
// Parsoid "domain", see below (optional)
'domain' => 'localhost',
// Parsoid "prefix", see below (optional)
'prefix' => 'localhost'
);
$wgSessionsInObjectCache = true;
Settings for private wiki from https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid_in_private_wikis are added:
// This feature requires a non-locking session store. The default session store will not work and
// will cause deadlocks (connection timeouts from Parsoid) when trying to use this feature.
$wgSessionsInObjectCache = true;
// Forward users' Cookie: headers to Parsoid. Required for private wikis (login required to read).
// If the wiki is not private (i.e. $wgGroupPermissions['*']['read'] is true) this configuration
// variable will be ignored.
//
// WARNING: ONLY enable this on private wikis and ONLY IF you understand the SECURITY IMPLICATIONS
// of sending Cookie headers to Parsoid over HTTP. For security reasons, it is strongly recommended
// that $wgVirtualRestConfig['modules']['parsoid']['url'] be pointed to localhost if this setting is enabled.
$wgVirtualRestConfig['modules']['parsoid']['forwardCookies'] = true;
Thanks in advance Escalatr (talk) 08:57, 7 February 2017 (UTC)
- The _wikitext and _html routes are intended to be private, for development use only. To enable them, add
devAPI: trueto your config.yaml Arlolra (talk) 16:31, 7 February 2017 (UTC) - Thanks for the remark,
devAPI: trueindeed enabled _wikitext output! This topic is at least partially solved. - However, Visual Editor and mwoffliner.js still fail with the error
Error loading data from server: 404: parsoidserver-http: HTTP 404Escalatr (talk) 11:52, 8 February 2017 (UTC) - Sounds like Parsoid itself is configured correctly now. Try setting the url in the $wgVirtualRestConfig in your LocalSetting.php to
http://172.18.200.40:8000, since that's what you tested above. Arlolra (talk) 18:54, 8 February 2017 (UTC) - Thanks for the reply, I tried several URLs already:
- The page http://172.18.200.40:8000/localhost/v3/page/html/Main_Page/ is always working, however Visual Editor fails. The only difference with
http://localhost:8000andhttp://127.0.0.1:8000: the parsed page seems to be missing CSS files (I am seeing the default browser font and formatting). - I am quite unclear how
domainandprefixshould be configured, the documentation is rather contradictory, have tried several settings already. - I have started a thread with some more information at Visual Editor discussion: https://www.mediawiki.org/wiki/Extension%20talk%3AVisualEditor/2017/02#h-Logs-2017-02-08T13%3A40%3A00.000Z. Parsoid seems to work properly in general. Just the connection by VisualEditor and mwoffliner.js fails. Escalatr (talk) 07:59, 9 February 2017 (UTC)
- According to https://www.mediawiki.org/wiki/Offline_content_generator/Installation/en#Starting I called
netstat -tuln, the output: server223:/etc/init.d # netstat -tuln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:9300 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:6556 0.0.0.0:* LISTEN tcp 0 0 :::8000 :::* LISTEN tcp 0 0 :::873 :::* LISTEN tcp 0 0 :::3306 :::* LISTEN tcp 0 0 :::22 :::* LISTEN udp 0 0 0.0.0.0:57053 0.0.0.0:* udp 0 0 0.0.0.0:57231 0.0.0.0:* udp 0 0 0.0.0.0:33014 0.0.0.0:* udp 0 0 0.0.0.0:54328 0.0.0.0:* udp 0 0 0.0.0.0:5353 0.0.0.0:* udp 0 0 0.0.0.0:43376 0.0.0.0:* udp 0 0 0.0.0.0:47603 0.0.0.0:* udp 0 0 :::38093 :::* udp 0 0 :::5353 :::*
tcp 0 0 :::8000 :::* LISTENshould belong to Parsoid, however the address:::8000looks suspicious to me, should it be0.0.0.0:8000with zeros instead, like the other entries? Or even something different like127.0.0.1:8000?- Question: does Parsoid require Redis server (https://redis.io/) to run? I have installed and started Redis service according to https://www.mediawiki.org/wiki/Offline_content_generator/Installation/en#Prerequisites, so
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTENbelongs to Redis. Escalatr (talk) 09:56, 9 February 2017 (UTC)
- The colons indicate that it's listening on IPv6 addresses as well. That seems ok since you were able to reach the IPv4 address 172.18.200.40
- No, Redis is not required in any way. Arlolra (talk) 20:22, 11 February 2017 (UTC)
- Thanks for the clarification. Escalatr (talk) 08:01, 13 February 2017 (UTC)
Can't find settings.js under /etc/mediawiki/parsoid in Debian
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
So I got Parsoid installed throguh apt-get install parsoid under Debian.
Then there is only a config.yaml under /etc/mediawiki/parsoid
Is this means I only need to config the config.yaml file for VisualEditor? Deletedaccount4567435 (talk) 23:27, 8 February 2017 (UTC)
- Yes, in Parsoid v0.6.x, config.yaml is all you need. Arlolra (talk) 23:30, 8 February 2017 (UTC)
Parsoid Returns Invalid Domain
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hello,
I am running an internal company wiki that allows read to anyone, but only write to users. I upgraded my MediaWiki instance from 1.24 to 1.28. Parsoid and VisualEditor used to work. After updating I saw that Parsoid didn't work anymore so I upgraded the Parsoid service from 0.1.8 to 0.6.1. Visual Editor still does nothing when I click on the edit link. The version of nodejs is 0.10.37
Going to http://mydomain:8142/ takes me to the welcome page for Parsoid. When I got to http://mydomain:8142/localhost/v3/page/html/Main_Page/ it says:
Invalid domain: localhost
Doing curl -L http://localhost/api.php returns the api's page.
The parsoid.log file looks like this:
{
"type": "log",
"name": "parsoid",
"hostname": "mydomain",
"pid": 2643,
"level": 60,
"err": {
"message": "Invalid domain: localhost",
"name": "../src/lib/index.js",
"stack": "../src/lib/index.js: Invalid domain: localhost\n at errOut (/usr/lib/parsoid/src/lib/api/routes.js:30:13)\n at routes.v3Middle (/usr/lib/parsoid/src/lib/api/routes.js:94:11)\n at Layer.handle [as handle_request] (/usr/lib/parsoid/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/lib/parsoid/node_modules/express/lib/router/route.js:131:13)\n at Route.dispatch (/usr/lib/parsoid/node_modules/express/lib/router/route.js:112:3)\n at Layer.handle [as handle_request] (/usr/lib/parsoid/node_modules/express/lib/router/layer.js:95:5)\n at /usr/lib/parsoid/node_modules/express/lib/router/index.js:277:22\n at param (/usr/lib/parsoid/node_modules/express/lib/router/index.js:349:14)\n at param (/usr/lib/parsoid/node_modules/express/lib/router/index.js:365:14)\n at param (/usr/lib/parsoid/node_modules/express/lib/router/index.js:365:14)\n at param (/usr/lib/parsoid/node_modules/express/lib/router/index.js:365:14)\n at param (/usr/lib/parsoid/node_modules/express/lib/router/index.js:365:14)\n at Function.process_params (/usr/lib/parsoid/node_modules/express/lib/router/index.js:410:3)\n at next (/usr/lib/parsoid/node_modules/express/lib/router/index.js:271:10)\n at /usr/lib/parsoid/src/lib/api/ParsoidService.js:159:3\n at Layer.handle [as handle_request] (/usr/lib/parsoid/node_modules/express/lib/router/layer.js:95:5)",
"httpStatus": 404,
"suppressLoggingStack": true,
"levelPath": "fatal/request"
},
"msg": "Invalid domain: localhost",
"time": "2017-03-09T13:28:39.611Z",
"v": 0
}
Here is my pastebin for my config.yaml http://pastebin.com/T8CLbx5p
Here is the section of my LocalSettings.php where I setup Visual Editor
#visual editing
wfLoadExtension( 'Parsoid' );
wfLoadExtension( 'VisualEditor' );
#require_once("$IP/extensions/VisualEditor/VisualEditor.php");
$wgVirtualRestConfig['modules']['parsoid'] = array(
// URL to the Parsoid instance
// Use port 8142 if you use the Debian package
'url' => 'http://localhost:8142',
// Parsoid "domain", see below (optional)
'domain' => 'localhost',
// Parsoid "prefix", see below (optional)
'prefix' => 'localhost'
);
// This feature requires a non-locking session store. The default session store will not work and
// will cause deadlocks (connection timeouts from Parsoid) when trying to use this feature.
$wgSessionsInObjectCache = true;
// Forward users' Cookie: headers to Parsoid. Required for private wikis (login required to read).
// If the wiki is not private (i.e. $wgGroupPermissions['*']['read'] is true) this configuration
// variable will be ignored.
//
// WARNING: ONLY enable this on private wikis and ONLY IF you understand the SECURITY IMPLICATIONS
// of sending Cookie headers to Parsoid over HTTP. For security reasons, it is strongly recommended
// that $wgVirtualRestConfig['modules']['parsoid']['url'] be pointed to localhost if this setting is enabled.
$wgVirtualRestConfig['modules']['parsoid']['forwardCookies'] = true;
// URL to the Parsoid instance
// MUST NOT end in a slash due to Parsoid bug
// Use port 8142 if you use the Debian package
#$wgVisualEditorParsoidURL = 'http://localhost:8142';
// Namespaces to enable VisualEditor in
#$wgVisualEditorNamespaces = array_merge( $wgContentNamespaces, array( NS_USER, NS_HELP, NS_TEMPLATE, NS_CATEGORY ) );
//Default user options
// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;
Any suggestions of anything else to try? Thank you very much for the help. Sorvis (talk) 13:44, 9 March 2017 (UTC)
- The config.yaml looks ok. Based on the error though, it looks like it isn't actually loading that file. How did you install Parsoid? Did you restart Parsoid after editing the config? Try and confirm that it is indeed using that file, maybe by introducing some broken syntax there and looking for a new error. Arlolra (talk) 16:23, 9 March 2017 (UTC)
- Thank you for the suggestion Arioira. I put a garbage line in the config then restarted the service then I saw it place an error in the log file so I think it did at least try to parse the config file.
- Parsoid was installed from the wikimedia package repository. This is the package it was installed from: https://releases.wikimedia.org/debian/pool/main/p/parsoid/parsoid_0.6.1all_all.deb Sorvis (talk) 17:46, 9 March 2017 (UTC)
- On second looks, I noticed you have this in the config file,
#- # This is the only required parameter,- that should be,
- # This is the only required parameter,Arlolra (talk) 22:23, 9 March 2017 (UTC)- Good news that makes http://mydomain:8142/localhost/v3/page/html/Main_Page/ return data now!!!! Thank you very much. :-)
- OK, problem number 2. Visual Editor just redirects to http://mydomain/index.php?title=Main_Page&veaction=edit when I click edit. It does not look like any new Parsoid logs are being created when this redirect happens. I checked out the wikimedia debug log and didn't see any errors in it. When I googled my problem most people seem to say they forgot to run the submodule update command on the VisualEditor repository, but I already ran that in this case.
- Are there any other steps I could take to troubleshoot the problem? Sorvis (talk) 13:49, 10 March 2017 (UTC)
- Hmm, did you check for any errors in the your browser's development console? Otherwise, maybe temporarily disable any other extensions you have installed to see if that's preventing it from loading.
- Lastly, you might get a better answer at https://www.mediawiki.org/wiki/Talk:VisualEditor Arlolra (talk) 16:47, 10 March 2017 (UTC)
- OK I'll give those suggestions are try. Thank you very much Arlolra. I documented the Parsoid configuration error you helped me find here https://www.mediawiki.org/wiki/Parsoid/Troubleshooting#Invalid_Domain_Error for others to use in the future. Sorvis (talk) 18:32, 10 March 2017 (UTC)
Update needed in the Windows setup guide to avoid damaging npm install
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
As per https://github.com/npm/npm/issues/16037
Using npm@next will corrupt the npm install and cause it to become unable to install any package. The proper command is npm@latest 186.28.53.22 (talk) 13:38, 15 March 2017 (UTC)
- Done. Thanks for the heads up. SSastry (WMF) (talk) 15:37, 15 March 2017 (UTC)
npm error with the last debian package of parsoid (0.7)
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
When I launch parsoid service, I have a nodejs error :
{"name":"parsoid","hostname":"myhostname","pid":32579,"level":60,"err":{"message":"Object function Object() { [native code] } has no method 'assign'","name":"TypeError","stack":"TypeError: Object function Object() { [native code] } has no method 'assign'\n at /usr/lib/parsoid/node_modules/service-runner/lib/master.js:209:33\n at Promise._execute (/usr/lib/parsoid/node_modules/bluebird/js/release/debuggability.js:300:9)\n at Promise._resolveFromExecutor (/usr/lib/parsoid/node_modules/bluebird/js/release/promise.js:481:18)\n at new Promise (/usr/lib/parsoid/node_modules/bluebird/js/release/promise.js:77:14)\n at Master._startWorkers (/usr/lib/parsoid/node_modules/service-runner/lib/master.js:206:16)\n at /usr/lib/parsoid/node_modules/service-runner/lib/master.js:107:21\n at tryCatcher (/usr/lib/parsoid/node_modules/bluebird/js/release/util.js:16:23)\n at Promise._settlePromiseFromHandler (/usr/lib/parsoid/node_modules/bluebird/js/release/promise.js:510:31)\n at Promise._settlePromise (/usr/lib/parsoid/node_modules/bluebird/js/release/promise.js:567:18)\n at Promise._settlePromise0 (/usr/lib/parsoid/node_modules/bluebird/js/release/promise.js:612:10)\n at Promise._settlePromises (/usr/lib/parsoid/node_modules/bluebird/js/release/promise.js:691:18)\n at Async._drainQueue (/usr/lib/parsoid/node_modules/bluebird/js/release/async.js:133:16)\n at Async._drainQueues (/usr/lib/parsoid/node_modules/bluebird/js/release/async.js:143:10)\n at Async.drainQueues (/usr/lib/parsoid/node_modules/bluebird/js/release/async.js:17:14)\n at process._tickCallback (node.js:419:13)","levelPath":"fatal/service-runner/unhandled"},"msg":"Object function Object() { [native code] } has no method 'assign'","time":"2017-04-05T12:16:05.577Z","v":0}
Unhandled rejection Error: Timeout waiting for config in worker 32585
at null._onTimeout (/usr/lib/parsoid/node_modules/service-runner/lib/worker.js:33:20)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 130.223.9.34 (talk) 12:26, 5 April 2017 (UTC)
- Looks like you're missing ES6 Object.assign()
- Parsoid 0.6.1 was the last version to support node.js v0.10.x
- Starting with 0.7.0, you'll need to upgrade node to v4.x
- node v0.10.x is end-of-life, and no longer maintained upstream
- See https://github.com/nodejs/LTS Arlolra (talk) 12:50, 5 April 2017 (UTC)
- Many thanks, it was the problem: I update nodejs to v6, and it works now. 130.223.9.34 (talk) 13:09, 5 April 2017 (UTC)
Please update Repo
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
- Got an error:
- The following packages have unmet dependencies:
- parsoid : Depends: nodejs (>= 4.0.0) but 0.10.29~dfsg-2 is to be installed
- => this was fixed in an version, published a day later... 217.228.174.140 (talk) 22:25, 10 April 2017 (UTC)
- I assume you're running Debian Jessie? If you enable Debian Backports (see https://backports.debian.org/Instructions/) you can get an updated nodejs version that is 4.7.2. (Might need a manual
sudo apt-get install nodejs -t jessie-backportsto work.) Legoktm (talk) 22:31, 10 April 2017 (UTC)
- I assume you're running Debian Jessie? If you enable Debian Backports (see https://backports.debian.org/Instructions/) you can get an updated nodejs version that is 4.7.2. (Might need a manual
- That's correct though, Parsoid requires node.js >= v4.x Arlolra (talk) 22:28, 10 April 2017 (UTC)
Can Parsoid and my website share the same set of SSL certificates?
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Dear supporters,
I am getting curl error 35 when using VisualEditor under SSL connection, and I had my HSTS enabled. So I currently am investigating my stunnel configuration. Can Parsoid and my website use the same set of SSL certificate? Or do I have to generate a new set?
Below is my config file.
cert = /etc/letsencrypt/live/mydomian.com/cert.pem
key = /etc/letsencrypt/live/mydomian.com/privkey.pem
CAfile = /etc/letsencrypt/live/mydomian.com/chain.pem
[www]
accept = 8143
connect = 8142
LocalSettings.php config:
$wgVirtualRestConfig['modules']['parsoid'] = array(
// URL to the Parsoid instance
// Use port 8142 if you use the Debian package
'url' => 'https://mydomian.com:8142',
// Parsoid "domain", see below (optional)
'domain' => 'mydomian.com',
// Parsoid "prefix", see below (optional)
'prefix' => 'mydomian.com'
); MagaFun (talk) 11:01, 18 April 2017 (UTC)
- Yes, they can share the same TLS cert, if needed. Arlolra (talk) 12:56, 18 April 2017 (UTC)
- Do you happened to know any possible reasons that might produce error 35? I am out of clues. Or is this error logged more detailly somewhere else? MagaFun (talk) 12:59, 18 April 2017 (UTC)
- Well, first things first. Did you get Parsoid working with VE before trying to enable TLS? Are Parsoid and MediaWiki hosted on the same machine? Arlolra (talk) 13:21, 18 April 2017 (UTC)
- I did get Visual Editor working without TLS. Problem starts with TLS. And they are hosted on the same machine. MagaFun (talk) 13:45, 18 April 2017 (UTC)
- worked for me using Letsencrypt certs - I had this same error and I resolved it by opening up a new port on our azure container (8000) and then a vhost in apache to forward 8000 to localhost:8142, and then pointing mediawiki's LocalSettings.php to https://myhost:8000 - it required a bit of work in the apache config to get it working:
- ```<VirtualHost *:8000>
- ProxyPreserveHost On
- ProxyRequests Off
- ServerName mydomain
- SSLEngine on
- SSLCertificateFile /etc/letsencrypt/live/mydomain/fullchain.pem
- SSLCertificateKeyFile /etc/letsencrypt/live/mydomain/privkey.pem
- ProxyPass / http://localhost:8142/
- ProxyPassReverse / http://localhost:8142/
- </VirtualHost>``` Tansaku (talk) 12:00, 5 May 2017 (UTC)
Cannot find module
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Trying to setup parsoid on a new server, but keep running into this error when trying to start the parsoid service.
From the log file:
https://pastebin.com/mKY4N52s Facerafter (talk) 08:46, 19 April 2017 (UTC)
- How did you install Parsoid? Arlolra (talk) 11:46, 19 April 2017 (UTC)
- Followed the documentation provided to me.
- https://gist.github.com/anonymous/8cffa7084d74b6f06e4b6af3a535bf77
- This is for a Ubuntu 16.04 server.
- We used the same for our live server and it works fine but now we are setting up a dev/test server and it suddenly doesn't work... Facerafter (talk) 13:04, 19 April 2017 (UTC)
- Is there any reason you aren't using the debian packages we provide? See Parsoid/Setup#Ubuntu .2F Debian
- The instructions you provided are a little confusing. They point to a method that is trying to avoid using npm by cloning the deploy repo, which has the necessary dependencies already, and then invokes npm install anyways.
- From the looks of it, one of your copy steps is putting things in the wrong place. Arlolra (talk) 13:16, 19 April 2017 (UTC)
- Trying to reinstall via the link you sent actually showed me the problem as it saw the config.yaml already existed and showed the differences.
- Apparently in our old version we had: 'module: /lib/index.js' but it should be 'module: ../src/lib/index.js'
- So I aborted the installation and fixed the file. But VE doesn't do anything. The last line on parsoid.log does say 'Startup finished' though. Facerafter (talk) 13:48, 19 April 2017 (UTC)
- Can you clarify what you mean by VE doesn't do anything? What does the VE section of your LocalSettings.php look like? Arlolra (talk) 14:05, 19 April 2017 (UTC)
- As in when clicking on the edit icon for VE the browser starts to load and finishes loading but nothing changes. I stay on the same page in 'viewing' mode.
- Current config:
- https://gist.github.com/anonymous/a1c652a4da3951a08ecc45628f2a305f Facerafter (talk) 14:11, 19 April 2017 (UTC)
- Is Parsoid being started on 8142 or 8000? Arlolra (talk) 14:37, 19 April 2017 (UTC)
- 8142 Facerafter (talk) 16:51, 19 April 2017 (UTC)
- And what does curl http://localhost:8142/version give you? Arlolra (talk) 17:44, 19 April 2017 (UTC)
- {"name":"parsoid","version":"0.7.1"} Facerafter (talk) 19:22, 19 April 2017 (UTC)
- So, Parsoid seems up at least.
- Are there any errors in the browser developer console?
- Given that the last line in your parsoid.log is the startup message, it doesn't seem like VE is making any requests to it. Arlolra (talk) 21:13, 19 April 2017 (UTC)
- Yeah two errors but those were already in the console before trying to edit a page with VE
- Exception in module-execute in module site:
- and
- ReferenceError: Waves is not defined ReferenceError: Waves is not defined
- No new errors appear when trying to use it. Facerafter (talk) 12:38, 20 April 2017 (UTC)
- Do you have any other extensions installed? Try disabling them all except VE and verify that doesn't work first. Arlolra (talk) 13:02, 20 April 2017 (UTC)
- After disabling them all except VE and then trying to use VE results in an error in the developer console.
- GET <URL>/api.php?action=visualeditor&format=json&paction=parse&page=FAQ&uselang=en 500 (Internal Server Error)
- After which it keeps giving me a browser msg/notifcation/popup thing with just 'http' which keeps repeating with the error mentioned above. Facerafter (talk) 13:20, 20 April 2017 (UTC)
- That seems like an improvement. Is there anything in the Parsoid logs now? Arlolra (talk) 13:21, 20 April 2017 (UTC)
- Btw, I edited my response above (damn you are fast)
- But the parsoid logs says nothing new. Facerafter (talk) 13:23, 20 April 2017 (UTC)
- Since the server is returning 500, you should have server error logs you can look at to figure out what's going on. Arlolra (talk) 18:50, 20 April 2017 (UTC)
- To be clear, I mean whatever is serving mediawiki. Not parsoid. Arlolra (talk) 18:50, 20 April 2017 (UTC)
- Tried complete parsoid reinstallation. But encountered the exact same error as before the reinstallation
- Nothing in the apache2 error log. Facerafter (talk) 22:40, 20 April 2017 (UTC)
- Is this a public or private wiki? If MediaWiki is returning a 500 error, you should have something in the apache error logs. Arlolra (talk) 18:22, 21 April 2017 (UTC)
- Public. The developers console is displaying a 500 error when trying to use VE, the site itself works fine. Facerafter (talk) 20:45, 21 April 2017 (UTC)
- Can you share the url?
- Maybe try enabling some debugging flags in MediaWiki to generate more informative errors,
- // error_reporting( -1 );
- // ini_set( 'log_errors', 1 );
- // ini_set( 'error_log', '/tmp/php-error.log' ); Arlolra (talk) 01:49, 22 April 2017 (UTC)
- https://scwdev.czen.me
- Ffs, I still think there is something wrong with my parsoid installation...
- So I setup a local vm using a different install method (This one Parsoid/Setup#Ubuntu .2F Debian ) but than the /etc/mediawiki/parsoid directory is completely empty. Not config.yaml or anything...
- It seems like om doing something wrong everytime... I just don't know what. Facerafter (talk) 15:06, 22 April 2017 (UTC)
- I don't think there's anything wrong with the Parsoid setup above.
- Can you access, say, curl http://localhost:8142/localhost/v3/page/html/Magnus/21579? If so, Parsoid is fine. We established that above.
- I'm noticing on your wiki that it's telling me, "You do not have permission to edit this page, for the following reason".
- Can you try this https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid_in_private_wikis ?
- Also, there're still an exception, "Waves is not defined". You should disable all other extensions until this is resolved. Arlolra (talk) 15:46, 22 April 2017 (UTC)
troubleshooting parsoid
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
According to https://www.mediawiki.org/wiki/Parsoid/Troubleshooting you can test if the parsoid service is up and running and "serving" by surfing to http://yourDomain:8000/_wikitext/yourPrefix/". But 'prefix' has been removed from newer versions of Parsoid. Is there another way to test this? Hvdeynde (talk) 14:04, 10 May 2017 (UTC)
- you're better off trying http://localhost:8000/version Arlolra (talk) 14:08, 10 May 2017 (UTC)
- Thank you for your reply, but I already tested that Parsoid was up and running by accessing api.php via curl. According to the troubleshooting page, http://yourDomain:8000/_wikitext/yourPrefix/ should also help you determine whether it is actually doing what you expect to do. But as I do not know what value to enter for 'yourPrefix', I'm stuck.
- (Background info: we have a private wiki that we need to run in ssl, and I'm having trouble understanding how to configure Parsoid using a self-signed certificate.) Hvdeynde (talk) 14:42, 10 May 2017 (UTC)
- The /_wikitext endpoint is only available if you enable the devAPI in your config.yaml
- Did you set a prefix when you configured your MediaWiki api in the config.yaml?
- Typically, this would look like,
- - uri: 'http://yourdomain/api.php'
domain: 'yourdomain'prefix: 'yourprefix' // optional- in which case the answer would be 'yourprefix'.
- However, the easiest way to confirm it's working is to make a GET request to http://yourdomain:8000/yourdomain/v3/page/html/Main_Page
- which doesn't require setting a prefix (a somewhat deprecated concept in Parsoid) Arlolra (talk) 15:05, 10 May 2017 (UTC)
- A GET works fine. It returns:But when I hit 'Edit'-tab on the Main Page, I get a pop-up with "http" and an "OK" and "Cancel" button. If I select "OK", the page opens in "Edit source" instead of "Edit".
MediaWiki has been installed. Consult the User's Guide for information on using the wiki software. Getting started Configuration settings list MediaWiki FAQ MediaWiki release mailing list Localise MediaWiki for your language Learn how to combat spam on your wiki - There's nothing useful in the apache logs, nor in the parsoid logs. Hvdeynde (talk) 15:26, 10 May 2017 (UTC)
- At the moment, /etc/mediawiki/parsoid/config.yaml has What other levels exist? Hvdeynde (talk) 07:56, 11 May 2017 (UTC)
logging: level: info - const LEVELS = ['trace', 'debug', 'info', 'warn', 'error', 'fatal'];
- https://github.com/wikimedia/service-runner/blob/master/lib/logger.js#L9 Arlolra (talk) 20:08, 12 May 2017 (UTC)
- It sounds like Parsoid is setup fine, and you need to adjust your VE settings.
- Are there any errors in the browser console? Arlolra (talk) 20:09, 12 May 2017 (UTC)
- Thanks, Arloira.
- Yes, I get an Internal Server Error in the console when I select the 'Edit' tab: Hvdeynde (talk) 16:08, 15 May 2017 (UTC)
load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:140 GET https://edgwiki.hit.local/hit-wiki/api.php?action=visualeditor&format=json&paction=parse&page=Main_Page&uselang=en 500 (Internal Server Error) send @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:140 ajax @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:134 ajax @ VM131:68 get @ VM131:67 requestParsoidData @ VM132:34 requestPageData @ VM132:33 (anonymous) @ VM131:77 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:47 fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:45 add @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:45 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:47 each @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:5 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:47 Deferred @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:47 then @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:46 activateTarget @ VM131:77 activatePageTarget @ VM131:77 activateVe @ VM131:84 onEditTabClick @ VM131:83 dispatch @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:65 elemData.handle @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0sz2zo7:60
- How is VE configured in your LocalSettings.php?
- Also, have you followed,
- https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid_in_private_wikis Arlolra (talk) 19:00, 15 May 2017 (UTC)
- I was trying to set up the wiki to use https for all pages and thought the issue was how to get parsoid (which apparently only works in http) to work using tls, but I now removed the ssl settings and still have no luck.
- Current configuration:
- /etc/mediawiki/parsoid/config.yaml/var/www/html/hit-wiki/LocalSettings.php
worker_heartbeat_timeout: 300000 logging: level: info services: - module: ../src/lib/index.js entrypoint: apiServiceWorker conf: mwApis: uri: 'http://edgwiki.hit.local/hit-wiki/api.php' serverPort: 8142 strictSSL: falseI'd seen the https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid_in_private_wikis link, but as the parsoid service runs on the same server as the wiki, and I'm the only one who has direct login access to the server, I went with the config proposed at https://www.mediawiki.org/wiki/User:Andru~mediawikiwiki/Allow_Parsoid_Server(...) wfLoadExtension( 'VisualEditor' ); $wgDefaultUserOptions['visualeditor-enable'] = 1; $wgVisualEditorParsoidURL = 'http://edgwiki.hit.local'; if ( $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) { $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = true; }; - After each config change, I restart parsoid and apache2
- Current error in the console:
load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:140 GET https://edgwiki.hit.local/hit-wiki/api.php?action=visualeditor&format=json&paction=parse&page=Main_Page&uselang=en 500 (Internal Server Error) send @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:140 ajax @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:134 ajax @ VM1057:68 get @ VM1057:67 requestParsoidData @ VM1058:34 requestPageData @ VM1058:33 (anonymous) @ VM1057:77 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:47 fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:45 add @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:45 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:47 each @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:5 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:47 Deferred @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:47 then @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:46 activateTarget @ VM1057:77 (anonymous) @ VM1057:88 fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:45 add @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:45 jQuery.fn.ready @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:49 jQuery.fn.init @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:41 jQuery @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:1 (anonymous) @ VM1057:87 mw.loader.implement.css @ VM1057:93 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:161 fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:45 add @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:45 always @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:46 runScript @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:161 checkCssHandles @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:162 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:162 fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:45 fireWith @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:46 fire @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:46 fireCallbacks @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:156 addEmbeddedCSS @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:157 (anonymous) @ load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=0p8i8gh:156
- Both http://edgwiki.hit.local/hit-wiki/api.php and http://edgwiki.hit.local:8142/ work.
- http://edgwiki.hit.local/hit-wiki/api.php returns the "MediaWiki API help" page, http://edgwiki.hit.local:8142/ returns the "Welcome to the Parsoid web service." page Hvdeynde (talk) 10:07, 16 May 2017 (UTC)
- You need to change $wgVisualEditorParsoidURL = 'http://edgwiki.hit.local';
- to $wgVisualEditorParsoidURL = 'http://edgwiki.hit.local:8142';
- in your LocalSettings.php
- You've left out the port Arlolra (talk) 11:15, 16 May 2017 (UTC)
- Adding the port didn't seem to change things at first.
- But at least the apache access log now held some info I could use:
10.32.14.57 - - [16/May/2017:18:00:48 +0200] "GET /hit-wiki/api.php?action=visualeditor&format=json&paction=parse&page=Main_Page&uselang=en HTTP/1.1" 500 1894 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
- When I entered the url http://edgwiki.hit.local/hit-wiki/api.php?action=visualeditor&format=json&paction=parse&page=Main_Page&uselang=en (based on the GET statement in the log), the browser gave me a full error message:So I installed php-curl, restarted apache2, and the next attempt resulted in this info in the apache access log:
Internal Server Error [abfbfebee7a73c6aec183569] /hit-wiki/api.php?action=visualeditor&format=json&paction=parse&page=Main_Page&uselang=en Error from line 415 of /var/www/html/mediawiki-1.28.1/includes/libs/MultiHttpClient.php: Call to undefined function curl_multi_init() Backtrace: #0 /var/www/html/mediawiki-1.28.1/includes/libs/MultiHttpClient.php(140): MultiHttpClient->getCurlMulti() #1 /var/www/html/mediawiki-1.28.1/includes/libs/virtualrest/VirtualRESTServiceClient.php(250): MultiHttpClient->runMulti(array) #2 /var/www/html/mediawiki-1.28.1/includes/libs/virtualrest/VirtualRESTServiceClient.php(146): VirtualRESTServiceClient->runMulti(array) #3 /var/www/html/mediawiki-1.28.1/extensions/VisualEditor/ApiVisualEditor.php(97): VirtualRESTServiceClient->run(array) #4 /var/www/html/mediawiki-1.28.1/extensions/VisualEditor/ApiVisualEditor.php(226): ApiVisualEditor->requestRestbase(string, string, array) #5 /var/www/html/mediawiki-1.28.1/includes/api/ApiMain.php(1435): ApiVisualEditor->execute() #6 /var/www/html/mediawiki-1.28.1/includes/api/ApiMain.php(510): ApiMain->executeAction() #7 /var/www/html/mediawiki-1.28.1/includes/api/ApiMain.php(481): ApiMain->executeActionWithErrorHandling() #8 /var/www/html/mediawiki-1.28.1/api.php(83): ApiMain->execute() #9 {main}The first line looks odd. As in the second line, I expected a "GET /hit-wiki/...".10.32.9.143 - - [16/May/2017:18:12:04 +0200] "GET /edgwiki.hit.local/v3/page/html/Main_Page/2?redirect=false HTTP/1.1" 404 484 "-" "VisualEditor-MediaWiki/1.28.1" 10.32.14.57 - - [16/May/2017:18:12:04 +0200] "GET /hit-wiki/api.php?action=visualeditor&format=json&paction=parse&page=Main_Page&uselang=en HTTP/1.1" 200 470 "http://edgwiki.hit.local/hit-wiki/index.php/Main_Page?veaction=edit" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
- So I added the domain definition to both /etc/mediawiki/parsoid/config.yaml and /etc/mediawiki/parsoid/config.yaml, restarted apache and parsoid once more, and now we're in business.
- FWIIW, I retested the url definition in LocalSettings.php at this stage and it does indeed require specifying the tcp port 8142.
- So at least, after installing php-curl, adding the domain, and specifying the tcp port, it is working now for plain http.
- Tomorrow, I'll start the battle to get it working in https.
- Thanks for your assistance, Arlolra. Hvdeynde (talk) 16:45, 16 May 2017 (UTC)
I installed parsoid fine two weeks ago, but now I get "Unable to locate package parsoid"
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
I installed Parsoid fine on ubuntu two weeks ago, but just trying the same commands I get:
Unable to locate package parsoid
Here's my recent commands
14 sudo apt-key advanced --keyserver keys.gnupg.net --recv-keys 90E9F83F22250DD7
15 sudo apt-get update
16 sudo apt-get install apt-transport-https
17 sudo apt-get update && sudo apt-get install parsoid
18 nodejs -v
19 which nodejs
20 cat /etc/*-release
21 wget -qO- https://deb.nodesource.com/setup_4.x | sudo bash -
22 sudo apt-get install nodejs
23 which nodejs
24 nodejs -v
25 sudo apt-get update && sudo apt-get install parsoid
26 sudo apt-add-repository "deb https://releases.wikimedia.org/debian jessie-mediawiki main"
27 sudo apt-get install parsoid Tansaku (talk) 12:00, 18 May 2017 (UTC)
- I tested just now and didn't have any issue. What architecture are you on? Arlolra (talk) 15:10, 18 May 2017 (UTC)
Parsoid and Private wiki
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Visual Editor (and hence Parsoid) work fine, but when I want to make this wiki a private one (by denying read access to anyone who is not logged in), it stops working.
I tried changingif ( $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) {
$wgGroupPermissions['*']['read'] = true;
$wgGroupPermissions['*']['edit'] = true;
};
toBut that results in a fatal request because of lack of read permissions:if ( $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) { $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = true; } else { $wgGroupPermissions['user']['read'] = true; $wgGroupPermissions['*']['read'] = false; };
Could anyone assist me with this issue? Hvdeynde (talk) 13:44, 24 May 2017 (UTC){"name":"../src/lib/index.js","hostname":"edgwiki","pid":5213,"level":60,"logType":"fatal/request","wiki":"wiki$0","title":"NS_SBX:SBX_Sandbox_Test_Page_1","oldId":null,"reqId":null,"userAgent":"VisualEditor-MediaWiki/1.28.1","msg":"API response Error for TemplateRequest: request=; error={\"code\":\"readapidenied\",\"info\":\"You need read permission to use this module\",\"*\":\"See http://edgwiki.hit.local/hit-wiki/api.php for API usage\"}","stack":"Error: API response Error for TemplateRequest: request=; error={\"code\":\"readapidenied\",\"info\":\"You need read permission to use this module\",\"*\":\"See http://edgwiki.hit.local/hit-wiki/api.php for API usage\"}\n at TemplateRequest.ApiRequest._errorObj (/usr/lib/parsoid/src/lib/mw/ApiRequest.js:346:9)\n at TemplateRequest._handleJSON (/usr/lib/parsoid/src/lib/mw/ApiRequest.js:551:16)\n at TemplateRequest.ApiRequest._handleBody (/usr/lib/parsoid/src/lib/mw/ApiRequest.js:473:7)\n at TemplateRequest.ApiRequest._requestCB (/usr/lib/parsoid/src/lib/mw/ApiRequest.js:420:8)\n at Request.self.callback (/usr/lib/parsoid/node_modules/request/request.js:186:22)\n at emitTwo (events.js:87:13)\n at Request.emit (events.js:172:7)\n at Request.<anonymous> (/usr/lib/parsoid/node_modules/request/request.js:1081:10)\n at emitOne (events.js:77:13)\n at Request.emit (events.js:169:7)\n at IncomingMessage.<anonymous> (/usr/lib/parsoid/node_modules/request/request.js:1001:12)\n at IncomingMessage.g (events.js:260:16)\n at emitNone (events.js:72:20)\n at IncomingMessage.emit (events.js:166:7)\n at endReadableNT (_stream_readable.js:905:12)\n at nextTickCallbackWith2Args (node.js:441:9)","longMsg":"API response Error for TemplateRequest: request=; error={\"code\":\"readapidenied\",\"info\":\"You need read permission to use this module\",\"*\":\"See http://edgwiki.hit.local/hit-wiki/api.php for API usage\"}","levelPath":"fatal/request","time":"2017-05-24T13:37:38.201Z","v":0}
- Did you see https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid_in_private_wikis Arlolra (talk) 14:29, 24 May 2017 (UTC)
- Yes, I saw that section. I also saw the reference at the bottom of that section to https://www.mediawiki.org/wiki/User:Andru~mediawikiwiki/Allow_Parsoid_Server , which was the way I configured it.
- Forwarding the cookies as described in https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid_in_private_wikis works. Thanks!
- I suppose that means that Andru's solution is *not* valid for private wiki's? Hvdeynde (talk) 14:35, 29 May 2017 (UTC)
- Did you confirm what value of $_SERVER['REMOTE_ADDR'] you're getting?
- Try setting something like this in your LocalSettings.php,
- ini_set( 'error_log', '/tmp/php-error.log' );
- then,
- error_log( $_SERVER['REMOTE_ADDR'] ); Arlolra (talk) 13:24, 30 May 2017 (UTC)
- That is a useful trick. Not knowing PHP, I've been wondering how to check the values of such variables.
- In this case, $_SERVER['REMOTE_ADDR'] has the value of the server's IP address, not 127.0.0.1, which was the value I expected. Hvdeynde (talk) 10:14, 31 May 2017 (UTC)
- P.S. Replacing '127.0.0.1' in Andru's example by the server's actual IP address works fine as well. Hvdeynde (talk) 10:28, 31 May 2017 (UTC)
Strange errors
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hello everyone, in our Wiki installation we are faced with the following error appearing in parsoid.log (on client side/VisualEditor we get a http 500 several time):
{"name":"../src/lib/index.js","hostname":"abcWiki","pid":2956,"level":60,"logType":"fatal/request","wiki":"wiki$0","title":"abcTitle","oldId":null,"reqId":null,"userAgent":"VisualEditor-MediaWiki/1.28.0","msg":"Failed to parse the JSON response for Template Fetch","stack":"Error\n at TemplateRequest.ApiRequest._handleBody (/usr/lib/parsoid/src/lib/mw/ApiRequest.js:469:12)\n at TemplateRequest.ApiRequest._requestCB (/usr/lib/parsoid/src/lib/mw/ApiRequest.js:420:8)\n at Request.self.callback (/usr/lib/parsoid/node_modules/request/request.js:186:22)\n at emitTwo (events.js:125:13)\n at Request.emit (events.js:213:7)\n at Request.<anonymous> (/usr/lib/parsoid/node_modules/request/request.js:1081:10)\n at emitOne (events.js:115:13)\n at Request.emit (events.js:210:7)\n at IncomingMessage.<anonymous> (/usr/lib/parsoid/node_modules/request/request.js:1001:12)\n at Object.onceWrapper (events.js:312:19)\n at emitNone (events.js:110:20)\n at IncomingMessage.emit (events.js:207:7)\n at endReadableNT (_stream_readable.js:1045:12)\n at _combinedTickCallback (internal/process/next_tick.js:102:11)\n at process._tickCallback (internal/process/next_tick.js:161:9)","httpStatus":500,"longMsg":"Failed to parse the JSON response for Template Fetch","levelPath":"fatal/request","time":"2017-06-01T12:12:26.507Z","v":0}
This error occurs when certain pages are edited. We were not able to isolate the problem since the occurance seems to have a random and status dependency. However, we have pages with a relatively complex structure which do not have this problem, and we have pages with a table containing URLs which always causes this error. Does someone has an idea how we get more detail from Parsoid which template this problem causes? Or is there something else we overlooked? Thank you in advance for your help. 194.59.120.161 (talk) 05:09, 2 June 2017 (UTC)
- Is your wiki public? If yes, can you paste a URL for pages on which you have this problem? SSastry (WMF) (talk) 14:55, 2 June 2017 (UTC)
- Unfortunately the wiki is not public. Could you describe how to further debug the problem that Parsoid has? Aschroet (talk) 07:58, 6 June 2017 (UTC)
- Why don't you show up on IRC (#mediawiki-parsoid) one of these days? It will be quicker to figure this out. Do note that we may not respond right away on IRC as well, but it will be a faster turnaround than here. You can then post a resolution of the problem here for everyone's benefit. SSastry (WMF) (talk) 20:38, 6 June 2017 (UTC)
- Seems that nobody is answering in IRC.
- Meanwhile, we found out that the this API call
- http://host_name/mediawiki/api.php?action=visualeditor&format=json&paction=parse&page=page_name
- returns the 500:
- {"error":{"code":"500","info":"docserver-http: HTTP 500","*":"See http://host_name/mediawiki/api.php for API usage"}}
- Since this call is done multiple times when entering VE we get multiple dialogs with a "500". Aschroet (talk) 12:20, 8 June 2017 (UTC)
- We discussed on IRC, and this seemed to be caused by Apache sending an early eof, or chunking the response. Whatever the case, the JSON blob that Parsoid was receiving from MediaWiki was truncated. The user was going to investigate further. Arlolra (talk) 22:45, 12 June 2017 (UTC)
- The problem occurs when Parsoid tries to get the Wikitext from Mediawiki by an URL like this:
- http://mediawikiserver/mediawiki/api.php?format=json&action=query&prop=info|revisions&rawcontinue=1&rvprop=content|ids|timestamp|size|sha1|contentmodel&titles=pagename
- From time to time the response is truncated because of a "Connection closed by foreign host." which is definitely a network problem on our side.
- However, two things i want to mention. First, cURL and browsers can deal with this problem. Maybe it is connected with the HTTP header "Connection: keep-alive" which is not supported by Parsoid. Second, i wonder why Mediawiki is not shipping the Wikitext with the request to Parsoid. Instead, Parsoid additionally calls the Wiki-API which requires that the Parsoid "server" needs the exact endpoints of the Mediawiki "clients". Aschroet (talk) 12:51, 16 June 2017 (UTC)
Parsoid + VisualEditor = unsupported?
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
In wikitech-l today, Gabriel Wicke wrote:
"In short, using Parsoid directly for visual editing is an unsupported configuration, and is likely to stop working altogether in the foreseeable future.
If this is the case, then shouldn't Parsoid/Setup say this loud and clear? RESTbase is barely mentioned at the end of the article (without any description of what it is or why you'd use it). Thank you. Maiden taiwan (talk) 16:27, 9 June 2017 (UTC)
- We are still debating this as we speak. When we make the formal decision to go that route, we'll make those announcements, update wikis, etc. But, as of today, that combination is supported.
- But, we are trying to figure out what combination of components support what options, and at point the complexity of supporting multiple combinations overrides the benefits. We haven't yet arrived at the answers quite yet. SSastry (WMF) (talk) 17:38, 9 June 2017 (UTC)
Debian 9: error 500
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hello, after upgrading to Debian 9, I get an error 500
I did not change anything in the Mediawiki, Visual Editor, Parsoid installation.
- Parsoid version: 0.5.1all
- Node version: v4.8.2
Any advice ?
LOG :
{
"0": "Starting HTTP request: ",
"1": {
"method": "GET",
"followRedirect": true,
"uri": "http://host_name/wiki/api.php",
"qs": {
"format": "json",
"action": "query",
"meta": "siteinfo",
"siprop": "namespaces|namespacealiases|magicwords|functionhooks|extensiontags|general|interwikimap|languages|protocols|specialpagealiases",
"rawcontinue": 1
},
"timeout": 40000,
"headers": {
"X-Request-ID": null,
"User-Agent": "Parsoid/0.5.0",
"Connection": "close"
},
"strictSSL": true
}
}
[warning][wiki$0/Language/Spanish/Vocabulary/Parts-of-a-tree] non-200 response: 500 <!DOCTYPE html><html><head><title>Internal Server Error</title></head><body><h1>Internal Server Error</h1><p>DB connection error<br />
</p></body></html> 176.151.92.12 (talk) 10:59, 23 June 2017 (UTC)
- "DB connection error" sounds like your MediaWiki may not be configured correctly. Can you first confirm that the MediaWiki action API is responding correctly.
- It should look like, https://en.wikipedia.org/w/api.php Arlolra (talk) 13:16, 23 June 2017 (UTC)
- from the browser, the API is working correctely
- from the server, it's not working
- FROM THE SERVER:
- curl http://[DOMAIN]//wiki/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json
- Internal Server Error
- DB connection error
- FROM THE BROWSER
- it's working
- {"batchcomplete":"","query":{"pages":{"84":{"pageid":84,"ns":0,"title":"Main Page","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"#REDIRECT Home"}]}}}} 176.151.92.12 (talk) 15:05, 23 June 2017 (UTC)
- What does your $wgDBserver string say, in LocalSettings.php Arlolra (talk) 15:14, 23 June 2017 (UTC)
- LocalSettings.php
- ------
- $wgVirtualRestConfig['modules']['parsoid'] = array(
- 'url' => 'http://127.0.0.1:8142',
- 'domain' => 'localhost',
- 'prefix' => 'localhost'
- );
- settings.js
- ------
- parsoidConfig.setMwApi({
- uri: 'http://xxxxx/wiki/api.php',
- domain: 'localhost',
- prefix: 'localhost'
- });
- parsoidConfig.serverPort = 8142; 176.151.92.12 (talk) 15:27, 23 June 2017 (UTC)
- Sorry, but that's not what I asked. I wanted the $wgDBserver string Arlolra (talk) 15:30, 23 June 2017 (UTC)
- sorry :) $wgDBserver = "localhost"; 176.151.92.12 (talk) 15:32, 23 June 2017 (UTC)
- Hmm, I'm not sure. You might want to ask for help at https://www.mediawiki.org/wiki/Project:Support_desk
- I suspect when the above curl command works, Parsoid will as well. Arlolra (talk) 15:50, 23 June 2017 (UTC)
- thanks ! It might be due to an internal issue
- with CURL mysql is not working event on the main site (without mediawiki) 176.151.92.12 (talk) 16:00, 23 June 2017 (UTC)
- when I try to connect to http://[site]/wiki/Home?veaction=edit
- in the log I have:
- Unexpected REMOTE_USER authentication failure. Login Error was:EmptyPass, referer: http://[site]/wiki/Home?veaction=edit 176.151.92.12 (talk) 16:20, 23 June 2017 (UTC)
- Is this a private wiki? Have a look at,
- https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid_in_private_wikis Arlolra (talk) 16:44, 23 June 2017 (UTC)
- thanks but no it's public 176.151.92.12 (talk) 16:58, 23 June 2017 (UTC)
- Looks like that may be coming from Extension:Auth_remoteuser?
- I'd suggest you disable all your other extensions when trying to get VE setup. Then enabling them one by one, and confirming nothing breaks. Arlolra (talk) 17:10, 23 June 2017 (UTC)
Timeout in VisualEditor
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hi, we have one very huge Page in one of our customers mediawiki. Editing this page will cause an alert windows after about 30 seconds witch says: "http". Not more. The Parsoid log says: ...started parsing... and then ...completed parsing in 37661 ms... so im guessing on a timeout problem. All other Pages load fast and fine. Is there a way to increase timeout? Thank you for every help and hint :-) 217.86.209.28 (talk) 11:09, 23 June 2017 (UTC)
- Not sure, I think you should ask on the VE talk page. Alternatively, you can try setting up RESTBase in front of Parsoid, so that the parse is cached and VE loads it fast. Arlolra (talk) 13:14, 23 June 2017 (UTC)
- How huge is "very huge"? Whatamidoing (WMF) (talk) 03:11, 24 June 2017 (UTC)
- In Plaintext we have 21801 Lines 217.86.209.28 (talk) 10:20, 30 June 2017 (UTC)
How to Install Parsoid Service on a non Debian System without Internet connection
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hello everyone,
I ran in some Problems with my current Setup where Parsoid is running on an external Server with Debian installed + Internet connection.
Is it possible to build Parsoid from source or is there any other offline solution for a Server running Red Hat. Maluxer (talk) 06:41, 29 June 2017 (UTC)
- Parsoid is written in JavaScript, which is an interpreted language. I suppose the only build step would be to download the dependencies.
- To avoid using npm, you can clone the following, which has everything checked into one repository,
- https://github.com/wikimedia/mediawiki-services-parsoid-deploy
- See https://www.mediawiki.org/wiki/Parsoid/Developer_Setup#Option_1._Clone_the_mediawiki.2Fservices.2Fparsoid.2Fdeploy_repository Arlolra (talk) 13:39, 29 June 2017 (UTC)
[FASTER] How do I connect Parsoid to hosting service?
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
I want to use visual editor on my mediawiki on my hosting service whitch has MediaWiki installed. I need to install Parsoid to avoid errors. Can you guys help? John Harry Lau (talk) 05:15, 9 August 2017 (UTC)
- Have you tried Parsoid/Setup? Arlolra (talk) 19:26, 9 August 2017 (UTC)
- Yep. John Harry Lau (talk) 03:48, 10 August 2017 (UTC)
- @John Harry Lau Did you get any errors when following the guide mentioned above? Reception123 (talk) 05:19, 10 August 2017 (UTC)
- nope. just warnings John Harry Lau (talk) 08:53, 10 August 2017 (UTC)
- Can you paste examples of the warnings you're seeing? Arlolra (talk) 11:39, 10 August 2017 (UTC)
- I didn't. Just warning about upgrades and instead issues... John Harry Lau (talk) 13:24, 10 August 2017 (UTC)
- Then what is the problem? Reception123 (talk) 14:04, 11 August 2017 (UTC)
how to autostart parsoid on raspberry pi?
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
i really don't know about this.... 121.181.151.166 (talk) 10:33, 13 August 2017 (UTC)
- How did you install Parsoid?
- If you used the debian package it comes with init and upstart scripts.
- https://github.com/wikimedia/mediawiki-services-parsoid-deploy/blob/master/debian/parsoid.init
- https://github.com/wikimedia/mediawiki-services-parsoid-deploy/blob/master/debian/upstart/parsoid.conf Arlolra (talk) 14:08, 13 August 2017 (UTC)
Error in the npm test for the parsoid folder?
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
I installed the parsoid and run the "npm install", everything is OK. But when I use the npm test ,Error occoured. Anyone knows the reason or give some advise?
the log file is below:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'nsp' ]
2 info using npm@5.4.0
3 info using node@v6.11.2
4 verbose run-script [ 'prensp', 'nsp', 'postnsp' ]
5 info lifecycle parsoid@0.7.1~prensp: parsoid@0.7.1
6 info lifecycle parsoid@0.7.1~nsp: parsoid@0.7.1
7 verbose lifecycle parsoid@0.7.1~nsp: unsafe-perm in lifecycle true
8 verbose lifecycle parsoid@0.7.1~nsp: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/data/wwwroot/default/mediawiki/services/parsoid/node_modules/.bin:/usr/local/lib/node_modules/npm/bin/node-gyp-bin:/data/wwwroot/default/mediawiki/services/parsoid/node_modules/.bin:/usr/local/php/bin:/usr/local/apache/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
9 verbose lifecycle parsoid@0.7.1~nsp: CWD: /data/wwwroot/default/mediawiki/services/parsoid
10 silly lifecycle parsoid@0.7.1~nsp: Args: [ '-c', 'nsp check' ]
11 silly lifecycle parsoid@0.7.1~nsp: Returned: code: 1 signal: null
12 info lifecycle parsoid@0.7.1~nsp: Failed to exec nsp script
13 verbose stack Error: parsoid@0.7.1 nsp: `nsp check`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:280:16)
13 verbose stack at emitTwo (events.js:106:13)
13 verbose stack at EventEmitter.emit (events.js:191:7)
13 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at emitTwo (events.js:106:13)
13 verbose stack at ChildProcess.emit (events.js:191:7)
13 verbose stack at maybeClose (internal/child_process.js:891:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
14 verbose pkgid parsoid@0.7.1
15 verbose cwd /data/wwwroot/default/mediawiki/services/parsoid
16 verbose Linux 3.10.0-514.26.2.el7.x86_64
17 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "nsp"
18 verbose node v6.11.2
19 verbose npm v5.4.0
20 error code ELIFECYCLE
21 error errno 1
22 error parsoid@0.7.1 nsp: `nsp check`
22 error Exit status 1
23 error Failed at the parsoid@0.7.1 nsp script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ] Pdwangchao (talk) 12:00, 2 September 2017 (UTC)
- Are there any warnings of missing packages when you run
npm ls? nsp checkmakes a request to nodesecurity.io, is that being rejected by a firewall or something> Arlolra (talk) 15:32, 2 September 2017 (UTC)- Hi Arlolra
- Thanks for your reply!
- Yes, it exists.
- when I use "npm ls", the output is below. I google for it but have no idea. when I run the "nsp check", nothing happened. Then I ran it again and the output is "bash: nsp: command not found..."
- By the way, I install the parsoid by git clone method, and install the nodejs by yum method(v6.11.1) and then the make method(v6.11.2).
- npm ls:
- parsoid@0.7.1 /data/wwwroot/default/mediawiki/services/parsoid
- ├── alea@0.0.9
- ├── async@0.9.2
- ├─┬ babybird@0.0.1
- │ ├── asap@2.0.5
- │ └── is-arguments@1.0.2
- ├─┬ body-parser@1.17.1
- │ ├── bytes@2.4.0
- │ ├── content-type@1.0.2
- │ ├─┬ debug@2.6.1
- │ │ └── ms@0.7.2
- │ ├── depd@1.1.0
- │ ├─┬ http-errors@1.6.1
- │ │ ├── depd@1.1.0 deduped
- │ │ ├── inherits@2.0.3
- │ │ ├── setprototypeof@1.0.3 deduped
- │ │ └── statuses@1.3.1 deduped
- │ ├── iconv-lite@0.4.15
- │ ├─┬ on-finished@2.3.0
- │ │ └── ee-first@1.1.1
- │ ├── qs@6.4.0
- │ ├─┬ raw-body@2.2.0
- │ │ ├── bytes@2.4.0 deduped
- │ │ ├── iconv-lite@0.4.15 deduped
- │ │ └── unpipe@1.0.0 deduped
- │ └─┬ type-is@1.6.15
- │ ├── media-typer@0.3.0
- │ └── mime-types@2.1.15 deduped
- ├─┬ chai@3.5.0
- │ ├── assertion-error@1.0.2
- │ ├─┬ deep-eql@0.1.3
- │ │ └── type-detect@0.1.1
- │ └── type-detect@1.0.0
- ├── colors@1.1.2
- ├─┬ compression@1.6.2
- │ ├─┬ accepts@1.3.3
- │ │ ├── mime-types@2.1.15 deduped
- │ │ └── negotiator@0.6.1 deduped (git+https://github.com/arlolra/negotiator.git#0418ab4e9a665772b7e233564a4525c9d9a8ec3a)
- │ ├── bytes@2.3.0
- │ ├─┬ compressible@2.0.10
- │ │ └── mime-db@1.27.0
- │ ├─┬ debug@2.2.0
- │ │ └── ms@0.7.1
- │ ├── on-headers@1.0.1
- │ └── vary@1.1.1
- ├─┬ connect-busboy@0.0.2
- │ └─┬ busboy@0.2.14
- │ ├─┬ dicer@0.2.5
- │ │ ├── readable-stream@1.1.14 deduped
- │ │ └── streamsearch@0.1.2
- │ └─┬ readable-stream@1.1.14
- │ ├── core-util-is@1.0.2
- │ ├── inherits@2.0.3 deduped
- │ ├── isarray@0.0.1
- │ └── string_decoder@0.10.31
- ├── content-type@1.0.1 (git+https://github.com/wikimedia/content-type.git#47b2632d0a2ee79a7d67268e2f6621becd95d05b)
- ├── core-js@2.4.1
- ├─┬ coveralls@2.13.0
- │ ├─┬ js-yaml@3.6.1
- │ │ ├── argparse@1.0.9 deduped
- │ │ └── esprima@2.7.3
- │ ├── lcov-parse@0.0.10
- │ ├── log-driver@1.2.5
- │ ├── minimist@1.2.0
- │ └─┬ request@2.79.0
- │ ├── aws-sign2@0.6.0 deduped
- │ ├── aws4@1.6.0 deduped
- │ ├── caseless@0.11.0
- │ ├── combined-stream@1.0.5 deduped
- │ ├── extend@3.0.0 deduped
- │ ├── forever-agent@0.6.1 deduped
- │ ├── form-data@2.1.2 deduped
- │ ├─┬ har-validator@2.0.6
- │ │ ├── chalk@1.1.3 deduped
- │ │ ├─┬ commander@2.9.0
- │ │ │ └── graceful-readlink@1.0.1
- │ │ ├── is-my-json-valid@2.16.0 deduped
- │ │ └─┬ pinkie-promise@2.0.1
- │ │ └── pinkie@2.0.4
- │ ├── hawk@3.1.3 deduped
- │ ├── http-signature@1.1.1 deduped
- │ ├── is-typedarray@1.0.0 deduped
- │ ├── isstream@0.1.2 deduped
- │ ├── json-stringify-safe@5.0.1 deduped
- │ ├── mime-types@2.1.15 deduped
- │ ├── oauth-sign@0.8.2 deduped
- │ ├── qs@6.3.2
- │ ├── stringstream@0.0.5 deduped
- │ ├── tough-cookie@2.3.2 deduped
- │ ├── tunnel-agent@0.4.3
- │ └── uuid@3.0.1
- ├── diff@1.4.0
- ├── domino@1.0.28
- ├── entities@1.1.1
- ├─┬ eslint@3.19.0
- │ ├─┬ babel-code-frame@6.22.0
- │ │ ├── chalk@1.1.3 deduped
- │ │ ├── esutils@2.0.2 deduped
- │ │ └── js-tokens@3.0.1
- │ ├─┬ chalk@1.1.3
- │ │ ├── ansi-styles@2.2.1
- │ │ ├── escape-string-regexp@1.0.5
- │ │ ├─┬ has-ansi@2.0.0
- │ │ │ └── ansi-regex@2.1.1 deduped
- │ │ ├─┬ strip-ansi@3.0.1
- │ │ │ └── ansi-regex@2.1.1 deduped
- │ │ └── supports-color@2.0.0
- │ ├─┬ concat-stream@1.6.0
- │ │ ├── inherits@2.0.3 deduped
- │ │ ├─┬ readable-stream@2.2.9
- │ │ │ ├── buffer-shims@1.0.0
- │ │ │ ├── core-util-is@1.0.2 deduped
- │ │ │ ├── inherits@2.0.3 deduped
- │ │ │ ├── isarray@1.0.0
- │ │ │ ├── process-nextick-args@1.0.7
- │ │ │ ├─┬ string_decoder@1.0.0
- │ │ │ │ └── buffer-shims@1.0.0 deduped
- │ │ │ └── util-deprecate@1.0.2
- │ │ └── typedarray@0.0.6
- │ ├── debug@2.6.1 deduped
- │ ├─┬ doctrine@2.0.0
- │ │ ├── esutils@2.0.2 deduped
- │ │ └── isarray@1.0.0
- │ ├─┬ escope@3.6.0
- │ │ ├─┬ es6-map@0.1.5
- │ │ │ ├─┬ d@1.0.0
- │ │ │ │ └── es5-ext@0.10.15 deduped
- │ │ │ ├─┬ es5-ext@0.10.15
- │ │ │ │ ├── es6-iterator@2.0.1 deduped
- │ │ │ │ └── es6-symbol@3.1.1 deduped
- │ │ │ ├─┬ es6-iterator@2.0.1
- │ │ │ │ ├── d@1.0.0 deduped
- │ │ │ │ ├── es5-ext@0.10.15 deduped
- │ │ │ │ └── es6-symbol@3.1.1 deduped
- │ │ │ ├─┬ es6-set@0.1.5
- │ │ │ │ ├── d@1.0.0 deduped
- │ │ │ │ ├── es5-ext@0.10.15 deduped
- │ │ │ │ ├── es6-iterator@2.0.1 deduped
- │ │ │ │ ├── es6-symbol@3.1.1 deduped
- │ │ │ │ └── event-emitter@0.3.5 deduped
- │ │ │ ├─┬ es6-symbol@3.1.1
- │ │ │ │ ├── d@1.0.0 deduped
- │ │ │ │ └── es5-ext@0.10.15 deduped
- │ │ │ └─┬ event-emitter@0.3.5
- │ │ │ ├── d@1.0.0 deduped
- │ │ │ └── es5-ext@0.10.15 deduped
- │ │ ├─┬ es6-weak-map@2.0.2
- │ │ │ ├── d@1.0.0 deduped
- │ │ │ ├── es5-ext@0.10.15 deduped
- │ │ │ ├── es6-iterator@2.0.1 deduped
- │ │ │ └── es6-symbol@3.1.1 deduped
- │ │ ├─┬ esrecurse@4.1.0
- │ │ │ ├── estraverse@4.1.1
- │ │ │ └── object-assign@4.1.1 deduped
- │ │ └── estraverse@4.2.0
- │ ├─┬ espree@3.4.2
- │ │ ├── acorn@5.0.3
- │ │ └─┬ acorn-jsx@3.0.1
- │ │ └── acorn@3.3.0
- │ ├─┬ esquery@1.0.0
- │ │ └── estraverse@4.2.0
- │ ├── estraverse@4.2.0
- │ ├── esutils@2.0.2
- │ ├─┬ file-entry-cache@2.0.0
- │ │ ├─┬ flat-cache@1.2.2
- │ │ │ ├── circular-json@0.3.1
- │ │ │ ├─┬ del@2.2.2
- │ │ │ │ ├─┬ globby@5.0.0
- │ │ │ │ │ ├─┬ array-union@1.0.2
- │ │ │ │ │ │ └── array-uniq@1.0.3
- │ │ │ │ │ ├── arrify@1.0.1
- │ │ │ │ │ ├─┬ glob@7.1.1
- │ │ │ │ │ │ ├── fs.realpath@1.0.0 deduped
- │ │ │ │ │ │ ├── inflight@1.0.6 deduped
- │ │ │ │ │ │ ├── inherits@2.0.3 deduped
- │ │ │ │ │ │ ├── minimatch@3.0.3 deduped
- │ │ │ │ │ │ ├── once@1.4.0 deduped
- │ │ │ │ │ │ └── path-is-absolute@1.0.1 deduped
- │ │ │ │ │ ├── object-assign@4.1.1 deduped
- │ │ │ │ │ ├── pify@2.3.0 deduped
- │ │ │ │ │ └── pinkie-promise@2.0.1 deduped
- │ │ │ │ ├── is-path-cwd@1.0.0
- │ │ │ │ ├─┬ is-path-in-cwd@1.0.0
- │ │ │ │ │ └─┬ is-path-inside@1.0.0
- │ │ │ │ │ └── path-is-inside@1.0.2 deduped
- │ │ │ │ ├── object-assign@4.1.1 deduped
- │ │ │ │ ├── pify@2.3.0
- │ │ │ │ ├── pinkie-promise@2.0.1 deduped
- │ │ │ │ └─┬ rimraf@2.6.1
- │ │ │ │ └─┬ glob@7.1.1
- │ │ │ │ ├── fs.realpath@1.0.0 deduped
- │ │ │ │ ├── inflight@1.0.6 deduped
- │ │ │ │ ├── inherits@2.0.3 deduped
- │ │ │ │ ├── minimatch@3.0.3 deduped
- │ │ │ │ ├── once@1.4.0 deduped
- │ │ │ │ └── path-is-absolute@1.0.1 deduped
- │ │ │ ├── graceful-fs@4.1.11 deduped
- │ │ │ └─┬ write@0.2.1
- │ │ │ └── mkdirp@0.5.1 deduped
- │ │ └── object-assign@4.1.1
- │ ├─┬ glob@7.1.1
- │ │ ├── fs.realpath@1.0.0
- │ │ ├─┬ inflight@1.0.6
- │ │ │ ├── once@1.4.0 deduped
- │ │ │ └── wrappy@1.0.2 deduped
- │ │ ├── inherits@2.0.3 deduped
- │ │ ├─┬ minimatch@3.0.3
- │ │ │ └─┬ brace-expansion@1.1.6
- │ │ │ ├── balanced-match@0.4.2
- │ │ │ └── concat-map@0.0.1
- │ │ ├── once@1.4.0 deduped
- │ │ └── path-is-absolute@1.0.1
- │ ├── globals@9.17.0
- │ ├── ignore@3.2.7
- │ ├── imurmurhash@0.1.4
- │ ├─┬ inquirer@0.12.0
- │ │ ├── ansi-escapes@1.4.0
- │ │ ├── ansi-regex@2.1.1
- │ │ ├── chalk@1.1.3 deduped
- │ │ ├─┬ cli-cursor@1.0.2
- │ │ │ └─┬ restore-cursor@1.0.1
- │ │ │ ├── exit-hook@1.1.1
- │ │ │ └── onetime@1.1.0
- │ │ ├── cli-width@2.1.0
- │ │ ├─┬ figures@1.7.0
- │ │ │ ├── escape-string-regexp@1.0.5 deduped
- │ │ │ └── object-assign@4.1.1 deduped
- │ │ ├── lodash@4.17.4
- │ │ ├─┬ readline2@1.0.1
- │ │ │ ├── code-point-at@1.1.0 deduped
- │ │ │ ├── is-fullwidth-code-point@1.0.0 deduped
- │ │ │ └── mute-stream@0.0.5
- │ │ ├─┬ run-async@0.1.0
- │ │ │ └── once@1.4.0 deduped
- │ │ ├── rx-lite@3.1.2
- │ │ ├── string-width@1.0.2 deduped
- │ │ ├── strip-ansi@3.0.1 deduped
- │ │ └── through@2.3.8
- │ ├─┬ is-my-json-valid@2.16.0
- │ │ ├── generate-function@2.0.0
- │ │ ├─┬ generate-object-property@1.2.0
- │ │ │ └── is-property@1.0.2
- │ │ ├── jsonpointer@4.0.1
- │ │ └── xtend@4.0.1
- │ ├─┬ is-resolvable@1.0.0
- │ │ └── tryit@1.0.3
- │ ├── js-yaml@3.8.3 deduped
- │ ├─┬ json-stable-stringify@1.0.1
- │ │ └── jsonify@0.0.0
- │ ├─┬ levn@0.3.0
- │ │ ├── prelude-ls@1.1.2
- │ │ └─┬ type-check@0.3.2
- │ │ └── prelude-ls@1.1.2 deduped
- │ ├── lodash@4.17.4
- │ ├─┬ mkdirp@0.5.1
- │ │ └── minimist@0.0.8
- │ ├── natural-compare@1.4.0
- │ ├─┬ optionator@0.8.2
- │ │ ├── deep-is@0.1.3
- │ │ ├── fast-levenshtein@2.0.6
- │ │ ├── levn@0.3.0 deduped
- │ │ ├── prelude-ls@1.1.2 deduped
- │ │ ├── type-check@0.3.2 deduped
- │ │ └── wordwrap@1.0.0
- │ ├── path-is-inside@1.0.2
- │ ├── pluralize@1.2.1
- │ ├── progress@1.1.8
- │ ├─┬ require-uncached@1.0.3
- │ │ ├─┬ caller-path@0.1.0
- │ │ │ └── callsites@0.2.0
- │ │ └── resolve-from@1.0.1
- │ ├─┬ shelljs@0.7.7
- │ │ ├── glob@7.1.1 deduped
- │ │ ├── interpret@1.0.3
- │ │ └─┬ rechoir@0.6.2
- │ │ └── resolve@1.1.7 deduped
- │ ├── strip-bom@3.0.0
- │ ├── strip-json-comments@2.0.1
- │ ├─┬ table@3.8.3
- │ │ ├─┬ ajv@4.11.5
- │ │ │ ├── co@4.6.0
- │ │ │ └── json-stable-stringify@1.0.1 deduped
- │ │ ├── ajv-keywords@1.5.1
- │ │ ├── chalk@1.1.3 deduped
- │ │ ├── lodash@4.17.4
- │ │ ├── slice-ansi@0.0.4
- │ │ └─┬ string-width@2.0.0
- │ │ ├── is-fullwidth-code-point@2.0.0
- │ │ └── strip-ansi@3.0.1 deduped
- │ ├── text-table@0.2.0
- │ └─┬ user-home@2.0.0
- │ └── os-homedir@1.0.2
- ├── eslint-config-node-services@2.1.1
- ├─┬ eslint-plugin-jsdoc@3.0.2
- │ ├─┬ comment-parser@0.4.0
- │ │ └─┬ readable-stream@2.2.9
- │ │ ├── buffer-shims@1.0.0 deduped
- │ │ ├── core-util-is@1.0.2 deduped
- │ │ ├── inherits@2.0.3 deduped
- │ │ ├── isarray@1.0.0
- │ │ ├── process-nextick-args@1.0.7 deduped
- │ │ ├─┬ string_decoder@1.0.0
- │ │ │ └── buffer-shims@1.0.0 deduped
- │ │ └── util-deprecate@1.0.2 deduped
- │ └── lodash@4.17.4
- ├─┬ eslint-plugin-json@1.2.0
- │ └─┬ jshint@2.9.4
- │ ├─┬ cli@1.0.1
- │ │ ├── exit@0.1.2 deduped
- │ │ └─┬ glob@7.1.1
- │ │ ├── fs.realpath@1.0.0 deduped
- │ │ ├── inflight@1.0.6 deduped
- │ │ ├── inherits@2.0.3 deduped
- │ │ ├── minimatch@3.0.3 deduped
- │ │ ├── once@1.4.0 deduped
- │ │ └── path-is-absolute@1.0.1 deduped
- │ ├─┬ console-browserify@1.1.0
- │ │ └── date-now@0.1.4
- │ ├── exit@0.1.2
- │ ├─┬ htmlparser2@3.8.3
- │ │ ├── domelementtype@1.3.0
- │ │ ├─┬ domhandler@2.3.0
- │ │ │ └── domelementtype@1.3.0 deduped
- │ │ ├─┬ domutils@1.5.1
- │ │ │ ├─┬ dom-serializer@0.1.0
- │ │ │ │ ├── domelementtype@1.1.3
- │ │ │ │ └── entities@1.1.1 deduped
- │ │ │ └── domelementtype@1.3.0 deduped
- │ │ ├── entities@1.0.0
- │ │ └── readable-stream@1.1.14 deduped
- │ ├── lodash@3.7.0
- │ ├── minimatch@3.0.3 deduped
- │ ├── shelljs@0.3.0
- │ └── strip-json-comments@1.0.4
- ├─┬ express@4.15.2
- │ ├── accepts@1.3.3 deduped
- │ ├── array-flatten@1.1.1
- │ ├── content-disposition@0.5.2
- │ ├── content-type@1.0.2
- │ ├── cookie@0.3.1
- │ ├── cookie-signature@1.0.6
- │ ├── debug@2.6.1 deduped
- │ ├── depd@1.1.0 deduped
- │ ├── encodeurl@1.0.1
- │ ├── escape-html@1.0.3
- │ ├── etag@1.8.0
- │ ├── finalhandler@1.0.1 deduped
- │ ├── fresh@0.5.0
- │ ├── merge-descriptors@1.0.1
- │ ├── methods@1.1.2
- │ ├── on-finished@2.3.0 deduped
- │ ├── parseurl@1.3.1
- │ ├── path-to-regexp@0.1.7
- │ ├─┬ proxy-addr@1.1.4
- │ │ ├── forwarded@0.1.0
- │ │ └── ipaddr.js@1.3.0
- │ ├── qs@6.4.0 deduped
- │ ├── range-parser@1.2.0
- │ ├─┬ send@0.15.1
- │ │ ├── debug@2.6.1 deduped
- │ │ ├── depd@1.1.0 deduped
- │ │ ├── destroy@1.0.4
- │ │ ├── encodeurl@1.0.1 deduped
- │ │ ├── escape-html@1.0.3 deduped
- │ │ ├── etag@1.8.0 deduped
- │ │ ├── fresh@0.5.0 deduped
- │ │ ├── http-errors@1.6.1 deduped
- │ │ ├── mime@1.3.4
- │ │ ├── ms@0.7.2 deduped
- │ │ ├── on-finished@2.3.0 deduped
- │ │ ├── range-parser@1.2.0 deduped
- │ │ └── statuses@1.3.1 deduped
- │ ├─┬ serve-static@1.12.1
- │ │ ├── encodeurl@1.0.1 deduped
- │ │ ├── escape-html@1.0.3 deduped
- │ │ ├── parseurl@1.3.1 deduped
- │ │ └── send@0.15.1 deduped
- │ ├── setprototypeof@1.0.3
- │ ├── statuses@1.3.1
- │ ├── type-is@1.6.15 deduped
- │ ├── utils-merge@1.0.0
- │ └── vary@1.1.1 deduped
- ├─┬ express-handlebars@3.0.0
- │ ├─┬ glob@6.0.4
- │ │ ├── inflight@1.0.6 deduped
- │ │ ├── inherits@2.0.3 deduped
- │ │ ├── minimatch@3.0.3 deduped
- │ │ ├── once@1.4.0 deduped
- │ │ └── path-is-absolute@1.0.1 deduped
- │ ├── graceful-fs@4.1.11
- │ ├─┬ handlebars@4.0.6
- │ │ ├── async@1.5.2
- │ │ ├─┬ optimist@0.6.1
- │ │ │ ├── minimist@0.0.10
- │ │ │ └── wordwrap@0.0.3
- │ │ ├─┬ source-map@0.4.4
- │ │ │ └── amdefine@1.0.1
- │ │ └── UNMET OPTIONAL DEPENDENCY uglify-js@^2.6
- │ ├─┬ object.assign@4.0.4
- │ │ ├─┬ define-properties@1.1.2
- │ │ │ ├── foreach@2.0.5
- │ │ │ └── object-keys@1.0.11 deduped
- │ │ ├── function-bind@1.1.0
- │ │ └── object-keys@1.0.11
- │ └─┬ promise@7.1.1
- │ └── asap@2.0.5 deduped
- ├─┬ finalhandler@1.0.1
- │ ├─┬ debug@2.6.3
- │ │ └── ms@0.7.2 deduped
- │ ├── encodeurl@1.0.1 deduped
- │ ├── escape-html@1.0.3 deduped
- │ ├── on-finished@2.3.0 deduped
- │ ├── parseurl@1.3.1 deduped
- │ ├── statuses@1.3.1 deduped
- │ └── unpipe@1.0.0
- ├─┬ istanbul@0.4.5
- │ ├── abbrev@1.0.9
- │ ├── async@1.5.2
- │ ├─┬ escodegen@1.8.1
- │ │ ├── esprima@2.7.3
- │ │ ├── estraverse@1.9.3
- │ │ ├── esutils@2.0.2 deduped
- │ │ ├── optionator@0.8.2 deduped
- │ │ └── source-map@0.4.4 deduped
- │ ├── esprima@2.7.3
- │ ├─┬ glob@5.0.15
- │ │ ├── inflight@1.0.6 deduped
- │ │ ├── inherits@2.0.3 deduped
- │ │ ├── minimatch@3.0.3 deduped
- │ │ ├── once@1.4.0 deduped
- │ │ └── path-is-absolute@1.0.1 deduped
- │ ├── handlebars@4.0.6 deduped
- │ ├── js-yaml@3.8.3 deduped
- │ ├── mkdirp@0.5.1 deduped
- │ ├─┬ nopt@3.0.6
- │ │ └── abbrev@1.0.9 deduped
- │ ├─┬ once@1.4.0
- │ │ └── wrappy@1.0.2
- │ ├── resolve@1.1.7
- │ ├─┬ supports-color@3.2.3
- │ │ └── has-flag@1.0.0
- │ ├─┬ which@1.2.14
- │ │ └── isexe@2.0.0
- │ └── wordwrap@1.0.0
- ├─┬ js-yaml@3.8.3
- │ ├─┬ argparse@1.0.9
- │ │ └── sprintf-js@1.0.3
- │ └── esprima@3.1.3
- ├── mediawiki-title@0.6.3
- ├─┬ mocha@2.5.3
- │ ├── commander@2.3.0
- │ ├─┬ debug@2.2.0
- │ │ └── ms@0.7.1
- │ ├── diff@1.4.0 deduped
- │ ├── escape-string-regexp@1.0.2
- │ ├─┬ glob@3.2.11
- │ │ ├── inherits@2.0.3 deduped
- │ │ └─┬ minimatch@0.3.0
- │ │ ├── lru-cache@2.7.3
- │ │ └── sigmund@1.0.1
- │ ├── growl@1.9.2
- │ ├─┬ jade@0.26.3
- │ │ ├── commander@0.6.1
- │ │ └── mkdirp@0.3.0
- │ ├── mkdirp@0.5.1 deduped
- │ ├── supports-color@1.2.0
- │ └── to-iso-string@0.0.2
- ├── negotiator@0.6.1 (git+https://github.com/arlolra/negotiator.git#0418ab4e9a665772b7e233564a4525c9d9a8ec3a)
- ├─┬ nock@8.2.1
- │ ├── chai@3.5.0 deduped
- │ ├── debug@2.6.1 deduped
- │ ├── deep-equal@1.0.1
- │ ├── json-stringify-safe@5.0.1
- │ ├── lodash@4.9.0
- │ ├── mkdirp@0.5.1 deduped
- │ ├── propagate@0.4.0
- │ └── qs@6.4.0 deduped
- ├── node-uuid@1.4.8
- ├─┬ nsp@2.6.3
- │ ├─┬ chalk@1.1.3
- │ │ ├── ansi-styles@2.2.1
- │ │ ├── escape-string-regexp@1.0.5
- │ │ ├─┬ has-ansi@2.0.0
- │ │ │ └── ansi-regex@2.0.0
- │ │ ├─┬ strip-ansi@3.0.1
- │ │ │ └── ansi-regex@2.0.0
- │ │ └── supports-color@2.0.0
- │ ├─┬ cli-table@0.3.1
- │ │ └── colors@1.0.3
- │ ├── cvss@1.0.1
- │ ├─┬ https-proxy-agent@1.0.0
- │ │ ├─┬ agent-base@2.0.1
- │ │ │ ├── extend@3.0.0 deduped
- │ │ │ └── semver@5.0.3
- │ │ ├─┬ debug@2.2.0
- │ │ │ └── ms@0.7.1
- │ │ └── extend@3.0.0
- │ ├─┬ joi@6.10.1
- │ │ ├── hoek@2.16.3
- │ │ ├── isemail@1.2.0
- │ │ ├── moment@2.12.0
- │ │ └─┬ topo@1.1.0
- │ │ └── hoek@2.16.3 deduped
- │ ├── nodesecurity-npm-utils@5.0.0
- │ ├── path-is-absolute@1.0.0
- │ ├─┬ rc@1.1.6
- │ │ ├── deep-extend@0.4.1
- │ │ ├── ini@1.3.4
- │ │ ├── minimist@1.2.0
- │ │ └── strip-json-comments@1.0.4
- │ ├── semver@5.1.0
- │ ├─┬ subcommand@2.0.3
- │ │ ├── cliclopts@1.1.1
- │ │ ├─┬ debug@2.2.0
- │ │ │ └── ms@0.7.1
- │ │ ├── minimist@1.2.0
- │ │ └── xtend@4.0.1
- │ └─┬ wreck@6.3.0
- │ ├─┬ boom@2.10.1
- │ │ └── hoek@2.16.3 deduped
- │ └── hoek@2.16.3
- ├── pegjs@0.8.0 (git+https://github.com/tstarling/pegjs.git#36d584bd7bbc564c86c058c5dfe8053b1fe1d584)
- ├─┬ prfun@2.1.4
- │ └── core-js@2.4.1 deduped
- ├─┬ request@2.81.0
- │ ├── aws-sign2@0.6.0
- │ ├── aws4@1.6.0
- │ ├── caseless@0.12.0
- │ ├─┬ combined-stream@1.0.5
- │ │ └── delayed-stream@1.0.0
- │ ├── extend@3.0.0
- │ ├── forever-agent@0.6.1
- │ ├─┬ form-data@2.1.2
- │ │ ├── asynckit@0.4.0
- │ │ ├── combined-stream@1.0.5 deduped
- │ │ └── mime-types@2.1.15 deduped
- │ ├─┬ har-validator@4.2.1
- │ │ ├── ajv@4.11.5 deduped
- │ │ └── har-schema@1.0.5
- │ ├─┬ hawk@3.1.3
- │ │ ├─┬ boom@2.10.1
- │ │ │ └── hoek@2.16.3 deduped
- │ │ ├─┬ cryptiles@2.0.5
- │ │ │ └── boom@2.10.1 deduped
- │ │ ├── hoek@2.16.3
- │ │ └─┬ sntp@1.0.9
- │ │ └── hoek@2.16.3 deduped
- │ ├─┬ http-signature@1.1.1
- │ │ ├── assert-plus@0.2.0
- │ │ ├─┬ jsprim@1.4.0
- │ │ │ ├── assert-plus@1.0.0
- │ │ │ ├── extsprintf@1.0.2
- │ │ │ ├── json-schema@0.2.3
- │ │ │ └─┬ verror@1.3.6
- │ │ │ └── extsprintf@1.0.2 deduped
- │ │ └─┬ sshpk@1.11.0
- │ │ ├── asn1@0.2.3
- │ │ ├── assert-plus@1.0.0
- │ │ ├── UNMET OPTIONAL DEPENDENCY bcrypt-pbkdf@^1.0.0
- │ │ ├─┬ dashdash@1.14.1
- │ │ │ └── assert-plus@1.0.0
- │ │ ├── UNMET OPTIONAL DEPENDENCY ecc-jsbn@~0.1.1
- │ │ ├─┬ getpass@0.1.6
- │ │ │ └── assert-plus@1.0.0
- │ │ ├── UNMET OPTIONAL DEPENDENCY jodid25519@^1.0.0
- │ │ ├── UNMET OPTIONAL DEPENDENCY jsbn@~0.1.0
- │ │ └── UNMET OPTIONAL DEPENDENCY tweetnacl@~0.14.0
- │ ├── is-typedarray@1.0.0
- │ ├── isstream@0.1.2
- │ ├── json-stringify-safe@5.0.1 deduped
- │ ├─┬ mime-types@2.1.15
- │ │ └── mime-db@1.27.0 deduped
- │ ├── oauth-sign@0.8.2
- │ ├── performance-now@0.2.0
- │ ├── qs@6.4.0 deduped
- │ ├── safe-buffer@5.0.1
- │ ├── stringstream@0.0.5
- │ ├─┬ tough-cookie@2.3.2
- │ │ └── punycode@1.4.1
- │ ├─┬ tunnel-agent@0.6.0
- │ │ └── safe-buffer@5.0.1 deduped
- │ └── uuid@3.0.1
- ├── semver@5.3.0
- ├─┬ serve-favicon@2.4.2
- │ ├── etag@1.8.0 deduped
- │ ├── fresh@0.5.0 deduped
- │ ├── ms@1.0.0
- │ └── parseurl@1.3.1 deduped
- ├─┬ service-runner@2.2.5
- │ ├── bluebird@3.5.0
- │ ├─┬ bunyan@1.8.10
- │ │ ├── UNMET OPTIONAL DEPENDENCY dtrace-provider@~0.8
- │ │ ├── UNMET OPTIONAL DEPENDENCY moment@^2.10.6
- │ │ ├── UNMET OPTIONAL DEPENDENCY mv@~2
- │ │ └── UNMET OPTIONAL DEPENDENCY safe-json-stringify@~1
- │ ├── bunyan-syslog-udp@0.1.0
- │ ├─┬ dnscache@1.0.1
- │ │ ├── asap@2.0.5 deduped
- │ │ └─┬ lodash.clone@4.3.2
- │ │ └── lodash._baseclone@4.5.7
- │ ├── extend@3.0.0 deduped
- │ ├─┬ gelf-stream@1.1.1
- │ │ └── gelfling@0.3.1
- │ ├── hot-shots@4.4.0
- │ ├── js-yaml@3.8.3 deduped
- │ ├─┬ limitation@0.2.0
- │ │ ├── bluebird@3.5.0 deduped
- │ │ ├─┬ kad@1.3.6 (git+https://github.com/gwicke/kad.git#936c91652d757ea6f9dd30e44698afb0daaa1d17)
- │ │ │ ├── async@0.9.2 deduped
- │ │ │ ├── clarinet@0.11.0
- │ │ │ ├── colors@1.1.2 deduped
- │ │ │ ├── hat@0.0.3
- │ │ │ ├─┬ kad-fs@0.0.4
- │ │ │ │ └─┬ readable-stream@2.2.6
- │ │ │ │ ├── buffer-shims@1.0.0 deduped
- │ │ │ │ ├── core-util-is@1.0.2 deduped
- │ │ │ │ ├── inherits@2.0.3 deduped
- │ │ │ │ ├── isarray@1.0.0
- │ │ │ │ ├── process-nextick-args@1.0.7 deduped
- │ │ │ │ ├── string_decoder@0.10.31 deduped
- │ │ │ │ └── util-deprecate@1.0.2 deduped
- │ │ │ ├─┬ kad-localstorage@0.0.7
- │ │ │ │ └── dom-storage@2.0.2
- │ │ │ ├─┬ kad-memstore@0.0.1
- │ │ │ │ └─┬ readable-stream@2.2.6
- │ │ │ │ ├── buffer-shims@1.0.0 deduped
- │ │ │ │ ├── core-util-is@1.0.2 deduped
- │ │ │ │ ├── inherits@2.0.3 deduped
- │ │ │ │ ├── isarray@1.0.0
- │ │ │ │ ├── process-nextick-args@1.0.7 deduped
- │ │ │ │ ├── string_decoder@0.10.31 deduped
- │ │ │ │ └── util-deprecate@1.0.2 deduped
- │ │ │ ├── lodash@3.10.1
- │ │ │ ├── merge@1.2.0
- │ │ │ ├── ms@0.7.2 deduped
- │ │ │ └─┬ msgpack5@3.4.1
- │ │ │ ├─┬ bl@1.2.0
- │ │ │ │ └─┬ readable-stream@2.2.6
- │ │ │ │ ├── buffer-shims@1.0.0 deduped
- │ │ │ │ ├── core-util-is@1.0.2 deduped
- │ │ │ │ ├── inherits@2.0.3 deduped
- │ │ │ │ ├── isarray@1.0.0
- │ │ │ │ ├── process-nextick-args@1.0.7 deduped
- │ │ │ │ ├── string_decoder@0.10.31 deduped
- │ │ │ │ └── util-deprecate@1.0.2 deduped
- │ │ │ ├── inherits@2.0.3 deduped
- │ │ │ └─┬ readable-stream@2.2.6
- │ │ │ ├── buffer-shims@1.0.0 deduped
- │ │ │ ├── core-util-is@1.0.2 deduped
- │ │ │ ├── inherits@2.0.3 deduped
- │ │ │ ├── isarray@1.0.0
- │ │ │ ├── process-nextick-args@1.0.7 deduped
- │ │ │ ├── string_decoder@0.10.31 deduped
- │ │ │ └── util-deprecate@1.0.2 deduped
- │ │ └─┬ readable-stream@2.2.6
- │ │ ├── buffer-shims@1.0.0 deduped
- │ │ ├── core-util-is@1.0.2 deduped
- │ │ ├── inherits@2.0.3 deduped
- │ │ ├── isarray@1.0.0
- │ │ ├── process-nextick-args@1.0.7 deduped
- │ │ ├── string_decoder@0.10.31 deduped
- │ │ └── util-deprecate@1.0.2 deduped
- │ ├── semver@5.3.0 deduped
- │ └── yargs@6.6.0 deduped
- ├── simplediff@0.1.1
- ├─┬ supertest@1.2.0
- │ ├── methods@1.1.2 deduped
- │ └─┬ superagent@1.8.5
- │ ├── component-emitter@1.2.1
- │ ├── cookiejar@2.0.6
- │ ├── debug@2.6.1 deduped
- │ ├── extend@3.0.0 deduped
- │ ├─┬ form-data@1.0.0-rc3
- │ │ ├── async@1.5.2
- │ │ ├── combined-stream@1.0.5 deduped
- │ │ └── mime-types@2.1.15 deduped
- │ ├── formidable@1.0.17
- │ ├── methods@1.1.2 deduped
- │ ├── mime@1.3.4 deduped
- │ ├── qs@2.3.3
- │ ├─┬ readable-stream@1.0.27-1
- │ │ ├── core-util-is@1.0.2 deduped
- │ │ ├── inherits@2.0.3 deduped
- │ │ ├── isarray@0.0.1 deduped
- │ │ └── string_decoder@0.10.31 deduped
- │ └── reduce-component@1.0.1
- └─┬ yargs@6.6.0
- ├── camelcase@3.0.0
- ├─┬ cliui@3.2.0
- │ ├── string-width@1.0.2 deduped
- │ ├── strip-ansi@3.0.1 deduped
- │ └─┬ wrap-ansi@2.1.0
- │ ├── string-width@1.0.2 deduped
- │ └── strip-ansi@3.0.1 deduped
- ├── decamelize@1.2.0
- ├── get-caller-file@1.0.2
- ├─┬ os-locale@1.4.0
- │ └─┬ lcid@1.0.0
- │ └── invert-kv@1.0.0
- ├─┬ read-pkg-up@1.0.1
- │ ├─┬ find-up@1.1.2
- │ │ ├─┬ path-exists@2.1.0
- │ │ │ └── pinkie-promise@2.0.1 deduped
- │ │ └── pinkie-promise@2.0.1 deduped
- │ └─┬ read-pkg@1.1.0
- │ ├─┬ load-json-file@1.1.0
- │ │ ├── graceful-fs@4.1.11 deduped
- │ │ ├─┬ parse-json@2.2.0
- │ │ │ └─┬ error-ex@1.3.1
- │ │ │ └── is-arrayish@0.2.1
- │ │ ├── pify@2.3.0 deduped
- │ │ ├── pinkie-promise@2.0.1 deduped
- │ │ └─┬ strip-bom@2.0.0
- │ │ └── is-utf8@0.2.1
- │ ├─┬ normalize-package-data@2.3.6
- │ │ ├── hosted-git-info@2.4.1
- │ │ ├─┬ is-builtin-module@1.0.0
- │ │ │ └── builtin-modules@1.1.1
- │ │ ├── semver@5.3.0 deduped
- │ │ └─┬ validate-npm-package-license@3.0.1
- │ │ ├─┬ spdx-correct@1.0.2
- │ │ │ └── spdx-license-ids@1.2.2
- │ │ └── spdx-expression-parse@1.0.4
- │ └─┬ path-type@1.1.0
- │ ├── graceful-fs@4.1.11 deduped
- │ ├── pify@2.3.0 deduped
- │ └── pinkie-promise@2.0.1 deduped
- ├── require-directory@2.1.1
- ├── require-main-filename@1.0.1
- ├── set-blocking@2.0.0
- ├─┬ string-width@1.0.2
- │ ├── code-point-at@1.1.0
- │ ├─┬ is-fullwidth-code-point@1.0.0
- │ │ └── number-is-nan@1.0.1
- │ └── strip-ansi@3.0.1 deduped
- ├── which-module@1.0.0
- ├── y18n@3.2.1
- └─┬ yargs-parser@4.2.1
- └── camelcase@3.0.0 deduped Pdwangchao (talk) 03:00, 3 September 2017 (UTC)
- Hi Arlolra
- Er... It is solved by this method:
- https://www.centos.org/forums/viewtopic.php?f=47&t=53223&p=225372#p225372
- I just run the code step by step and everything is OK. So I think the position of parsoid make the difference. Amazing. people meeting the same question just do step by step.....
- Also thanks to you, Arlolra
- Pdwangchao (talk) 08:49, 4 September 2017 (UTC)
- ======== English ========
- According to this website https://www.centos.org/forums/viewtopic.php?f=47&t=53223&p=225372#p225372 all commands were executed.
- The following should be set in the LocalSettings.php file from MediaWiki:
- # Namespces for VE
$ wgVisualEditorNamespaces = array_merge (- $ WgContentNamespaces,
- array (*)
- );
- The following error is logged when the website is accessed:
- FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected '*', expecting ')' in /usr/share/mediawiki/mediawiki-1.34.0/LocalSettings.php on line 130"
- Line 130 specifies "array (*)".
- Can anyone help?
- ======== German ========
- Gemäß dieser Webseite https://www.centos.org/forums/viewtopic.php?f=47&t=53223&p=225372#p225372 wurden alle Befehle ausgeführt.
- In der Datei LocalSettings.php vom MediaWiki soll folgendes eingestellt werden:
- # Namespces for VE
$wgVisualEditorNamespaces = array_merge(- $wgContentNamespaces,
- array( * )
- );
- Beim Aufruf der Webseite wird folgender Fehler protokolliert:
- FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected '*', expecting ')' in /usr/share/mediawiki/mediawiki-1.34.0/LocalSettings.php on line 130"
- In Zeile 130 ist "array( * )" angegeben.
- Kann jemand weiterhelfen? Benn2003 (talk) 20:03, 18 February 2020 (UTC)
- $wgVisualEditorNamespaces was the config for which namespaces to enable VE.
- The default was array( NS_MAIN ), so you can try that.
- I imagine the * was just a stand in for all of them. It's broken syntax. Arlolra (talk) 20:07, 13 April 2020 (UTC)
Error on installing Parsoid on Ubuntu 14
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hello, I'm trying to install Parsoid on my Ubuntu 14 sever.
The following packages have unmet dependencies:
parsoid : Depends: nodejs (>= 4.0.0) but 0.10.25~dfsg2-2ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.
Could advice me in order to fix it ? Adrianevs (talk) 20:48, 27 October 2017 (UTC)
- I had the same issue with Ubuntu 14.04.5. This is how I solved the problem:
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -apt-get install nodejsapt-get install parsoidQpn6ph9q (talk) 16:28, 17 November 2017 (UTC)
How to install Parsoid on CentOS 6.3 without internet connection
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Because of company firewall. it is impossible to start npm install(for dependency setting up), How can I install Parsoid on CentOS 6.3 without internet connection. 147.6.1.21 (talk) 05:46, 21 November 2017 (UTC)
- If you check out code from the https://github.com/wikimedia/mediawiki-services-parsoid-deploy/ repository, it comes with npm modules bundled with it and the parsoid code is in the src/ submodule. So, you can then set up your centos config to work with that or you can repackage the contents of it however you desire for your setup. Right now, we don't have any binary dependencies in there. SSastry (WMF) (talk) 14:51, 21 November 2017 (UTC)
Bad Choice of License
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
The choice of license for the Parser is really really really bad.
Using the GPL for JavaScript ensures the Script CANNOT legally be legally run by InternetExplorer/Edge, and Chrome/Chromium or Firefox.
Running this script, even in an BSD/LGPL v8/WebKit is still illegal, since LGPL + GPL must be licensed under GPL.
Since JavaScript is run & JIT-compiled in the browser, this constitutes "linking", which makes it illegal.
Since there is no (working) browser under the GPL (to my knowledge), you even cannot legally use this software at wikipedia.
Please change the license to LGPL, at least.
Also, making the license GPL ensures it cannot be used by any project that does not go under the GPL - such as Apache/MIT/BSD license. 185.13.106.194 (talk) 17:29, 21 November 2017 (UTC)
- I'm not going to comment on the rest of the legal theory here, since we can disqualify it from the start: Parsoid is run under node.js, not a browser. cscott (talk) 18:03, 21 November 2017 (UTC)
Which Repository for Parosid Install on Ubuntu 16.04.3 LTS
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Ubuntu 16.04.03 LTS
Codename: xenial
I would like to install parsoid but wonder if there is a repository with binaries that will work on this version of Ubuntu.
I'm completely unfamiliar with Ubuntu and Debian.
Some pointers will help. Thanks. RacletteChaes (talk) 23:31, 27 November 2017 (UTC)
- The setup instructions here should work, https://www.mediawiki.org/wiki/Parsoid/Setup#Ubuntu_/_Debian Arlolra (talk) 04:23, 28 November 2017 (UTC)
- Thanks... I'll try that. RacletteChaes (talk) 13:12, 30 November 2017 (UTC)
Parsoid with AuthRemoteuser (private wiki)
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
We have Kerberos enabled for apache which provides for every page the user. However as parsoid was not providing these credentials when connecting to http://localhost/wiki/api.php , the create/edit would fail.
We thought solving it by excluding the specific url http://localhost/wiki/api.php from authentication. However we now have the strange problem that when browsing to a page, the user is clearly logged in in the upper right corner, however when he clicks on edit, the visual editor complains about the user being 'anonymous' and consequently in the history only the ip address is logged instead of the username.
I have no clear understanding how parsoid provides the username to the api.php endpoint. What could be the issue here? 2A02:A03F:48B8:BA00:FCD4:94B6:A36D:4719 (talk) 18:22, 2 December 2017 (UTC)
- It sounds like what's happening is that by excluding the MediaWiki API from authentication, VE isn't sending credentials when saving.
- You should probably revert that change and instead always allow read permissions from localhost, as in https://www.mediawiki.org/wiki/User:Andru~mediawikiwiki/Allow_Parsoid_Server
- Also see, https://www.mediawiki.org/wiki/Extension:VisualEditor#Forwarding_Cookies_to_Parsoid Arlolra (talk) 18:48, 2 December 2017 (UTC)
- Thanks for your answer.
- I tried both links.
- If I enable authentication in apache for http://localhost/wiki/api.php, then parsoid always gives :
- "401 Unauthorized This server could not verify that you\nare authorized to access the document\nrequested. Either you supplied the wrong\ncredentials (e.g., bad password), or your\nbrowser doesn't understand how to supply\nthe credentials required"
- If I disable authentication in apache, parsoid "works" but the user is still 'anonymous' Mishter Jingles (talk) 13:30, 4 December 2017 (UTC)
- After enabling authentication, you'd need to forward cookies. Did you try that? Arlolra (talk) 23:53, 18 December 2017 (UTC)
Mszicsu (talk) 15:18, 14 March 2018 (UTC)
- Hello!
- Same configuration as Mishter Jingles
- After enabling authentication, you'd need to forward cookies. Did you try that? - Yup!
- Still ip address instead of the username while edit any page.
- Apache:
- <Location /mediawiki/api.php>
- Satisfy Any
- </Location>
- LocalSettings.php:
- ...
- $wgGroupPermissions['*']['read'] = true;
- $wgGroupPermissions['*']['edit'] = true;
- ...
- PS:
- Also tried with $wgSessionsInObjectCache = true; and $wgVirtualRestConfig['modules']['parsoid']['forwardCookies'] = true;
- Parsoid and mediawiki hosted on same server.
- PSS:
- Next configuration doesn't work (read permissions error):
- LocalSettings.php:
- ...
- $wgGroupPermissions['*']['read'] = false;
- $wgGroupPermissions['*']['edit'] = false;
- ...
- if ( !isset( $_SERVER['REMOTE_ADDR'] ) OR $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) {
- $wgGroupPermissions['*']['read'] = true;
- $wgGroupPermissions['*']['edit'] = true;
- }
- #NetworkAuth
- require_once "$IP/extensions/NetworkAuth/NetworkAuth.php";
- $wgNetworkAuthUsers[] = [
- 'iprange' => [ '127.0.0.1' ],
- 'user' => 'parsoid'
- ]; Starws (talk) 06:03, 12 July 2019 (UTC)
- Please see the documentation at https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid_in_private_wikis Arlolra (talk) 16:59, 17 July 2019 (UTC)
- Thanks all above for the help, I just wanted to chime in myself because this page was in top google results while troubleshooting.
- I was setting up a similar config, for myself (just a intranet wiki using apache basic http auth to restrict a "open" wiki.)
- I was struggling but eventually realized that
- 1. my apache needed to be configured as:
- Apache:
<Location /mediawiki/api.php>Satisfy Any</Location>- and
- 2.(as Arlolra mentioned) I needed to forward cookies.
Meowoclock (talk) 03:10, 19 September 2019 (UTC)- Wow, finally! This post resolved my problem. Turns out I somehow missed to add $wgGroupPermissions to LocalSettings.php file. Not sure how I could miss this step in the manual. Now I finally can start adding my client-documentation in my private mediawiki.
- I have battled this problem for a week! XD Thanks 176.10.190.25 (talk) 07:48, 6 March 2020 (UTC)
Dynamic Config
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Is it possible to have a truly dynamic config?
I'd like to be able to set up something like where dynamicdomain can be an arbitrary string:
parsoidConfig.setMwApi({ uri: 'http://yoursite.com/'+dynamicdomain+'/api.php', domain: dynamicdomain });
The use case is that I'd like for Parsoid to begin working on a new wiki/domain when one is added without manually updating the config, restarting/reloading, etc. 69.10.19.250 (talk) 19:19, 18 December 2017 (UTC)
- You can use localsettings.js for non-static configs,
- See https://github.com/wikimedia/parsoid/blob/master/localsettings.example.js
- However, support for updating the config w/o restarting isn't yet supported.
- See https://phabricator.wikimedia.org/T100841 for that. Arlolra (talk) 20:15, 18 December 2017 (UTC)
- I'm already using localsettings.js... but I may just hack the code to bypass the config lookup and always return a URL in the form of 'http://yoursite.com/'+requestdomain+'/api.php'
- Any pointers on where to start with that? 69.10.19.250 (talk) 21:35, 18 December 2017 (UTC)
- getParserEnv and switchToConfig are probably good places to look. Arlolra (talk) 23:50, 18 December 2017 (UTC)
Parsoid Install Error: Depends: nodejs (>= 4.0.0) [Node.js v8.9.3 all ready installed]
[edit]The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
Hello,
I am getting an error when I try and install Parsoid for the Extension:VisualEdiotor on MediaWiki in a "Debian GNU/Linux 8 \n \l" Docker container.
I know this issue has been reported elsewhere, like on this Talk:Parasoid page, but my situation is slightly different.
My set-up -
Computer - Mac Pro, 3.5 GHz 6-Core Intel Xeon E5, 16 GB 1866 MHz DDR RAM, Mac OS High Sierra 10.13.2 (17C88).
Docker - v17.09.1-ce-mac42
Docker images used - MediaWiki: https://hub.docker.com/_/mediawiki/ & MariaDB: https://hub.docker.com/_/mariadb/
After spinning up the Docker container for MariaDB, i linked it to the MediaWiki container doing —
$ docker run -it --name docker-mediawiki-node --link mediawiki-mariadb:mysql -p 9000:80 -d mediawiki
...That all works fine and I'm able to go in and complete the MediaWiki installation and connection to the MariaDB, I get the downloaded, completed LocalSettings.php, which I copy up to the correct directory on my Docker container, that all runs fine and my Docker Test MediaWiki for a client works fine.
I then started following the instructions for the installation of the Extension:VisualEditor here. That all went fine as far as downloading the Extension, adding it to the right place in my Docker container, and editing the LocalSettings.php which went fine. The problem started the Parsoid install, linked to from that Extension:Visual Editor page.
I got to the step where I did in my MediaWiki Docker container command line —
$ apt-get install parsoid
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
parsoid : Depends: nodejs (>= 4.0.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Now as I've said above, I'm aware of others who have run into this error and their solutions are to install Node.js using apt-get.
The things is: I already had installed Node.js using the binaries from from the Node.JS site. I installed it successfully using these instructions here, prior to installing Extension:VisualEditor and attempting to install Parsoid.
I prefer this method because: a) I already know how to quickly install Node.js on Linux systems quickly; b) the apt-get install of Node.js installs it as $ nodejs, which as a long time Node.js coder, I simply hate. Yes, I all ready know you can fake out the system to have it "appear" as $ node from the command line, but I prefer to have it the way Node.js intended it from the get-go.
My Node.js is seen fine and works in the Docker container Debian Linux system just fine —
$ node -v
v8.9.3
$ npm version
{ npm: '5.6.0',
ares: '1.10.1-DEV',
cldr: '31.0.1',
http_parser: '2.7.0',
icu: '59.1',
modules: '57',
nghttp2: '1.25.0',
node: '8.9.3',
openssl: '1.0.2n',
tz: '2017b',
unicode: '9.0',
uv: '1.15.0',
v8: '6.1.534.48',
zlib: '1.2.11' }
...as you can see. I'm running Node.js v8.9.3, the current long term supported version, which is a far greater version of then the Depends: nodejs (>= 4.0.0) that the apt-get installer for Parsoid says it requires. So I'm wondering then, why can't my Parsoid install via apt-get and why doesn't it see that Node.js is all ready installed?
Any help here with this issue would be greatly appreciated. Thank you in advance to anyone who responds with hep.
best,
— faddah portland, oregon, u.s.a. Faddahwolf (talk) 03:30, 22 December 2017 (UTC)
- The issue is with your package manager (apt), not Parsoid per se. Maybe try,
- apt-get install --nodeps parsoid Arlolra (talk) 04:32, 22 December 2017 (UTC)
- Thank you, Arlolra, for responding and giving it a go. However, that didn't do it.
- I tried both of these, and here was the result —
$ apt-get install --nodeps gcc</code> E: Command line option --nodeps is not understood- and...
$ apt-get install --nodejs gcc</code> E: Command line option --nodejs is not understood- So neither one of those worked. is there another version of this with install i'm supposed to use? Please advise. And thank you again for the help.
- best,
- — faddah
- porltand, oregon, u.s.a. Faddahwolf (talk) 06:37, 22 December 2017 (UTC)
- Alrighty, try,
- apt-get download parsoid
- dpkg -i --ignore-depends=nodejs parsoid.deb Arlolra (talk) 14:41, 22 December 2017 (UTC)
- Hi Arlolra,
- I do appreciate your continued attempts at assistance.
- I am afraid, how ever, there is no `-i` option switch for `apt-get`. When I attempt to run that at the command line, I get in Debian 8 bash —
$ apt-get download parsoid dpkg -i --ignore-depends=nodejs parsoid.deb </code> E: Command line option 'i' [from -i] is not known.- Here is the `man` page print out of `apt-get download --help` —
$ apt-get download --help</code> apt 1.0.9.8.4 for amd64 compiled on Dec 11 2016 09:48:19 Usage: apt-get [options] command apt-get [options] install|remove pkg1 [pkg2 ...] apt-get [options] source pkg1 [pkg2 ...] apt-get is a simple command line interface for downloading and installing packages. The most frequently used commands are update and install. Commands: update - Retrieve new lists of packages upgrade - Perform an upgrade install - Install new packages (pkg is libc6 not libc6.deb) remove - Remove packages autoremove - Remove automatically all unused packages purge - Remove packages and config files source - Download source archives build-dep - Configure build-dependencies for source packages dist-upgrade - Distribution upgrade, see apt-get(8) dselect-upgrade - Follow dselect selections clean - Erase downloaded archive files autoclean - Erase old downloaded archive files check - Verify that there are no broken dependencies changelog - Download and display the changelog for the given package download - Download the binary package into the current directory Options: -h This help text. -q Loggable output - no progress indicator -qq No output except for errors -d Download only - do NOT install or unpack archives -s No-act. Perform ordering simulation -y Assume Yes to all queries and do not prompt -f Attempt to correct a system with broken dependencies in place -m Attempt to continue if archives are unlocatable -u Show a list of upgraded packages as well -b Build the source package after fetching it -V Show verbose version numbers -c=? Read this configuration file -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp See the apt-get(8), sources.list(5) and apt.conf(5) manual pages for more information and options. This APT has Super Cow Powers.- ...so which option switch were you trying to use? Thank you again for helping out.
- best,
- — faddah
- portland, oregon, u.s.a. Faddahwolf (talk) 19:49, 22 December 2017 (UTC)
- Sorry, that was a formatting error. It should have been two separate commands.
apt-get download parsoiddpkg -i --ignore-depends=nodejs parsoid.debArlolra (talk) 23:19, 22 December 2017 (UTC)- Hi again, Arloira,
- That did it! Thank you for sticking with me and giving me help all the way through this.
- Actually, I found as I was installing each package, that they all had dependencies that needed installing prior to installing the others. With each, because of these reoccurring dependency errors, I had to do the —
$ apt-get install init-system-helpers- ...and then —
$ dpkg -i --ignore-depends=nodejs init-system-helpers_1.22_all.deb- ...to get the installs to work. The dependency packages needed to be installed this way in this particular order —
- init-system-helpers
- cron
- libpopt0
- logroatate
- parsoid
- But in any case, it's all installed now and I can go on with the rest of Node.JS and the Extension:VideoEditor install. Thank you for the patient hand-holding of me through all this. Now I know what it takes.
- A couple things — it would seem to me that this parsoid deb package has two main problems —
- It has four packages whose dependencies must be installed first to the package, so it would be much better if these dependencies were checked on install, and, if any are not there, then are installed, in this particular order —
- init-system-helpers
- cron
- libpopt0
- logroatate
- The nodejs dependency issues is happening because this package is only looking for the Node.js when it is installed via the Debian/Ubuntu apt-get *.deb package process, which, because of a conflict with another Debian Linux app all ready called "node," installs it as `nodejs` on linux systems, which is non-standard, and frankly, annoying to JavaScript/Node.js programmers. The dependency check should look to see if it was installed using `apt-get` or also the standard ways from the nodejs.org site — by a linux binary package or compiled from source. It should be checking for either install, whether it produces a binary that is `nodejs` or `node`. this can be done with a simple `if` statement with an OR, as such —
- It has four packages whose dependencies must be installed first to the package, so it would be much better if these dependencies were checked on install, and, if any are not there, then are installed, in this particular order —
if [ "$which nodejs" || "$which node" ]; then</code> # code to install parsoid ... ... fi- ...or something like that.
- I know from your profile that you work on the Parsoid part of the WikiMedia project. Is there some place here I can go to file bug report/feature requests on these issues with Parsoid/MediaWiki project? Please let me know and I'll be glad to put this info there and hopefully get this package updated soon so it doesn't generate support questions like this too much.
- Please let me know on the above issues for this `apt-get` package for Parsoid. And thank you very much again for all the help.
- best,
- — faddah
portland, oregon, u.s.a.Faddahwolf (talk) 02:57, 23 December 2017 (UTC)- We generally use https://phabricator.wikimedia.org/ for issue tracking. There's a Parsoid tag when creating tasks. Glad it's working for you. Arlolra (talk) 21:14, 23 December 2017 (UTC)
The discussion above is closed. Please do not modify it. No further edits should be made to this discussion.