The Nodesource Blog

#shoptalk Subscribe

Node.js v7.1.0 Release Brief

This first release to the v7.x release line comes with upgraded dependencies, a couple new APIs, and a plenty of fixes.

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

  • 26 were documentation-only commits.
  • 35 only modify tests and 5 only affect internal tooling.
  • 3 dependencies were upgraded:
  • One patch was backported onto c-ares: [OpenBSD fix] - (Aaron Bieber) #9232

8 commits were tagged as semver-minor, adding new functionality and justifying the jump to v7.1.0:

  • [0939edd4ed] - (SEMVER-MINOR) buffer: add buffer.transcode (James M Snell) #9038
  • [7b0e93738b] - (SEMVER-MINOR) child_process: add public API for IPC channel (cjihrig) #9322
  • [3d1766f492] - (SEMVER-MINOR) deps: Intl: ICU 58 bump - small icu (BIG COMMIT) (Steven R. Loomis) #9234
  • [827000ee62] - (SEMVER-MINOR) deps: Intl: ICU 58 bump: configure/LICENSE/docs (Steven R. Loomis) #9234
  • [9940666c1b] - (SEMVER-MINOR) intl: Add more versions from ICU (Steven R. Loomis) #9266
  • [a5c62cb4f2] - (SEMVER-MINOR) readline: use icu based string width calculation (James M Snell) #9040
  • [b1ef638de3] - (SEMVER-MINOR) src: default --icu_case_mapping on as a v8 option (Steven R. Loomis) #9454
  • [60a5b515b8] - (SEMVER-MINOR) src: add NODE_PRESERVE_SYMLINKS environment variable (Marc Udoff) #8749

The remaining significant commits are as follows:

  • [dafdb7b069] - benchmark: add trailing newline for consistency (Roman Reiss) #9410
  • [fab8eb660f] - benchmark: add microbenchmarks for ES Map (Rod Vagg) #7581
  • [44792f83bf] - benchmark,lib,test,tools: remove unneeded . escape (Rich Trott) #9449
  • [c70c96a3e2] - buffer: coerce offset using Math.trunc() (cjihrig) #9341
  • [212da12f45] - buffer: use correct name for custom inspect symbol (Charmander) #9289
  • [ceec520aef] - build: add MAKEFLAGS="-j1" to node-gyp (Daniel Bevenius) #9450
  • [1109d0b244] - build: reduce noise from doc target (Daniel Bevenius) #9457
  • [90aac7ca28] - build: start comments at beginning of line (Sakthipriyan Vairamani (thefourtheye)) #9375
  • [b51db7120e] - build: make node-gyp output silent (Sakthipriyan Vairamani (thefourtheye)) #8990
  • [d8eaa14c2d] - build: prioritise --shared-X-Y over pkg-config (Rod Vagg) #9368
  • [f7d8481ee2] - build: use wxneeded on openbsd (Aaron Bieber) #9232
  • [4e3731c7e7] - child_process: remove unreachable code (cjihrig) #9307
  • [d573acf96f] - child_process: remove unreachable execSync() code (cjihrig) #9209
  • [355041960d] - events: remove unnecessary checks (cjihrig) #9330
  • [0ce0abf6cb] - events,test: fix TypeError in EventEmitter warning (jseagull) #9021
  • [6f35e4421a] - http: add debug message for invalid header value (Evan Lucas) #9195
  • [173b088e1a] - inspector: do not prompt to use localhost (Eugene Ostroukhov) #9451
  • [939d1023c2] - inspector: switch to new inspector APIs (Eugene Ostroukhov) #9028
  • [2e7b078e7b] - inspector: fix request path nullptr dereference (Ben Noordhuis) #9184
  • [5bfefa6063] - lib: change == to === in linkedlist (jedireza) #9362
  • [d24bd20d2b] - lib: make String(global) === '\[object global\]' (Anna Henningsen) #9279
  • [9372aee4a3] - lib: fix beforeExit not working with -e (Ben Noordhuis) #8821
  • [c231130e06] - module: skip directories known not to exist (Ben Noordhuis) #9196
  • [d09eb9c6b2] - net: name anonymous functions (Pedro Victor) #9357
  • [60461d2d90] - repl: refactor lib/repl.js (Rich Trott) #9374
  • [071836aa42] - repl: name anonymous functions (Pedro Victor) #9356
  • [0b9d80a037] - repl: don’t write to input stream in editor mode (Anna Henningsen) #9207
  • [1c59cefc44] - repl: make key of repl.write() optional always (Anna Henningsen) #9207
  • [0c236d1d36] - src: replace SetNamedPropertyHandler() (AnnaMag) #9062
  • [5ab172ee8f] - src: fix use of uninitialized variable (James M Snell) #9281
  • [57c0a9b5dc] - src: remove unused function (Brian White) #9243
  • [08e12c7809] - src: remove superfluous env_string string (Ben Noordhuis) #9213
  • [c342bda49e] - src: make cross-context MakeCallback() calls work (Ben Noordhuis) #9221
  • [f2a3b24611] - src: clean up program/isolate/env init logic (Ben Noordhuis) #9224
  • [9e753ba782] - src: simplify code, remove NodeInstanceData (Ben Noordhuis) #9224
  • [8b53f3c41c] - src: speed up module loading, don't resize buffer (Ben Noordhuis) #9132
  • [362c307f38] - src: speed up module loading, skip EOF read (Ben Noordhuis) #9132
  • [85a9295813] - src,tools: speed up startup by 2.5% (Ben Noordhuis) #5458
  • [4f0596fb03] - util: use template strings (Alejandro Oviedo Garcia) #9120
  • [b083086ff2] - vm: name anonymous functions (solebox) #9388

Notable Changes

  • buffer: Added buffer.transcode() for transcoding a buffer's content from one encoding to another. (James M Snell) #9038
    • Primarily uses ICU under the hood to ensure correctness.
  • child_process: Added a public API for accessing the IPC channel if it exists. (cjihrig) #9322
  • icu: Added cldr, tz, and unicode properties to process.versions. (Steven R. Loomis) #9266
  • lib: Made String(global) once again return '\[object global\]'. (Anna Henningsen) #9279
  • readline: String width calculation now uses ICU under the hood. (James M Snell) #9040
  • src:
    • Added detection for a NODE_PRESERVE_SYMLINKS environment variable that has the same effect as the --preserve-symlinks flag (Marc Udoff) #8749
    • Fixed String#toLocaleUpperCase() and String#toLocaleLowerCase(). (Steven R. Loomis)

Git Diffstats

(Showing the delta between v7.0.0 and v7.1.0, ignoring deps/npm.)

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

 .editorconfig                  |   4 +
 .eslintrc                      |   1 +
 Makefile                       |  23 +-
 common.gypi                    |   3 +
 configure                      |  30 +--
 lib/_http_outgoing.js          |   3 +
 lib/_stream_writable.js        |   1 +
 lib/_tls_wrap.js               |   2 +-
 lib/buffer.js                  |  14 +-
 lib/child_process.js           |   4 +-
 lib/events.js                  |  10 +-
 lib/internal/bootstrap_node.js |  40 +++-
 lib/internal/buffer.js         |  30 +++
 lib/internal/child_process.js  |  32 +--
 lib/internal/linkedlist.js     |   4 +-
 lib/internal/process/stdio.js  |   4 +-
 lib/internal/readline.js       | 160 +++++++-------
 lib/module.js                  |   6 +-
 lib/net.js                     |  10 +-
 lib/readline.js                |   8 +
 lib/repl.js                    |  37 ++--
 lib/util.js                    |  56 ++---
 lib/vm.js                      |  10 +-
 lib/zlib.js                    |   3 +-
 node.gyp                       |  14 +-
 src/env.cc                     |   2 -
 src/env.h                      |   1 -
 src/inspector_agent.cc         | 176 ++++++++++------
 src/node.cc                    | 295 +++++++++++++-------------
 src/node_buffer.cc             |  55 ++---
 src/node_file.cc               |  20 +-
 src/node_i18n.cc               | 438 +++++++++++++++++++++++++++++++++++++++
 src/node_internals.h           |  81 --------
 src/node_javascript.cc         |  49 +++--
 src/node_version.h             |   2 +-
 src/util.h                     |  27 +++
 36 files changed, 1098 insertions(+), 557 deletions(-)

Tools only:

 tools/icu/README.md                           |   15 +-
 tools/icu/icu-generic.gyp                     |    4 +-
 tools/icu/patches/58/source/i18n/digitlst.cpp | 1095 +++++++++++++++++++++++
 tools/icu/shrink-icu-src.py                   |   17 +-
 tools/js2c.py                                 |  164 +---
 tools/release.sh                              |    2 +-
 tools/test.py                                 |    5 +-
 7 files changed, 1154 insertions(+), 148 deletions(-)

Deps only:

   0.0% deps/cares/include/
   0.7% deps/icu-small/source/common/unicode/
  13.6% deps/icu-small/source/common/
  57.1% deps/icu-small/source/data/in/
   1.0% deps/icu-small/source/i18n/unicode/
   5.4% deps/icu-small/source/i18n/
   0.0% deps/icu-small/source/io/unicode/
   0.0% deps/icu-small/source/io/
   0.0% deps/icu-small/source/stubdata/
   0.0% deps/icu-small/source/tools/genccode/
   0.0% deps/icu-small/source/tools/gencmn/
   0.0% deps/icu-small/source/tools/genrb/
   0.0% deps/icu-small/source/tools/icupkg/
   0.0% deps/icu-small/source/tools/pkgdata/
   0.1% deps/icu-small/source/tools/toolutil/
   0.0% deps/icu-small/
   0.0% deps/uv/docs/src/
   0.0% deps/uv/include/
   0.2% deps/uv/src/unix/
   0.2% deps/uv/src/win/
   0.0% deps/uv/src/
   0.4% deps/uv/test/
   0.2% deps/uv/
   0.1% deps/v8_inspector/include/
   0.3% deps/v8_inspector/src/inspector/build/
   8.0% deps/v8_inspector/src/inspector/
   0.7% deps/v8_inspector/third_party/WebKit/Source/platform/inspector_protocol/lib/
   0.3% deps/v8_inspector/third_party/WebKit/Source/platform/inspector_protocol/templates/
   0.5% deps/v8_inspector/third_party/WebKit/Source/platform/inspector_protocol/
   1.8% deps/v8_inspector/third_party/v8_inspector/platform/inspector_protocol/
   0.1% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/build/
   0.1% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/public/
   8.0% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/
   0.0% deps/v8_inspector/third_party/v8_inspector/platform/
   0.0% deps/v8_inspector/third_party/v8_inspector/
   0.0% deps/v8_inspector/
 1215 files changed, 41150 insertions(+), 34993 deletions(-)

Docs only:

 BUILDING.md                            |   2 +-
 CHANGELOG.md                           |   3 +-
 CONTRIBUTING.md                        |  65 ++++++-
 GOVERNANCE.md                          |  17 +-
 LICENSE                                |  93 +++++----
 README.md                              |   4 +-
 WORKING_GROUPS.md                      |  23 ++-
 benchmark/README.md                    |   2 +-
 doc/api/buffer.md                      |  55 ++++--
 doc/api/child_process.md               |  11 ++
 doc/api/cli.md                         |   7 +
 doc/api/crypto.md                      |  12 +-
 doc/api/fs.md                          |  13 +-
 doc/api/globals.md                     |   9 +-
 doc/api/http.md                        |   2 +-
 doc/api/https.md                       |   4 +-
 doc/api/modules.md                     |   6 +-
 doc/api/process.md                     |  28 ++-
 doc/api/tls.md                         |  12 +-
 doc/api/util.md                        |  30 ++-
 doc/api/zlib.md                        |   6 +-
 doc/changelogs/CHANGELOG_V7.md         | 138 ++++++++++++++
 doc/ctc-meetings/2016-09-28.md         | 303 ++++++++++++++++++++++++++++++
 doc/ctc-meetings/2016-10-05.md         | 312 +++++++++++++++++++++++++++++++
 doc/ctc-meetings/2016-10-12.md         | 157 ++++++++++++++++
 doc/ctc-meetings/2016-10-19.md         | 202 ++++++++++++++++++++
 doc/ctc-meetings/2016-10-26.md         | 151 +++++++++++++++
 doc/guides/building-node-with-ninja.md |   2 +-
 doc/guides/writing_tests.md            |  53 ++++--
 tools/icu/README.md                    |  15 +-
 30 files changed, 1588 insertions(+), 149 deletions(-)

Tests & Benchmarks only:

   2.8% benchmark/es/
   0.1% benchmark/
   0.3% test/addons/make-callback/
   0.0% test/fixtures/packages/index/
   3.4% test/inspector/
   2.5% test/internet/
   3.9% test/message/
  50.6% test/parallel/
   6.5% test/pummel/
  29.3% test/sequential/
   0.1% test/
 75 files changed, 1398 insertions(+), 715 deletions(-)

Most active commit

Of the 117 commits, 939d102 was the most active:
(Excluding docs, npm, eslint, and tests.)

commit 939d1023c20272a502b02147aa231d596a45d4e9
Author: Eugene Ostroukhov <eostroukhov@chromium.org>
Date:   Wed Oct 5 15:11:48 2016 -0700


    inspector: switch to new inspector APIs

    This implementation switches to V8 inspector from the V8 repository. The
    new inspector integration is now using final APIs and exposes a stable
    wire protocol, removing the need for pointing the users to specific
    devtools version.

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


  40.9% deps/v8_inspector/src/inspector/
   3.7% deps/v8_inspector/third_party/WebKit/Source/platform/inspector_protocol/lib/
   4.5% deps/v8_inspector/third_party/WebKit/Source/platform/inspector_protocol/
   8.9% deps/v8_inspector/third_party/v8_inspector/platform/inspector_protocol/
  40.4% deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/
 217 files changed, 21662 insertions(+), 21671 deletions(-)

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.