The NodeSource Blog

Node.js v5.5.0 Release Brief

This week’s stable release is 👏 Evan Lucas’s 👏 first Node release as part of the Node.js release team. 🎉

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 59 commits:

  • 14 were documentation-only commits.
  • 11 only modify tests and 7 only affect internal tooling.
  • The LICENSE file has seen a significant update, and is now compiled from the licenses of Node’s dependencies via a script. The licensing itself remains the same.

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

  • [a8330f73ab] - (SEMVER-MINOR) events: make sure console functions exist (Dave) #4479
  • [28793958af] - (SEMVER-MINOR) fs: add autoClose option to fs.createWriteStream (Saquib) #3679
  • [c1712947b2] - (SEMVER-MINOR) http: improves expect header handling (Daniel Sellers) #4501
  • [848b04bf78] - (SEMVER-MINOR) node: allow preload modules with -i (Evan Lucas) #4696
  • [4254508fb1] - (SEMVER-MINOR) v8,src: expose statistics about heap spaces (Ben Ripkens) #4463

The remaining significant commits are as follows:

  • [14061c6498] - buffer: remove unnecessary TODO comments (Peter Geiss) #4719
  • [f221a43f3e] - buffer: make byteLength work with Buffer correctly (Jackson Tian) #4738
  • [fe5b71028d] - build: add option to select VS version (julien.waechter) #4645
  • [cde06c6fec] - build: fix and refactor VTune config in vcbuild.bat (Rod Vagg) #4192
  • [b03cc991aa] - build: minor corrections in VTune configure text (Rod Vagg) #4192
  • [045dac7961] - cluster: fix race condition setting suicide prop (Santiago Gimeno) #4349
  • [8bf5b33019] - crypto: clear error stack in ECDH::Initialize (Fedor Indutny) #4689
  • [0d0a5ed816] - debugger: remove variable redeclarations (Rich Trott) #4633
  • [67d2e2b0a7] - dgram: prevent disabled optimization of bind() (Brian White) #4613
  • [b0b71d52c6] - gitignore: never ignore debug module (Michaël Zasso) #2286
  • [88fcc8bd25] - lib: fix style issues after eslint update (Michaël Zasso) nodejs/io.js#2286
  • [4e04063e75] - lib: use arrow functions instead of bind (Minwoo Jung) #3622
  • [f0ee088f3b] - lib,test: remove extra semicolons (Michaël Zasso) #2205
  • [eb2b8c637b] - module: cache stat() results more aggressively (Ben Noordhuis) #4575
  • [d8f5bd4fe1] - module: avoid ArgumentsAdaptorTrampoline frame (Ben Noordhuis) #4575
  • [c6ac464dbc] - querystring: improve parse() performance (Brian White) #4675
  • [d533364a24] - readline: Remove XXX and output debuglog (Kohei TAKATA) #4690
  • [8104d9d875] - repl: make sure historyPath is trimmed (Evan Lucas) #4539
  • [a2c257a3ef] - src: fix negative values in process.hrtime() (Ben Noordhuis) #4757
  • [3af206d6c1] - src: return UV_EAI_NODATA on empty lookup (cjihrig) #4715
  • [6988d2edb3] - src: don't check failure with ERR_peek_error() (Ben Noordhuis) #4731
  • [426ff820f5] - stream: prevent object map change in ReadableState (Evan Lucas) #4761

Notable Changes

  • events: Make sure console functions exist in the case of a circular dependency (Dave) #4479.
  • fs: Added an autoClose option to fs.createWriteStream (Saquib) #3679.
  • http: Improved expect header handling and added a new 'checkExpectation' event (Daniel Sellers) #4501.
  • node: Preloading modules (--require) now works with the repl (Evan Lucas) #4696.
  • v8: Added a new v8.getHeapSpaceStatistics() API (Ben Ripkens) #4463.
  • Three minor performance improvements:
    • lib: Use arrow functions instead of function.bind() where possible (Minwoo Jung) #3622.
    • (Mistakenly missing from v5.4.0)
    • module: Cache stat() results more aggressively (Ben Noordhuis) #4575.
    • querystring: Improved parse() performance (Brian White) #4675.

Git Diffstats

