Node.js v6.2.0 Release Brief - NodeSource

The NodeSource Blog

You have reached the beginning of time!

Node.js v6.2.0 Release Brief

This week’s Current release fixes some larger problems, including a module resolution issue from v6.0.0, and a long-standing readline keypress bug on windows.
Additionally, it adds a couple small features.

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

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

  • [226b9668db] - (SEMVER-MINOR) repl: copying tabs shouldn't trigger completion (Eugene Obrezkov) #5958
  • [ce2d5be4a1] - (SEMVER-MINOR) repl: exports Recoverable (Blake Embrey) #3488
  • [37736f4dad] - (SEMVER-MINOR) src: add O_NOATIME constant (Rich Trott) #6492
  • [95b7560d8e] - (SEMVER-MINOR) src,module: add --preserve-symlinks command line flag (James M Snell) #6537

The remaining significant commits are as follows:

  • [955c90d725] - benchmark,test,lib: remove extra spaces (Rich Trott) #6645
  • [9cd14ced09] - buffer: fix UCS2 indexOf for odd buffer length (Anna Henningsen) #6511
  • [a550ddbf3c] - buffer: fix needle length misestimation for UCS2 (Anna Henningsen) #6511
  • [6fc20c5a97] - buffer: fix lastIndexOf crash for overlong needle (Anna Henningsen) #6511
  • [44015754a3] - buffer: fix lastIndexOf index underflow issue (Anna Henningsen) #6511
  • [6032dc25cc] - build: add Make doc-only target (Jesse McCarthy) #3888
  • [3af9382a5d] - build: don't compile with -B, redux (Ben Noordhuis) #6650
  • [5149d66702] - build: fix DESTCPU detection for binary target (Richard Lau) #6310
  • [6eed6a3ac0] - build,test: fix build-addons dependency chain (Ben Noordhuis) #6652
  • [e0240ab592] - child_process: use /system/bin/sh on android (Ben Noordhuis) #6745
  • [e8c9f01cdd] - crypto: disable ssl compression at build time (Ben Noordhuis) #6582
  • [16159c23ed] - deps: limit regress/regress-crbug-514081 v8 test (Michael Dawson) #6678
  • [62690aa0be] - deps: update comment about PURIFY define (Ben Noordhuis) #6582
  • [d3132048cb] - handle_wrap: expose an isRefed() check to JS (Jeremiah Senkpiel) #5834
  • [f31a5ec34a] - handle_wrap: IsRefed() -> HasRef() (Jeremiah Senkpiel) #6546
  • [cc2af793d2] - Revert "handle_wrap: IsRefed -> Unrefed, no isAlive check" (Jeremiah Senkpiel) #6546
  • [2000072903] - handle_wrap: IsRefed -> Unrefed, no isAlive check (Jeremiah Senkpiel) #6204
  • [59666502c5] - intl: Don't crash if v8BreakIterator not available (Steven R. Loomis) #4253
  • [74582aa590] - lib: replace legacy uses of <i>defineGetter</i> (James M Snell) #6768
  • [559c2583e0] - lib,test: update in preparation for linter update (Rich Trott) #6498
  • [635357958d] - repl: create history file with mode 0600 (Carl Lei) #3394
  • [e3920d12ef] - src: fix check-imports.py linter errors (Sakthipriyan Vairamani) #6105
  • [bbf3b3ebbb] - src: simplify HandleWrap state tracking logic (Ben Noordhuis) #6395
  • [965274d384] - src: use libuv's refcounting directly (Ben Noordhuis) #6395
  • [316871f268] - src: fix -Wunused-variable compiler warning (Ben Noordhuis) #6129
  • [1def098b9f] - src: fix sporadic deadlock in SIGUSR1 handler (Ben Noordhuis) #5904
  • [477e61db9f] - src: don't use locale-sensitive strcasecmp() (Ben Noordhuis) #6582
  • [1e99643fc9] - src: remove unused #include statement (Ben Noordhuis) #6582
  • [62593bd44c] - src: remove pre-openssl 1.0 legacy code (Ben Noordhuis) #6582
  • [27c17ce9d1] - src: fix FindFirstCharacter argument alignment (Anna Henningsen) #6511
  • [bd4454fa0f] - src,lib: minor --debug-brk cleanup (Ali Ijaz Sheikh) #6599
  • [6d1527bb37] - util: fix invalid date output with util.inspect (Rumkin) #6504
  • [1d6c17efd7] - util: adhere to noDeprecation set at runtime (Anna Henningsen) #6683

