The Nodesource Blog

#shoptalk Subscribe

Node.js v6.6.0 Release Brief

Node.js

This Current release is the result of a regular buildup of maintenance commits, documentation updates, and minor features.
Of note, a new process warning was added to indicate when a promise rejection has not be handled.

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

7 commits were tagged as semver-minor, adding new functionality and justifying the jump to v6.6.0:

  • [afb9917f16] - crypto: add crypto.timingSafeEqual() (not-an-aardvark) #8304
  • [605db31fe7] - events: make memory leak warning more accessible (Anna Henningsen) #8298
  • [180867d6a6] - promise: warn on unhandled rejections (Benjamin Gruenbaum) #8223
  • [408308f2e6] - readline: key interval delay for \r & \n (Prince J Wesley) #8109
  • [6f20f477c4] - repl: Auto alignment for .editor mode (Prince J Wesley) #8241
  • [e9c4805c1f] - util: allow returning this from custom inspect (Anna Henningsen) #8174
  • [4cb55ff392] - util: allow Symbol-based custom inspection methods (Anna Henningsen) #8174

The remaining significant commits are as follows:

  • [2ecc8c4c23] - async_wrap: add a missing case to test-async-wrap-throw-no-init (yorkie) #8198
  • [00f4bc3105] - benchmark: add benches for fs.stat & fs.statSync (Anna Henningsen) #8338
  • [7cc1391287] - benchmark: fix off-by-one error in fs benchmarks (Anna Henningsen) #8338
  • [6e3db283ed] - buffer: fix ArrayBuffer checks (Brian White) #8453
  • [dd51b1f428] - buffer,string_decoder: consolidate encoding validation logic (James M Snell) #7207
  • [a830e37dc9] - build: don't require processing docs for nightlies (Johan Bergström) #8325
  • [836bfc188b] - build: fix dependencies on AIX (Michael Dawson) #8285
  • [bc9d2fb543] - build: fix dependencies on AIX (Michael Dawson) #8272
  • [206b105b1e] - build: add missing files to zip and 7z packages (Richard Lau) #8069
  • [1640e7a4da] - crypto: fix getDecoder() encoding check (atstojanov) #8301
  • [49f996f4f6] - crypto: make malloc failure check cross-platform (Rich Trott) #8352
  • [fa4c4d655a] - http: fix connection upgrade checks (Brian White) #8238
  • [b603ac24cb] - inspector: use script name for target title (Eugene Ostroukhov) #8243
  • [13a522ac39] - inspector: make sure all messages are dispatched (Eugene Ostroukhov) #8264
  • [250a380231] - inspector: simplify buffer management (Eugene Ostroukhov) #8257
  • [354166c061] - inspector: use new inspector headers (Eugene Ostroukhov) #8150
  • [3ef8ba8bdc] - net: make holding the buffer in memory more robust (Anna Henningsen) #8252
  • [0d24247e50] - src: pull AfterConnect from pipe_wrap and tcp_wrap (Daniel Bevenius) #8448
  • [16202264d1] - src: remove unneeded Environment error methods (Ben Noordhuis) #8427
  • [8cbbb47e39] - src: update f function call comment (Daniel Bevenius) #8416
  • [d1d1433b02] - src: normalize malloc, realloc (Michael Dawson) #7564
  • [2c2a21ab56] - src: unbreak build when compiling against uclibc (Ben Noordhuis) #8308
  • [4e368c58ff] - src: moving f function call comment (Daniel Bevenius) #8405
  • [0f2c619f55] - src: avoid duplicate AtExit functions (Ali Ijaz Sheikh) #8273
  • [eff771f399] - tickprocessor: apply c++filt manually on mac (Fedor Indutny) #8480
  • [f840bc87d6] - url: fix off-by-one error in loop handling dots (Luigi Pinca) #8420
  • [6ae7af0fa3] - url: keep auth in url.resolve() if host matches (Ilkka Myller) #8215
  • [eec5d02266] - url: url.format() encodes all # in search (Ilkka Myller) #8072
  • [d67ece2f68] - util: improve function signature of util._extend() (Sakthipriyan Vairamani) #8187
  • [151d1ea6a6] - vm: change ContextifyScript to Script in comment (Daniel Bevenius) #8415
  • [f346dee940] - win,build: forward release_urlbase to configure (João Reis) #8430
  • [6bb057ec6a] - win,build: exit when addons fail to build (João Reis) #8412
  • [14d356d0ab] - win,build: skip finding VS when not needed (João Reis) #8412
  • [81d063e174] - win,build: fail on invalid option in vcbuild (João Reis) #8412

