The Nodesource Blog

#shoptalk Subscribe

Node.js v5.3.0 Release Brief

This week’s Node.js stable release comes with two important regression fixes from v5.2.0, along with a couple minor features, and the regular set of fixes.

  • Fixed a module regression affecting debuggers’ and profilers’ parsing.
  • Fixed require() not being able to access third-party modules in the REPL.

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

Overview

Of a total of 50 commits:

  • 20 were documentation-only commits.
  • 9 only modify tests.
  • There was one dependency update:

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

  • [9ab669f853] - (SEMVER-MINOR) buffer: add includes() for parity with TypedArray (Alexander Martin) #3567
  • [e8a6b6526c] - (SEMVER-MINOR) domains: fix handling of uncaught exceptions (Julien Gilli) #3654
  • [273f40079c] - (SEMVER-MINOR) https: support disabling session caching (Fedor Indutny) #4252
  • [5daa7118b1] - (SEMVER-MINOR) tls: introduce secureContext for tls.connect (Fedor Indutny) #4246

The remaining significant commits are as follows:

  • [91cbc014ba] - assert: accommodate ES6 classes that extend Error (Rich Trott) #4166
  • [49ba2c9650] - configure: fix arm vfpv2 (Jörg Krause) #4203
  • [51976cc120] - configure: use __ARM_ARCH to determine arm version (João Reis) #4123
  • [c836f1a88f] - configure: respect CC_host in host arch detection (João Reis) #4117
  • [27a1e14a8a] - doc, test: symbols as event names (Bryan English) #4151
  • [56bed48fda] - module,src: do not wrap modules with -1 lineOffset (cjihrig) #4298
  • [ca21eb6f26] - node: remove unused variables in AppendExceptionLine (Yazhong Liu) #4264
  • [5f5d325030] - repl: display error message when loading directory (Prince J Wesley) #4170
  • [1999fdc859] - repl: fix require('3rdparty') regression (Ben Noordhuis) #4215
  • [b330f6c97e] - src: remove __builtin_bswap16 call (Ben Noordhuis) #4290
  • [aa0c7f3a26] - src: remove unused BITS_PER_LONG macro (Ben Noordhuis) #4290
  • [d381c22c63] - src: fix line numbers on core errors (cjihrig) #4254
  • [914af0b68a] - src: fix deprecation message for ErrnoException (Martin von Gagern) #4269
  • [a1b4921224] - tls_wrap: inherit from the AsyncWrap first (Fedor Indutny) #4268
  • [0d42006a9c] - tools: add .editorconfig (ronkorving) #2993
  • [8c7b0cc977] - udp: remove a needless instanceof Buffer check (ronkorving) #4301

Notable Changes

  • buffer: Buffer.prototype.includes() has been added to keep parity with TypedArrays. (Alexander Martin) #3567.
  • domains: Fixed handling of uncaught exceptions. (Julien Gilli) #3654.
  • https: Added the ability to disable session caching. (Fedor Indutny) #4252.
  • module,src Fixed a module wrapping regression from v5.2.0 (Colin Ihrig) #4298.
    • This was causing some problems in debugging and profiling tools.
  • repl: Fixed a regression from v5.2.0 which prevented third party modules to be imported using require(). (Ben Noordhuis) #4215.
  • deps: Upgraded libuv to 1.8.0. (Saúl Ibarra Corretgé) #4276.

Git Diffstats