Notable Changes

  • buffer: Fixed lastIndexOf() & indexOf() in various edge cases. (Anna Henningsen) #6511
  • child_process: The default shell is now /system/bin/sh on Android. (Ben Noordhuis) #6745
  • repl:
    • Pasting in code with tabs now works as expected and no longer triggers auto-completion. (Eugene Obrezkov) #5958
    • Recoverable errors are now exported in order to allow modules to use multi-line repl prompts. (Blake Embrey) #3488
  • src: Added the O_NOATIME constant for Linux filesystems. (Rich Trott) #6492
  • src,module: Added a --preserve-symlinks command line flag. (James M Snell) #6537
    • This also reverts the default module resolution regarding symlinks to it’s pre-v6.0.0 behavior.
  • util: process.noDeprecation now works again when set at runtime. (Anna Henningsen) #6683

Git Diffstats

(Showing the delta between v6.1.0 and v6.2.0, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 .eslintrc                      |   4 +
 Makefile                       |  63 ++++++++++---
 common.gypi                    |   3 -
 configure                      |  62 ++++++++++---
 lib/_http_server.js            | 124 ++++++++++++-------------
 lib/_tls_legacy.js             |  51 +++++++---
 lib/child_process.js           |   7 +-
 lib/crypto.js                  |  21 +++--
 lib/internal/bootstrap_node.js |  12 ++-
 lib/internal/process.js        |  15 +++
 lib/internal/readline.js       |   1 +
 lib/internal/repl.js           |   7 +-
 lib/internal/util.js           |   3 +-
 lib/module.js                  |  28 +++---
 lib/path.js                    |   4 +-
 lib/querystring.js             |   2 +-
 lib/readline.js                |  29 ++++--
 lib/repl.js                    |   3 +-
 lib/tls.js                     |   2 +-
 lib/util.js                    |  32 ++++---
 src/atomic-polyfill.h          |  18 ----
 src/handle_wrap.cc             |  44 ++++-----
 src/handle_wrap.h              |  14 +--
 src/node.cc                    | 167 +++++++++++++++++++++------------
 src/node_buffer.cc             |  14 ++-
 src/node_config.cc             |   5 +-
 src/node_constants.cc          |   4 +
 src/node_crypto.cc             |  27 +-----
 src/node_http_parser.cc        |   6 --
 src/node_internals.h           |   5 +
 src/node_version.h             |   2 +-
 src/pipe_wrap.cc               |   1 +
 src/process_wrap.cc            |   1 +
 src/signal_wrap.cc             |   1 +
 src/string_search.h            |  14 +--
 src/tcp_wrap.cc                |   1 +
 src/timer_wrap.cc              |   1 +
 src/tty_wrap.cc                |   1 +
 src/udp_wrap.cc                |   1 +
 src/util-inl.h                 |  12 +++
 src/util.h                     |   6 ++
 tools/gyp_node.py              |   7 ++
 tools/icu/icu-generic.gyp      | 194 ++++++++++++++++++++++++---------------
 tools/icu/shrink-icu-src.py    | 126 +++++++++++++++++++++++++
 tools/js2c.py                  |  23 -----
 tools/test.py                  |  10 +-
 vcbuild.bat                    |  10 +-
 47 files changed, 779 insertions(+), 409 deletions(-)

Deps only:

  10.2% deps/icu-small/source/common/unicode/
  30.3% deps/icu-small/source/common/
   9.7% deps/icu-small/source/data/in/
  10.6% deps/icu-small/source/i18n/unicode/
  32.5% deps/icu-small/source/i18n/
   1.1% deps/icu-small/source/io/
   1.5% deps/icu-small/source/tools/genrb/
   2.4% deps/icu-small/source/tools/toolutil/
   0.6% deps/icu-small/source/tools/
   0.7% deps/
 988 files changed, 476854 insertions(+), 1340 deletions(-)

Docs only:

 .github/ISSUE_TEMPLATE.md           |   13 +-
 .github/PULL_REQUEST_TEMPLATE.md    |   14 +-
 BUILDING.md                         |   63 +-
 CHANGELOG.md                        | 6078 ++++++---------------------------
 README.md                           |   17 +-
 deps/uv/README.md                   |    5 +
 doc/CHANGELOG.ARCHIVE.md            | 5377 -----------------------------
 doc/api/addons.md                   |   26 +-
 doc/api/assert.md                   |   42 +
 doc/api/buffer.md                   |  108 +-
 doc/api/child_process.md            |   20 +-
 doc/api/cli.md                      |   42 +-
 doc/api/dgram.md                    |    3 +
 doc/api/documentation.md            |    2 +-
 doc/api/events.md                   |   23 +-
 doc/api/fs.md                       |   24 +-
 doc/api/modules.md                  |   29 +-
 doc/api/net.md                      |   15 +-
 doc/api/os.md                       |   48 +
 doc/api/process.md                  |  142 +
 doc/api/querystring.md              |   12 +
 doc/api/readline.md                 |   13 +-
 doc/api/repl.md                     |   29 +-
 doc/api/stream.md                   |  393 ++-
 doc/api/string_decoder.md           |    9 +
 doc/api/url.md                      |    9 +
 doc/api/util.md                     |   11 +-
 doc/api/v8.md                       |   15 +-
 doc/api/vm.md                       |    4 +-
 doc/api/zlib.md                     |  114 +-
 doc/api_assets/style.css            |   23 +-
 doc/changelogs/CHANGELOG_ARCHIVE.md | 3799 +++++++++++++++++++++
 doc/changelogs/CHANGELOG_IOJS.md    | 2852 ++++++++++++++++
 doc/changelogs/CHANGELOG_V010.md    |  788 +++++
 doc/changelogs/CHANGELOG_V012.md    |  343 ++
 doc/changelogs/CHANGELOG_V4.md      | 1669 +++++++++
 doc/changelogs/CHANGELOG_V5.md      | 1701 +++++++++
 doc/changelogs/CHANGELOG_V6.md      |  633 ++++
 doc/ctc-meetings/2016-05-04.md      |  192 ++
 doc/node.1                          |   20 +-
 doc/onboarding-extras.md            |   44 +-
 doc/releases.md                     |   38 +-
 test/fixtures/doc_with_yaml.md      |   30 +
 tools/icu/README.md                 |   78 +
 44 files changed, 13971 insertions(+), 10939 deletions(-)

Tests & Benchmarks only:

   0.4% benchmark/buffers/
   0.0% test/addons/async-hello-world/
   0.0% test/addons/at-exit/
   0.2% test/addons/buffer-free-callback/
   0.0% test/addons/heap-profiler/
   0.0% test/addons/hello-world-function-export/
   0.0% test/addons/hello-world/
   0.0% test/addons/load-long-path/
   3.3% test/addons/make-callback-recurse/
   0.0% test/addons/make-callback/
   0.0% test/addons/null-buffer-neuter/
   0.0% test/addons/repl-domain-abort/
   2.9% test/addons/stringbytes-external-exceed-max/
   2.1% test/addons/symlinked-module/
   0.6% test/cctest/
   2.2% test/debugger/
   0.1% test/disabled/
   7.0% test/doctool/
   0.0% test/fixtures/
   0.0% test/gc/
   2.6% test/internet/
   1.4% test/known_issues/
  70.1% test/parallel/
   3.1% test/pummel/
   1.1% test/sequential/
   0.1% test/timers/
   1.6% test/
 324 files changed, 1709 insertions(+), 776 deletions(-)

Most active commit

Of the 121 commits, 7a6d2ad was the most active:
(Excluding docs, npm, eslint, and tests.)

commit 7a6d2ad181d878aee89fad6d775c94f2067a031f
Author: Steven R. Loomis <srloomis@us.ibm.com>
Date:   Fri Apr 8 19:03:16 2016 -0700

    deps: Intl: Check in "small-icu" 57.1

    * this commit has "small" ICU 57.1.
    See other related commit for tools to generate this commit.

    Fixes: https://github.com/nodejs/node/issues/3476
    PR-URL: https://github.com/nodejs/node/pull/6088
    Reviewed-By: James M Snell <jasnell@gmail.com>

  10.2% deps/icu-small/source/common/unicode/
  30.5% deps/icu-small/source/common/
   9.7% deps/icu-small/source/data/in/
  10.6% deps/icu-small/source/i18n/unicode/
  32.7% deps/icu-small/source/i18n/
   4.6% deps/icu-small/source/tools/
 893 files changed, 475138 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.

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

Start for Free