Notable Changes

  • crypto: Added crypto.timingSafeEqual(). (not-an-aardvark) #8304
  • events: Made the "max event listeners" memory leak warning more accessible. (Anna Henningsen) #8298
  • promises: Unhandled rejections now emit a process warning after the first tick. (Benjamin Gruenbaum) #8223
  • repl: Added auto alignment for .editor mode. (Prince J Wesley) #8241
  • util: Some functionality has been added to util.inspect():
    • Returning this from a custom inspect function now works. (Anna Henningsen) #8174
    • Added support for Symbol-based custom inspection methods. (Anna Henningsen) #8174

Git Diffstats

(Showing the delta between v6.5.0 and v6.6.0, ignoring deps/npm.)

Without deps, tools, docs, benchmarks, or tests:

 .eslintrc                         |   6 +-
 .gitignore                        |   1 +
 .mailmap                          |  15 ++-
 Makefile                          |  17 ++-
 lib/_http_common.js               |  16 +--
 lib/_http_outgoing.js             |  24 +++-
 lib/assert.js                     |   2 +
 lib/buffer.js                     |  42 ++-----
 lib/crypto.js                     |   5 +-
 lib/events.js                     |   7 +-
 lib/internal/child_process.js     |   2 +-
 lib/internal/process/promises.js  |  27 ++++-
 lib/internal/util.js              |  33 ++++++
 lib/internal/v8_prof_polyfill.js  |  36 +++++-
 lib/internal/v8_prof_processor.js |   3 +-
 lib/net.js                        |   1 -
 lib/readline.js                   |  37 ++++--
 lib/repl.js                       |   9 ++
 lib/string_decoder.js             |  35 ++----
 lib/url.js                        |   8 +-
 lib/util.js                       |  44 ++++---
 lib/vm.js                         |   4 +-
 src/backtrace_posix.cc            |   4 +-
 src/cares_wrap.cc                 |   3 +-
 src/connection_wrap.cc            |  48 ++++++++
 src/connection_wrap.h             |   1 +
 src/env-inl.h                     |  36 ++----
 src/env.h                         |   9 +-
 src/inspector_agent.cc            | 227 +++++++++++++++++++++++-------------
 src/inspector_agent.h             |   2 +-
 src/inspector_socket.cc           |  99 +++++++---------
 src/inspector_socket.h            |  19 ++-
 src/node.cc                       |  43 ++++---
 src/node_buffer.cc                |  12 +-
 src/node_contextify.cc            |  50 ++++----
 src/node_crypto.cc                |  39 +++++--
 src/node_internals.h              |   3 +-
 src/node_version.h                |   2 +-
 src/pipe_wrap.cc                  |  40 -------
 src/pipe_wrap.h                   |   2 -
 src/stream_base.cc                |   1 +
 src/stream_wrap.cc                |   4 +-
 src/string_bytes.cc               |   8 +-
 src/tcp_wrap.cc                   |  28 -----
 src/tcp_wrap.h                    |   2 -
 src/tls_wrap.cc                   |   2 +-
 src/udp_wrap.cc                   |   4 +-
 src/util-inl.h                    |  26 +++++
 src/util.h                        |  13 ++-
 vcbuild.bat                       |  26 ++++-
 50 files changed, 664 insertions(+), 463 deletions(-)

