GWicke has uploaded a new change for review. https://gerrit.wikimedia.org/r/193012
Change subject: Update dependencies ...................................................................... Update dependencies Change-Id: I5baec227c25e8feb61b1f564b60867da14e84c72 --- M node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json M node_modules/istanbul/node_modules/async/package.json M node_modules/istanbul/node_modules/mkdirp/node_modules/minimist/package.json M node_modules/istanbul/node_modules/which/package.json M node_modules/mocha/node_modules/commander/package.json M node_modules/mocha/node_modules/debug/package.json M node_modules/mocha/node_modules/mkdirp/node_modules/minimist/package.json M node_modules/mocha/node_modules/mkdirp/package.json M node_modules/preq/node_modules/bluebird/package.json M node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/csv/node_modules/csv-parse/package.json M node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json M node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/spdy/package.json M node_modules/service-runner/README.md M node_modules/service-runner/config.yaml M node_modules/service-runner/lib/heapwatch.js M node_modules/service-runner/package.json M node_modules/service-runner/service-runner.js M node_modules/service-runner/test/httpserver.js M node_modules/swagger-ui/node_modules/swagger-client/package.json 19 files changed, 96 insertions(+), 55 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/restbase/deploy refs/changes/12/193012/1 diff --git a/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json b/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json index 754a114..3d69f4f 100644 --- a/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json +++ b/node_modules/busboy/node_modules/readable-stream/node_modules/inherits/package.json @@ -32,7 +32,7 @@ "shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1", "tarball": "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, - "_from": "inherits@2", + "_from": "inherits@~2.0.1", "_npmVersion": "1.3.8", "_npmUser": { "name": "isaacs", diff --git a/node_modules/istanbul/node_modules/async/package.json b/node_modules/istanbul/node_modules/async/package.json index bdbe740..9d15cd7 100644 --- a/node_modules/istanbul/node_modules/async/package.json +++ b/node_modules/istanbul/node_modules/async/package.json @@ -41,7 +41,7 @@ "shasum": "ac3613b1da9bed1b47510bb4651b8931e47146c7", "tarball": "http://registry.npmjs.org/async/-/async-0.9.0.tgz" }, - "_from": "async@~0.9.0", + "_from": "async@0.9.x", "_npmVersion": "1.4.3", "_npmUser": { "name": "caolan", diff --git a/node_modules/istanbul/node_modules/mkdirp/node_modules/minimist/package.json b/node_modules/istanbul/node_modules/mkdirp/node_modules/minimist/package.json index 7cd80f4..09e9ec4 100644 --- a/node_modules/istanbul/node_modules/mkdirp/node_modules/minimist/package.json +++ b/node_modules/istanbul/node_modules/mkdirp/node_modules/minimist/package.json @@ -62,5 +62,6 @@ ], "directories": {}, "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/istanbul/node_modules/which/package.json b/node_modules/istanbul/node_modules/which/package.json index ce72dc0..76e41c8 100644 --- a/node_modules/istanbul/node_modules/which/package.json +++ b/node_modules/istanbul/node_modules/which/package.json @@ -42,5 +42,6 @@ "tarball": "http://registry.npmjs.org/which/-/which-1.0.9.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz" + "_resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/mocha/node_modules/commander/package.json b/node_modules/mocha/node_modules/commander/package.json index f2b43dd..de917f5 100644 --- a/node_modules/mocha/node_modules/commander/package.json +++ b/node_modules/mocha/node_modules/commander/package.json @@ -66,5 +66,6 @@ "tarball": "http://registry.npmjs.org/commander/-/commander-2.3.0.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz" + "_resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/mocha/node_modules/debug/package.json b/node_modules/mocha/node_modules/debug/package.json index e3c906e..f516035 100644 --- a/node_modules/mocha/node_modules/debug/package.json +++ b/node_modules/mocha/node_modules/debug/package.json @@ -66,5 +66,6 @@ "tarball": "http://registry.npmjs.org/debug/-/debug-2.0.0.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/debug/-/debug-2.0.0.tgz" + "_resolved": "https://registry.npmjs.org/debug/-/debug-2.0.0.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/mocha/node_modules/mkdirp/node_modules/minimist/package.json b/node_modules/mocha/node_modules/mkdirp/node_modules/minimist/package.json index 7cd80f4..09e9ec4 100644 --- a/node_modules/mocha/node_modules/mkdirp/node_modules/minimist/package.json +++ b/node_modules/mocha/node_modules/mkdirp/node_modules/minimist/package.json @@ -62,5 +62,6 @@ ], "directories": {}, "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/mocha/node_modules/mkdirp/package.json b/node_modules/mocha/node_modules/mkdirp/package.json index a6de8f3..b7fe466 100644 --- a/node_modules/mocha/node_modules/mkdirp/package.json +++ b/node_modules/mocha/node_modules/mkdirp/package.json @@ -39,7 +39,7 @@ "shasum": "1d73076a6df986cd9344e15e71fcc05a4c9abf12", "tarball": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz" }, - "_from": "mkdirp@~0.5.0", + "_from": "mkdirp@0.5.x", "_npmVersion": "1.4.3", "_npmUser": { "name": "substack", diff --git a/node_modules/preq/node_modules/bluebird/package.json b/node_modules/preq/node_modules/bluebird/package.json index 759de5c..f53de78 100644 --- a/node_modules/preq/node_modules/bluebird/package.json +++ b/node_modules/preq/node_modules/bluebird/package.json @@ -74,7 +74,7 @@ "gitHead": "a99cba2657b6fdd6c14be4e5e361e8c66683f5ae", "_id": "bluebird@2.9.12", "_shasum": "b108b6d659a7bb0b88d08a8079c91bcfc43e15a6", - "_from": "bluebird@^2.7.1", + "_from": "bluebird@^2.3.2", "_npmVersion": "2.5.1", "_nodeVersion": "1.2.0", "_npmUser": { diff --git a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/csv/node_modules/csv-parse/package.json b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/csv/node_modules/csv-parse/package.json index e64fbc6..8c77b34 100644 --- a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/csv/node_modules/csv-parse/package.json +++ b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/csv/node_modules/csv-parse/package.json @@ -119,5 +119,6 @@ "tarball": "http://registry.npmjs.org/csv-parse/-/csv-parse-0.0.9.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-0.0.9.tgz" + "_resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-0.0.9.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json index 2474729..be2cfc9 100644 --- a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json +++ b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/lru-cache/package.json @@ -31,7 +31,7 @@ "shasum": "d82388ae9c960becbea0c73bb9eb79b6c6ce9aeb", "tarball": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" }, - "_from": "lru-cache@2", + "_from": "lru-cache@^2.5.0", "_npmVersion": "1.3.15", "_npmUser": { "name": "isaacs", diff --git a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/spdy/package.json b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/spdy/package.json index 5d7020b..839bd7d 100644 --- a/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/spdy/package.json +++ b/node_modules/restbase-mod-table-cassandra/node_modules/restify/node_modules/spdy/package.json @@ -80,5 +80,6 @@ "tarball": "http://registry.npmjs.org/spdy/-/spdy-1.30.2.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/spdy/-/spdy-1.30.2.tgz" + "_resolved": "https://registry.npmjs.org/spdy/-/spdy-1.30.2.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/service-runner/README.md b/node_modules/service-runner/README.md index a24db6e..95ee2b2 100644 --- a/node_modules/service-runner/README.md +++ b/node_modules/service-runner/README.md @@ -1,7 +1,7 @@ # service-runner Generic nodejs service runner & supervisor -## Goals +## Features - Supervise and cluster node services in a generic manner with a minimal interface: ```javascript @@ -9,11 +9,11 @@ var config = options.config; // Logger instance var logger = options.logger; - // Statsd metrics reporter - var statsd = options.statsd; + // Metrics reporter (txstatsd, statsd) + var metrics = options.metrics; // Start the app, returning a promise - return startApp(config, logger, statsd); + return startApp(config, logger, metrics); } ``` @@ -28,8 +28,8 @@ -h, --help [default: false] ``` - [config loading](#config-loading) -- flexible logging using bunyan, including logstash support via gelf -- metric reporting using txstatsd +- flexible logging using bunyan, including logstash support via gelf: `logger.log('info/request', { message: 'foo', uri: req.uri })` +- [metric reporting](#metric-reporting) using txstatsd or statsd: `statsd.timing('foo.GET.2xx', Date.now() - startTime)` - heap dumps ## Usage @@ -64,20 +64,6 @@ - Default top-level config format (**draft**): ```yaml -# Info about this config. Used for packaging & other purposes. -info: - name: parsoid - version: 0.4.0 - description: Bidirectional conversion service between MediaWiki wikitext and - HTML5 - -# Package settings. Modeled on Debian, but likely to transfer to rpm as well. -packaging: - depends: - nodejs: >=0.10.0 - enhances: mediawiki - - # Number of worker processes to spawn. # Set to 0 to run everything in a single process without clustering. num_workers: 1 @@ -112,6 +98,46 @@ # more per-service config settings ``` +### Metric reporting + +We basically expose the [node-statsd +interface](https://github.com/sivy/node-statsd): + +```javascript +// Timing: sends a timing command with the specified milliseconds +options.metrics.timing('response_time', 42); + +// Increment: Increments a stat by a value (default is 1) +options.metrics.increment('my_counter'); + +// Decrement: Decrements a stat by a value (default is -1) +options.metrics.decrement('my_counter'); + +// Histogram: send data for histogram stat +options.metrics.histogram('my_histogram', 42); + +// Gauge: Gauge a stat by a specified amount +options.metrics.gauge('my_gauge', 123.45); + +// Set: Counts unique occurrences of a stat (alias of unique) +options.metrics.set('my_unique', 'foobar'); +options.metrics.unique('my_unique', 'foobarbaz'); + +// Incrementing multiple items +options.metrics.increment(['these', 'are', 'different', 'stats']); + +// Sampling, this will sample 25% of the time +the StatsD Daemon will compensate for sampling +options.metrics.increment('my_counter', 1, 0.25); + +// Tags, this will add user-defined tags to +the data +options.metrics.histogram('my_histogram', 42, ['foo', 'bar']); +``` + +All metrics are automatically prefixed by the config-provided service name / +graphite hierachy prefix to ensure a consistent graphite metric hierarchy. + # Issue tracking Please report issues in [the service-runner phabricator diff --git a/node_modules/service-runner/config.yaml b/node_modules/service-runner/config.yaml index 21538b1..efba006 100644 --- a/node_modules/service-runner/config.yaml +++ b/node_modules/service-runner/config.yaml @@ -1,17 +1,3 @@ -# Info about this config. Used for packaging & other purposes. -info: - name: parsoid - version: 0.4.0 - description: Bidirectional conversion service between MediaWiki wikitext and - HTML5 - -# Package settings. Modeled on Debian, but likely to transfer to rpm as well. -packaging: - depends: - nodejs: '>=0.10.0' - enhances: mediawiki - - # Number of worker processes to spawn. # Set to 0 to run everything in a single process without clustering. # Use 'ncpu' to run as many workers as there are CPU units @@ -19,7 +5,7 @@ # Log error messages and gracefully restart a worker if v8 reports that it # uses more heap (note: not RSS) than this many mb. -worker_heap_limit_mb: 500 +worker_heap_limit_mb: 1 # Logger info logging: diff --git a/node_modules/service-runner/lib/heapwatch.js b/node_modules/service-runner/lib/heapwatch.js index f196951..ba79735 100644 --- a/node_modules/service-runner/lib/heapwatch.js +++ b/node_modules/service-runner/lib/heapwatch.js @@ -24,7 +24,7 @@ if (usage.heapUsed > this.limit) { this.failCount++; - if (this.failCount > 5) { + if (this.failCount > 3) { this.logger.log('fatal/service-runner/heap', { message: 'Heap memory limit exceeded', limit: this.limit, @@ -34,6 +34,10 @@ setTimeout(function() { cluster.worker.disconnect(); }, 1000); + // And forcefully exit 60 seconds later + setTimeout(function() { + process.exit(1); + }, 60000); return; } else { this.logger.log('warn/service-runner/heap', { diff --git a/node_modules/service-runner/package.json b/node_modules/service-runner/package.json index e02cb24..1ed823f 100644 --- a/node_modules/service-runner/package.json +++ b/node_modules/service-runner/package.json @@ -1,6 +1,6 @@ { "name": "service-runner", - "version": "0.1.3", + "version": "0.1.4", "description": "Generic nodejs service supervisor / cluster runner", "main": "service-runner.js", "bin": { @@ -49,10 +49,10 @@ "mocha-lcov-reporter": "0.0.1", "coveralls": "2.11.2" }, - "readme": "# service-runner\nGeneric nodejs service runner & supervisor\n\n## Goals\n- Supervise and cluster node services in a generic manner with a minimal interface:\n\n```javascript\nmodule.exports = function (options) {\n var config = options.config;\n // Logger instance\n var logger = options.logger;\n // Statsd metrics reporter\n var statsd = options.statsd;\n\n // Start the app, returning a promise\n return startApp(config, logger, statsd);\n}\n```\n\n- standard command line parameters:\n```bash\nUsage: node ./service-runner.js [-h|-v] [--param[=val]]\n\nOptions:\n -n, --num-workers [default: -1]\n -c, --config [default: \"./config.yaml\"]\n -v, --version [default: false]\n -h, --help [default: false]\n```\n- [config loading](#config-loading)\n- flexible logging using bunyan, including logstash support via gelf\n- metric reporting using txstatsd\n- heap dumps\n\n## Usage\n```bash\nnpm install --save service-runner\n```\n\nIn package.json, configure `npm start` to call service-runner:\n```javascript\n \"scripts\": {\n \"start\": \"service-runner\"\n }\n```\nCreate a `config.yaml` file following the spec below. Make sure to point the\nmodule parameter to your service's entry point.\n\nFinally, **start your service with `npm start`**. In npm >= 2.0 (node 0.12 or iojs), you can also pass parameters to `service-runner` like this: `npm start -- -c /etc/yourservice/config.yaml`.\n\nFor node 0.10 support, you can create a small wrapper script like this:\n```javascript\nvar ServiceRunner = require('service-runner');\nnew ServiceRunner().run();\n```\n\nWe are also working on a [standard\ntemplate](https://github.com/wikimedia/service-template-node) for node\nservices, which will set up this & other things for you.\n\n### Config loading\n- Default config locations in a project: `config.yaml` for a customized config,\n and `config.example.yaml` for the defaults.\n- Default top-level config format (**draft**):\n\n```yaml\n# Info about this config. Used for packaging & other purposes.\ninfo: \n name: parsoid\n version: 0.4.0\n description: Bidirectional conversion service between MediaWiki wikitext and\n HTML5\n\n# Package settings. Modeled on Debian, but likely to transfer to rpm as well.\npackaging:\n depends:\n nodejs: >=0.10.0\n enhances: mediawiki\n\n\n# Number of worker processes to spawn. \n# Set to 0 to run everything in a single process without clustering.\nnum_workers: 1\n\n# Logger info\nlogging:\n level: info\n streams:\n # Use gelf-stream -> logstash\n - type: gelf\n host: logstash1003.eqiad.wmnet\n port: 12201\n\n# Statsd metrics reporter\nmetrics:\n type: txstatsd\n host: localhost\n port: 8125\n\nservices:\n - name: parsoid\n # a relative path or the name of an npm package, if different from name\n # module: ./lib/server.js\n\n # optionally, a version constraint of the npm package\n # version: ^0.4.0\n \n # per-service config\n conf:\n port: 12345\n interface: localhost\n # more per-service config settings\n```\n\n# Issue tracking\n\nPlease report issues in [the service-runner phabricator\nproject](https://phabricator.wikimedia.org/tag/service-runner/).\n\n# See also\n- https://github.com/Unitech/PM2/ - A lot of features. Focus on interactive\n use with commandline tools. Weak on logging (only local log files). Does\n not support node 0.10's cluster module.\n- https://github.com/strongloop/strong-agent - commercial license. Focus on\n profiling and monitoring, although a lot of the functionality is now\n available in other libraries.\n- http://krakenjs.com/ - Focused more on MVC & templating rather than\n supervision & modules\n", + "readme": "# service-runner\nGeneric nodejs service runner & supervisor\n\n## Features\n- Supervise and cluster node services in a generic manner with a minimal interface:\n\n```javascript\nmodule.exports = function (options) {\n var config = options.config;\n // Logger instance\n var logger = options.logger;\n // Metrics reporter (txstatsd, statsd)\n var metrics = options.metrics;\n\n // Start the app, returning a promise\n return startApp(config, logger, metrics);\n}\n```\n\n- standard command line parameters:\n```bash\nUsage: node ./service-runner.js [-h|-v] [--param[=val]]\n\nOptions:\n -n, --num-workers [default: -1]\n -c, --config [default: \"./config.yaml\"]\n -v, --version [default: false]\n -h, --help [default: false]\n```\n- [config loading](#config-loading)\n- flexible logging using bunyan, including logstash support via gelf: `logger.log('info/request', { message: 'foo', uri: req.uri })`\n- [metric reporting](#metric-reporting) using txstatsd or statsd: `statsd.timing('foo.GET.2xx', Date.now() - startTime)`\n- heap dumps\n\n## Usage\n```bash\nnpm install --save service-runner\n```\n\nIn package.json, configure `npm start` to call service-runner:\n```javascript\n \"scripts\": {\n \"start\": \"service-runner\"\n }\n```\nCreate a `config.yaml` file following the spec below. Make sure to point the\nmodule parameter to your service's entry point.\n\nFinally, **start your service with `npm start`**. In npm >= 2.0 (node 0.12 or iojs), you can also pass parameters to `service-runner` like this: `npm start -- -c /etc/yourservice/config.yaml`.\n\nFor node 0.10 support, you can create a small wrapper script like this:\n```javascript\nvar ServiceRunner = require('service-runner');\nnew ServiceRunner().run();\n```\n\nWe are also working on a [standard\ntemplate](https://github.com/wikimedia/service-template-node) for node\nservices, which will set up this & other things for you.\n\n### Config loading\n- Default config locations in a project: `config.yaml` for a customized config,\n and `config.example.yaml` for the defaults.\n- Default top-level config format (**draft**):\n\n```yaml\n# Number of worker processes to spawn. \n# Set to 0 to run everything in a single process without clustering.\nnum_workers: 1\n\n# Logger info\nlogging:\n level: info\n streams:\n # Use gelf-stream -> logstash\n - type: gelf\n host: logstash1003.eqiad.wmnet\n port: 12201\n\n# Statsd metrics reporter\nmetrics:\n type: txstatsd\n host: localhost\n port: 8125\n\nservices:\n - name: parsoid\n # a relative path or the name of an npm package, if different from name\n # module: ./lib/server.js\n\n # optionally, a version constraint of the npm package\n # version: ^0.4.0\n \n # per-service config\n conf:\n port: 12345\n interface: localhost\n # more per-service config settings\n```\n\n### Metric reporting\n\nWe basically expose the [node-statsd\ninterface](https://github.com/sivy/node-statsd):\n\n```javascript\n// Timing: sends a timing command with the specified milliseconds\noptions.metrics.timing('response_time', 42);\n\n// Increment: Increments a stat by a value (default is 1)\noptions.metrics.increment('my_counter');\n\n// Decrement: Decrements a stat by a value (default is -1)\noptions.metrics.decrement('my_counter');\n\n// Histogram: send data for histogram stat\noptions.metrics.histogram('my_histogram', 42);\n\n// Gauge: Gauge a stat by a specified amount\noptions.metrics.gauge('my_gauge', 123.45);\n\n// Set: Counts unique occurrences of a stat (alias of unique)\noptions.metrics.set('my_unique', 'foobar');\noptions.metrics.unique('my_unique', 'foobarbaz');\n\n// Incrementing multiple items\noptions.metrics.increment(['these', 'are', 'different', 'stats']);\n\n// Sampling, this will sample 25% of the time\nthe StatsD Daemon will compensate for sampling\noptions.metrics.increment('my_counter', 1, 0.25);\n\n// Tags, this will add user-defined tags to\nthe data\noptions.metrics.histogram('my_histogram', 42, ['foo', 'bar']);\n```\n\nAll metrics are automatically prefixed by the config-provided service name /\ngraphite hierachy prefix to ensure a consistent graphite metric hierarchy.\n\n# Issue tracking\n\nPlease report issues in [the service-runner phabricator\nproject](https://phabricator.wikimedia.org/tag/service-runner/).\n\n# See also\n- https://github.com/Unitech/PM2/ - A lot of features. Focus on interactive\n use with commandline tools. Weak on logging (only local log files). Does\n not support node 0.10's cluster module.\n- https://github.com/strongloop/strong-agent - commercial license. Focus on\n profiling and monitoring, although a lot of the functionality is now\n available in other libraries.\n- http://krakenjs.com/ - Focused more on MVC & templating rather than\n supervision & modules\n", "readmeFilename": "README.md", - "gitHead": "1412e41c3fa065c63cac04b755b3da7d483a113e", - "_id": "service-runner@0.1.3", - "_shasum": "0ee863425caa7f1a367c54b5cc88553709ce1b08", + "gitHead": "ba5a2ca6633dc0dcc67af6fa1d067abb51d6cd1e", + "_id": "service-runner@0.1.4", + "_shasum": "8e3882f606163067832aff8683b07c2a9aebcbf5", "_from": "service-runner@^0.1.0" } diff --git a/node_modules/service-runner/service-runner.js b/node_modules/service-runner/service-runner.js index 93cd175..8ff2084 100755 --- a/node_modules/service-runner/service-runner.js +++ b/node_modules/service-runner/service-runner.js @@ -96,6 +96,11 @@ self.config = this._sanitizeConfig(conf, self.options); return P.resolve(conf); } else { + var package_json = {}; + try { + package_json = require(self._basePath + '/' + 'package.json'); + } catch (e) {} + var configFile = this.options.configFile; if (/^\./.test(configFile)) { // resolve relative paths @@ -105,6 +110,15 @@ .then(function(yamlSource) { self.config = self._sanitizeConfig(yaml.safeLoad(yamlSource), self.options); + + // Make sure we have a sane config object by pulling in + // package.json info if necessary + var config = self.config; + config.package = config.package || config.info /* b/c */ || {}; + var pack = config.package; + pack.name = pack.name || package_json.name; + pack.description = pack.description || package_json.description; + pack.version = pack.version || package_json.version; }) .catch(function(e) { console.error('Error while reading config file: ' + e); diff --git a/node_modules/service-runner/test/httpserver.js b/node_modules/service-runner/test/httpserver.js index 4abeac0..9d7dfbf 100644 --- a/node_modules/service-runner/test/httpserver.js +++ b/node_modules/service-runner/test/httpserver.js @@ -18,6 +18,9 @@ }); res.end('okay'); } - }).listen(opts.config.port || 8888, opts.config.interface || '0.0.0.0', resolve); + }) + .listen(opts.config.port || 8888, + opts.config.interface || '0.0.0.0', + resolve); }); }; diff --git a/node_modules/swagger-ui/node_modules/swagger-client/package.json b/node_modules/swagger-ui/node_modules/swagger-client/package.json index af3c72f..4378b3b 100644 --- a/node_modules/swagger-ui/node_modules/swagger-client/package.json +++ b/node_modules/swagger-ui/node_modules/swagger-client/package.json @@ -65,5 +65,6 @@ "tarball": "http://registry.npmjs.org/swagger-client/-/swagger-client-2.1.1-M1.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.1.1-M1.tgz" + "_resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.1.1-M1.tgz", + "readme": "ERROR: No README data found!" } -- To view, visit https://gerrit.wikimedia.org/r/193012 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5baec227c25e8feb61b1f564b60867da14e84c72 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/services/restbase/deploy Gerrit-Branch: master Gerrit-Owner: GWicke <gwi...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits