The Nodesource Blog

#shoptalk Subscribe

Node.js v5.8.0 Release Brief

This week’s stable release fixes some regressions, adds some minor features, and includes a little perf improvement.

As with all releases within major version lines, minor and patch upgrades should be drop-in replacements for previous versions.

Overview

Of a total of 31 commits:

  • 6 were documentation-only commits.
  • 5 only modify tests and 5 only affect internal tooling.
  • There was one dependency update: npm @ 3.7.3.

5 commits were tagged as semver-minor, adding new functionality and justifying the jump to v5.8.0:

  • [a3017992e4] - (SEMVER-MINOR) child_process: add keepOpen option to send() (cjihrig) #5283
  • [6d4887ccc2] - (SEMVER-MINOR) child_process: support options in send() (cjihrig) #5283
  • [9db827c7aa] - (SEMVER-MINOR) constants: define ENGINE_METHOD_RSA (Sam Roberts) #5463
  • [b54a26fa61] - (SEMVER-MINOR) doc: correct name of engine methods (Sam Roberts) #5463
  • [e572e421b4] - (SEMVER-MINOR) repl: accept no arguments to start() (cjihrig) #5388

The remaining significant commits are as follows:

  • [12ca84fc7f] - benchmark: add util.format() benchmark (Evan Lucas) #5360
  • [b955d02266] - benchmark: fix lint errors (Rich Trott) #5517
  • [2abf866b6e] - build: update Node.js logo on Win installer (Robert Jefe Lindstaedt) #5531
  • [86900f8f2b] - build: correctly detect clang version (Stefan Budeanu) #5553
  • [67e9f65958] - dgram: default send address to 127.0.0.1 or ::1 (Matteo Collina) #5493
  • [f3971f5817] - path: fix normalize() for absolutes (Evan Lucas) #5589
  • [5e6d706758] - src,http: fix uncaughtException miss in http (Trevor Norris) #5591
  • [971edde0cb] - util: improve format() performance further (Brian White) #5360
  • [c32d460747] - util: improve util.format() performance (Evan Lucas) #5360

Notable Changes

  • child_process: send() now accepts an options parameter (cjihrig) #5283.
    • Currently the only option is keepOpen, which keeps the underlying socket open after the message is sent.
  • constants: ENGINE_METHOD_RSA is now correctly exposed (Sam Roberts) #5463.
  • Fixed two regressions which originated in v5.7.0:
    • http: Errors inside of http client callbacks now propagate correctly (Trevor Norris) #5591.
    • path: Fixed normalization of absolute paths (Evan Lucas) #5589.
  • repl: start() no longer requires an options parameter (cjihrig) #5388.
  • util: Improved format() performance 50-300% (Evan Lucas) #5360.

Git Diffstats

