The Nodesource Blog

#shoptalk Subscribe

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 __defineGetter__ (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.