(Showing the delta between v5.4.1 and v5.5.0, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 .eslintignore                          |    2 +-
 .eslintrc                              |   12 +-
 .gitignore                             |    4 +-
 LICENSE                                | 1330 ++++++++++++++++--------------
 Makefile                               |    8 +-
 configure                              |    8 +-
 lib/_debugger.js                       |  142 ++--
 lib/_http_server.js                    |   28 +-
 lib/_stream_readable.js                |    1 +
 lib/_tls_legacy.js                     |   27 +-
 lib/_tls_wrap.js                       |   30 +-
 lib/assert.js                          |   10 +-
 lib/buffer.js                          |    7 +-
 lib/cluster.js                         |   60 +-
 lib/dgram.js                           |    3 +-
 lib/events.js                          |   17 +-
 lib/fs.js                              |   39 +-
 lib/internal/child_process.js          |   14 +-
 lib/internal/module.js                 |   11 +-
 lib/internal/repl.js                   |   13 +-
 lib/module.js                          |   28 +-
 lib/net.js                             |   28 +-
 lib/path.js                            |   68 +-
 lib/querystring.js                     |   34 +-
 lib/readline.js                        |    7 +-
 lib/tls.js                             |   14 +-
 lib/url.js                             |   42 +-
 lib/v8.js                              |   33 +-
 src/cares_wrap.cc                      |    4 +
 src/env-inl.h                          |   12 +
 src/env.h                              |    4 +
 src/node.js                            |    8 +-
 src/node_crypto.cc                     |    5 +-
 src/node_v8.cc                         |   87 +-
 src/node_version.h                     |    4 +-
 tools/doc/addon-verify.js              |   34 +-
 tools/eslint-rules/required-modules.js |    6 +-
 tools/license-builder.sh               |   64 ++
 vcbuild.bat                            |   20 +-
 39 files changed, 1338 insertions(+), 930 deletions(-)

Docs only:

 CHANGELOG.md                   | 84 ++++++++++++++++++++++++++++++++++++++++
 README.md                      |  4 +-
 doc/api/addons.markdown        |  2 +-
 doc/api/child_process.markdown | 39 ++++++++++---------
 doc/api/fs.markdown            | 17 +++++++-
 doc/api/http.markdown          | 15 ++++++-
 doc/api/repl.markdown          |  2 +-
 doc/api/stream.markdown        | 29 +++++++-------
 doc/api/v8.markdown            | 49 +++++++++++++++++++++++
 doc/node.1                     |  2 +-
 doc/releases.md                |  8 +++-
 11 files changed, 210 insertions(+), 41 deletions(-)

Tests & Benchmarks only:

   0.2% benchmark/querystring/
   0.2% test/debugger/
   0.7% test/fixtures/module-require-depth/
   0.0% test/fixtures/
   2.3% test/gc/
   6.0% test/internet/
  72.2% test/parallel/
   2.2% test/pummel/
  15.8% test/sequential/
   0.0% test/
 160 files changed, 1716 insertions(+), 1424 deletions(-)

Most active commit

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

commit 4254508fb123e79df1f1c86b3c24cf710903b87e
Author: Ben Ripkens <bripkens.dev@gmail.com>
Date:   Tue Dec 29 11:54:35 2015 +0100

    v8,src: expose statistics about heap spaces

    Provide means to inspect information about the separate heap spaces
    via a callable API. This is helpful to analyze memory issues.

    Fixes: https://github.com/nodejs/node/issues/2079
    PR-URL: https://github.com/nodejs/node/pull/4463
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Trevor Norris <trev.norris@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: James M Snell <jasnell@gmail.com>

 doc/api/v8.markdown            | 49 ++++++++++++++++++++++
 lib/v8.js                      | 33 ++++++++++++++-
 src/env-inl.h                  | 12 ++++++
 src/env.h                      |  4 ++
 src/node_v8.cc                 | 87 +++++++++++++++++++++++++++++++++++++++-
 test/parallel/test-v8-stats.js | 19 +++++++++
 6 files changed, 202 insertions(+), 2 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.

The NodeSource platform offers a high-definition view of the performance, security and behavior of Node.js applications and functions.

Start for Free