(Showing the delta between v5.2.0 and v5.3.0, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 .editorconfig        | 39 +++++++++++++++++++++++++++
 .mailmap             | 20 ++++++++++++++
 AUTHORS              | 72 +++++++++++++++++++++++++++++++++++++++++++++-----
 configure            | 15 ++++-------
 lib/_debugger.js     |  2 +-
 lib/_tls_wrap.js     |  2 +-
 lib/assert.js        |  4 +++
 lib/buffer.js        |  5 ++++
 lib/dgram.js         |  5 ++--
 lib/domain.js        | 33 ++++++++++++++---------
 lib/https.js         |  4 +++
 lib/module.js        |  2 +-
 lib/repl.js          |  6 +++++
 src/env.h            |  1 +
 src/node.cc          | 50 +++++++++++++++++++++++++++++------
 src/node.h           |  2 +-
 src/node.js          |  7 +++--
 src/node_internals.h |  6 -----
 src/node_version.h   |  2 +-
 src/tls_wrap.cc      |  6 ++---
 src/tls_wrap.h       |  6 ++---
 src/util-inl.h       |  9 +------
 22 files changed, 230 insertions(+), 68 deletions(-)

Deps only:

   2.6% deps/uv/docs/src/
   1.1% deps/uv/include/
  17.9% deps/uv/src/unix/
  17.5% deps/uv/src/win/
   3.8% deps/uv/src/
  49.3% deps/uv/test/
   7.6% deps/uv/
 73 files changed, 1449 insertions(+), 345 deletions(-)

Docs only:

 CHANGELOG.md                   |  77 +++++++++++
 CONTRIBUTING.md                |   6 +-
 README.md                      |   7 +-
 deps/uv/README.md              |   2 +-
 doc/api/addons.markdown        |  56 ++++----
 doc/api/assert.markdown        |   5 +-
 doc/api/buffer.markdown        |  92 +++++++------
 doc/api/child_process.markdown |  29 ++--
 doc/api/console.markdown       |  34 ++---
 doc/api/debugger.markdown      |   2 +-
 doc/api/errors.markdown        |   2 +-
 doc/api/events.markdown        |   7 +-
 doc/api/fs.markdown            |   4 +-
 doc/api/http.markdown          |   5 +-
 doc/api/https.markdown         |   5 +-
 doc/api/net.markdown           |  21 ++-
 doc/api/readline.markdown      |   2 +-
 doc/api/tls.markdown           |  21 +--
 doc/api/util.markdown          |   6 +-
 doc/api/v8.markdown            |   4 +-
 doc/ctc-meetings/2015-10-28.md | 276 +++++++++++++++++++++++++++++++++++++++
 doc/node.1                     |   4 +-
 22 files changed, 531 insertions(+), 136 deletions(-)

Tests & Benchmarks only:

 test/common.js                                    |  43 ++-
 test/fixtures/exports-function-with-param.js      |   1 +
 test/fixtures/node_modules/baz/index.js           |   2 +
 test/message/core_line_numbers.js                 |  11 +
 test/message/core_line_numbers.out                |  15 +
 test/parallel/test-assert.js                      |  21 +-
 test/parallel/test-buffer-includes.js             | 256 ++++++++++++++++
 test/parallel/test-debug-port-cluster.js          |  48 +--
 test/parallel/test-domain-abort-on-uncaught.js    | 310 +++++++++++++++-----
 ...t-domain-no-error-handler-abort-on-uncaught.js | 168 +++++++++++
 ...-then-throw-from-uncaught-exception-handler.js | 101 +++++++
 test/parallel/test-domain-uncaught-exception.js   | 205 +++++++++++++
 ...est-domain-with-abort-on-uncaught-exception.js |  34 +--
 test/parallel/test-event-emitter-symbols.js       |  23 ++
 test/parallel/test-http-many-ended-pipelines.js   |  12 +-
 .../test-https-agent-disable-session-reuse.js     |  60 ++++
 test/parallel/test-repl-.save.load.js             |   8 +
 test/parallel/test-repl-persistent-history.js     | 274 +++++++++++++++++
 test/parallel/test-repl-require.js                |  33 +++
 test/parallel/test-tls-connect-secure-context.js  |  38 +++
 test/parallel/test-tls-inception.js               |  18 +-
 test/parallel/test-tls-no-sslv3.js                |  22 +-
 test/parallel/test-tls-parse-cert-string.js       |  26 ++
 test/parallel/test-vm-debug-context.js            |  18 ++
 test/sequential/test-module-loading.js            |   4 +-
 test/sequential/test-repl-persistent-history.js   | 274 -----------------
 26 files changed, 1584 insertions(+), 441 deletions(-)

Most active commit

Of the 50 commits, 2cfc407 was the most active (not counting npm or doc updates):

commit 2cfc407f516a376a44f2273d0db2af9a02c1075e
Author: Saúl Ibarra Corretgé <saghul@gmail.com>
Date:   Sun Dec 13 12:07:04 2015 +0100

    deps: upgrade libuv to 1.8.0

    Fixes: https://github.com/nodejs/node/issues/3718
    PR-URL: https://github.com/nodejs/node/pull/4276
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

  17.9% deps/uv/src/unix/
  17.5% deps/uv/src/win/
   3.8% deps/uv/src/
  49.3% deps/uv/test/
  11.3% deps/uv/
 73 files changed, 1449 insertions(+), 345 deletions(-)

We suggest you upgrade to v5.3.0 if you were using v5.2.0 so as to avoid encountering the two regressions mentioned above. However, this release is not critical unless you are experiencing one of the issues identified and fixed in this release.