The Nodesource Blog

Node.js 4.7.1 Release Brief

This routine maintenance release for the Node 4 LTS branch was scheduled two months ago in LTS#159 and contains largely docs fixes, test improvements, and minor bugfixes.

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

  • 34 were documentation-only commits.
  • 117 only modify tests and 7 only affect internal tooling.
  • 1 commit was backported from upstream GYP:

The remaining significant commits are as follows:

  • [c5f82b8421] - assert: fix deepEqual/deepStrictEqual on equivalent typed arrays (Feross Aboukhadijeh) #8002
  • [60883de30f] - async_wrap: call destroy() callback in uv_idle_t (Trevor Norris)
  • [28dbc460c6] - async_wrap: make Initialize a static class member (Trevor Norris)
  • [bb05cd13db] - async_wrap: mode constructor/destructor to .cc (Trevor Norris)
  • [b1075f6193] - benchmark: split timers benchmark and refactor (Rich Trott) #9497
  • [7b4268b889] - benchmark,lib,test,tools: remove unneeded . escape (Rich Trott) #9449
  • [54f2ce8ea0] - build: prioritise --shared-X-Y over pkg-config (Rod Vagg) #9368
  • [61d377ddcd] - build: Make configure file parseable on python3 (kalrover) #9657
  • [38e0f95d24] - build: add MAKEFLAGS="-j1" to node-gyp (Daniel Bevenius) #9450
  • [d1b6407395] - build: make node-gyp output silent (Sakthipriyan Vairamani (thefourtheye)) #8990
  • [ae2eff2997] - build: start comments at beginning of line (Sakthipriyan Vairamani (thefourtheye)) #9375
  • [6f1f955b33] - build: default to ppc64 on AIX (Gibson Fahnestock) #9645
  • [f8d4577762] - build: Add option to compile for coverage reports (Wayne Andrews) #9463
  • [f2b00985f0] - build: add shared library support to AIX build (Stewart Addison) #9675
  • [e2c5f41ddf] - crypto: use SSL_get_servername. (Adam Langley) #9347
  • [724910a991] - debugger: refactor _debugger.js (Rich Trott) #9860
  • [65e134ff12] - meta: whitelist dotfiles in .gitignore (Claudio Rodriguez) #8016
  • [698bf2e829] - repl: don't override all internal repl defaults (cjihrig) #7826
  • [3d45b35f73] - repl: refactor lib/repl.js (Rich Trott) #9374
  • [759e8fdd18] - timers: bail from intervals if _repeat is bad (Jeremiah Senkpiel) #10365
  • [553d95da15] - timers: use consistent checks for canceled timers (Jeremiah Senkpiel) #9685

Notable Changes

  • build: Shared library support is now working for AIX builds. (Stewart Addison) #9675
  • repl: Passing options to the repl will no longer overwrite defaults. (cjihrig) #7826
  • timers: Re-canceling previously cancelled intervals will no longer throw. (Jeremiah Senkpiel) #9685

Git Diffstats

(Showing the delta between 4.7.0 and 4.7.1, ignoring deps/npm.)

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

 .editorconfig        |   4 ++
 .gitignore           |  18 ++++++++-
 Makefile             |  32 +++++++++------
 configure            | 106 +++++++++++++++++++++++++++++--------------------
 lib/_debugger.js     |  54 +++++++++++++++----------
 lib/_tls_wrap.js     |   4 +-
 lib/assert.js        |   9 ++++-
 lib/internal/repl.js |   7 ++--
 lib/repl.js          |  20 +++++-----
 lib/timers.js        |  23 ++++++++---
 node.gyp             |  23 ++++++++++-
 src/async-wrap-inl.h |  71 ---------------------------------
 src/async-wrap.cc    | 105 ++++++++++++++++++++++++++++++++++++++++++++++--
 src/async-wrap.h     |  17 +++++---
 src/env-inl.h        |  15 +++++++
 src/env.h            |   8 ++++
 src/node.cc          |   3 ++
 src/node_crypto.cc   |  19 ++++-----
 src/node_version.h   |   2 +-
 19 files changed, 344 insertions(+), 196 deletions(-)

Tools only:

 tools/run-valgrind.py | 66 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 65 insertions(+), 1 deletion(-)

Deps only:

 tools/gyp/AUTHORS                     |  7 ++++---
 tools/gyp/PRESUBMIT.py                | 26 ++++++++++++++------------
 tools/gyp/pylib/gyp/generator/make.py | 10 ++++++++--
 3 files changed, 26 insertions(+), 17 deletions(-)

Docs only:

   1.8% doc/api/
   0.0% doc/api_assets/
  39.1% doc/ctc-meetings/
   5.1% doc/guides/
   0.0% doc/topics/
  21.5% doc/tsc-meetings/io.js/
  23.8% doc/tsc-meetings/
   0.0% doc/
 88 files changed, 896 insertions(+), 10471 deletions(-)

Tests & Benchmarks only:

   1.0% benchmark/timers/
   0.1% test/addons/async-hello-world/
   0.1% test/addons/at-exit/
   0.1% test/addons/buffer-free-callback/
   0.1% test/addons/heap-profiler/
   0.1% test/addons/hello-world-function-export/
   0.1% test/addons/hello-world/
   0.2% test/addons/load-long-path/
   0.0% test/addons/make-callback-recurse/
   0.0% test/addons/make-callback/
   0.7% test/addons/new-target/
   0.1% test/addons/openssl-binding/
   0.7% test/addons/stringbytes-external-exceed-max/
   0.0% test/cctest/
   0.0% test/debugger/
  94.0% test/parallel/
   0.0% test/pseudo-tty/
   1.1% test/sequential/
   0.6% test/
 143 files changed, 1741 insertions(+), 1409 deletions(-)

Most active commit

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

commit bb05cd13db4fb58963b86377d4543407be2528bc
Author: Trevor Norris <trev.norris@gmail.com>
Date:   Tue Nov 22 17:01:02 2016 -0700

    async_wrap: mode constructor/destructor to .cc

    The constructor and destructor shouldn't have been placed in the -inl.h
    file from the beginning.

    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

 src/async-wrap-inl.h | 71 --------------------------------------------------
 src/async-wrap.cc    | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/async-wrap.h     | 10 +++----
 3 files changed, 76 insertions(+), 76 deletions(-)

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