(Showing the delta between v5.7.1 and v5.8.0, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 .eslintrc                     | 16 ++++----
 Makefile                      |  7 +++-
 configure                     | 14 +++++--
 lib/dgram.js                  | 11 +++++-
 lib/internal/child_process.js | 63 +++++++++++++++++++++----------
 lib/path.js                   |  4 +-
 lib/repl.js                   |  2 -
 lib/util.js                   | 84 +++++++++++++++++++++++++++++------------
 src/async-wrap.cc             |  6 +--
 src/node.cc                   |  6 ++-
 src/node_constants.cc         |  4 ++
 src/node_version.h            |  4 +-
 tools/cpplint.py              |  3 --
 tools/test.py                 | 10 +++--
 vcbuild.bat                   |  3 +-
 15 files changed, 161 insertions(+), 76 deletions(-)

Deps only:

 deps/openssl/openssl.gyp  | 1 +
 deps/openssl/openssl.gypi | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Docs only:

 CHANGELOG.md                   |  47 ++++++++++++++++
 doc/api/child_process.markdown |  11 +++-
 doc/api/crypto.markdown        |   4 +-
 doc/api/dgram.markdown         |   5 +-
 doc/api/documentation.markdown |   7 +++
 doc/api/fs.markdown            |   2 +-
 doc/api/process.markdown       |  71 +++++++++++++-----------
 doc/api/repl.markdown          |   2 +-
 doc/api/v8.markdown            |   2 +-
 doc/api_assets/style.css       |  13 +++--
 doc/full-white-stripe.jpg      | Bin 3636 -> 9483 bytes
 doc/thin-white-stripe.jpg      | Bin 3099 -> 6525 bytes
 test/README.md                 | 117 +++++++++++++++++++++++++++++++++++++++
 13 files changed, 232 insertions(+), 49 deletions(-)

Tests & Benchmarks only:

 benchmark/arrays/var-int.js                       |  4 +-
 benchmark/arrays/zero-float.js                    |  4 +-
 benchmark/arrays/zero-int.js                      |  4 +-
 benchmark/buffers/buffer-base64-decode.js         | 10 ++--
 benchmark/buffers/buffer-creation.js              |  2 +-
 benchmark/buffers/buffer-indexof.js               |  5 +-
 benchmark/compare.js                              | 25 ++++++++--
 benchmark/domain/domain-fn-args.js                |  4 +-
 benchmark/fs/bench-readdir.js                     |  3 +-
 benchmark/fs/bench-readdirSync.js                 |  3 +-
 benchmark/http_simple_auto.js                     |  4 +-
 benchmark/http_simple_cluster.js                  |  7 +--
 benchmark/idle_clients.js                         |  1 -
 benchmark/misc/freelist.js                        |  2 +-
 benchmark/misc/v8-bench.js                        |  2 +-
 benchmark/module/module-loader.js                 | 10 +++-
 benchmark/tls/throughput.js                       |  6 ++-
 benchmark/util/format.js                          | 40 ++++++++++++++++
 test/debugger/test-debug-break-on-uncaught.js     |  5 --
 .../known_issues/test-vm-function-redefinition.js | 11 +++++
 test/known_issues/testcfg.py                      |  6 +++
 test/parallel/parallel.status                     |  1 -
 .../parallel/test-child-process-send-keep-open.js | 52 +++++++++++++++++++++
 .../test-child-process-send-type-error.js         | 25 ++++++++++
 test/parallel/test-dgram-send-default-host.js     | 12 -----
 .../parallel/test-dgram-udp6-send-default-host.js | 36 ++++++++++++++
 .../parallel/test-http-catch-uncaughtexception.js | 23 +++++++++
 test/parallel/test-memory-usage.js                |  4 +-
 test/parallel/test-npm-install.js                 | 40 ++++++++++++++++
 test/parallel/test-path.js                        |  3 ++
 test/parallel/test-process-getactivehandles.js    | 17 ++++---
 test/parallel/test-repl-options.js                | 14 ++++++
 test/parallel/test-util-inspect.js                |  2 +-
 33 files changed, 329 insertions(+), 58 deletions(-)

Most active commit

Of the 31 commits, a301799 was the most active:
(Excluding docs, npm, eslint, and tests.)

commit a3017992e42dfccdeb5d3c94d27656b99c3ceaeb
Author: cjihrig <cjihrig@gmail.com>
Date:   Tue Feb 16 22:18:10 2016 -0500

    child_process: add keepOpen option to send()

    This option allows an instance of net.Socket to be kept open in
    the sending process.

    Fixes: https://github.com/nodejs/node/issues/4271
    PR-URL: https://github.com/nodejs/node/pull/5283
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

 doc/api/child_process.markdown                    |  7 ++-
 lib/internal/child_process.js                     | 14 ++++--
 .../parallel/test-child-process-send-keep-open.js | 52 +++++++++++++++++++++
 3 files changed, 67 insertions(+), 6 deletions(-)

This is a regular and routine release for a Node.js stable release line. We will be sure to let you know when a release contains a critical update and a recommendation to upgrade. Of course, we'd love you to upgrade, but this release is not critical unless you are experiencing one of the issues identified and fixed above.