Tools only:

 tools/create_expfile.sh | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Deps only:

   0.0% deps/v8/include/
   0.1% deps/v8/src/heap/
   0.3% deps/v8/src/
   0.1% deps/v8/test/cctest/
  64.4% deps/v8_inspector/third_party/v8_inspector/platform/inspector_protocol/
   0.9% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/public/
  33.0% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/
   0.9% deps/v8_inspector/third_party/v8_inspector/platform/
 128 files changed, 4677 insertions(+), 4386 deletions(-)

Docs only:

 AUTHORS                                          | 113 +++++++-
 BUILDING.md                                      |  25 +-
 CHANGELOG.md                                     |   3 +-
 README.md                                        |  10 +-
 doc/api/buffer.md                                |   4 +-
 doc/api/child_process.md                         |   2 +
 doc/api/crypto.md                                | 228 +++++++++++++++
 doc/api/dgram.md                                 |  52 ++++
 doc/api/dns.md                                   |   2 +-
 doc/api/events.md                                |  10 +
 doc/api/fs.md                                    | 241 +++++++++++++++-
 doc/api/http.md                                  |  11 +
 doc/api/modules.md                               |  27 ++
 doc/api/net.md                                   |   9 +
 doc/api/os.md                                    |   2 +-
 doc/api/path.md                                  |  17 +-
 doc/api/process.md                               |  11 +-
 doc/api/readline.md                              |  15 +-
 doc/api/repl.md                                  |   2 +-
 doc/api/stream.md                                |   9 +-
 doc/api/timers.md                                |   6 +-
 doc/api/tls.md                                   |   2 +-
 doc/api/url.md                                   |   4 +-
 doc/api/util.md                                  |  39 ++-
 doc/api/zlib.md                                  |   2 +-
 doc/changelogs/CHANGELOG_V6.md                   | 130 +++++++++
 doc/ctc-meetings/2016-08-10.md                   | 281 ++++++++++++++++++
 doc/ctc-meetings/2016-08-17.md                   | 300 ++++++++++++++++++++
 doc/ctc-meetings/2016-08-31.md                   | 315 +++++++++++++++++++++
 doc/guides/timers-in-node.md                     |   2 +-
 doc/onboarding.md                                |  81 +++---
 doc/topics/blocking-vs-non-blocking.md           |   2 +-
 doc/topics/the-event-loop-timers-and-nexttick.md |  15 +-
 33 files changed, 1857 insertions(+), 115 deletions(-)

Tests & Benchmarks only:

   0.1% benchmark/assert/
   0.5% benchmark/fs/
   0.3% test/cctest/
   0.2% test/fixtures/clustered-server/
   0.6% test/fixtures/
   0.1% test/internet/
   0.6% test/known_issues/
  93.3% test/parallel/
   0.1% test/pseudo-tty/
   0.0% test/pummel/
   3.5% test/sequential/
   0.0% test/
 91 files changed, 2595 insertions(+), 1764 deletions(-)

Most active commit

Of the 113 commits, afb9917 was the most active:
(Excluding docs, deps, and tests.)

commit afb9917f16377312a5a22ef05886cda8323d9363
Author: not-an-aardvark <not-an-aardvark@users.noreply.github.com>
Date:   Tue Aug 23 22:49:22 2016 -0400

    crypto: add crypto.timingSafeEqual()

    Reinstate crypto.timingSafeEqual() which was reverted due to test
    issues. The flaky test issues are resolved in this new changeset.

    PR-URL: https://github.com/nodejs/node/pull/8304
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Anna Henningsen <anna@addaleax.net>

 doc/api/crypto.md                                |  13 ++
 lib/crypto.js                                    |   3 +
 src/node_crypto.cc                               |  17 +++
 test/sequential/test-crypto-timing-safe-equal.js | 166 +++++++++++++++++++++
 4 files changed, 199 insertions(+)

This is a regular and routine release for a Node.js Current 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.