The Nodesource Blog

#shoptalk Subscribe

Node.js v4.4.1 Release Brief

This LTS release is the result of a buildup of regular maintenance commits.
A minor OpenSSL config update is the only thing of note beyond the usual stability improvements and bug 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 113 commits:

  • 56 were documentation-only commits.
  • 16 only modify tests and 11 only affect internal tooling.
  • One v8 patch was backported:

The remaining significant commits are as follows:

  • [df283f8a03] - benchmark: fix linting issues (Rich Trott) #5773
  • [c901741c60] - benchmark: use strict mode (Rich Trott) #5773
  • [4be2065dbc] - benchmark: refactor to eliminate redeclared vars (Rich Trott) #5773
  • [ddac368533] - benchmark: fix lint errors (Rich Trott) #5773
  • [03b20a73b9] - benchmark: add benchmark for buffer.compare() (Rich Trott) #5441
  • [b816044845] - buffer: remove duplicated code in fromObject() (HUANG Wei) #4948
  • [067ce9b905] - build: don't install github templates (Johan Bergström) #5612
  • [a1772dc515] - build: update Node.js logo on OSX installer (Rod Vagg) #5401
  • [9058fc0383] - build: correctly detect clang version (Stefan Budeanu) #5553
  • [1165ecc6f7] - build: update Node.js logo on Win installer (Robert Jefe Lindstaedt) #5531
  • [4990ddad72] - build: remove --quiet from eslint invocation (firedfox) #5519
  • [46a5d519dd] - build: skip msi build if WiX is not found (Tsarevich Dmitry) #5220
  • [dac4e64491] - build: add option to select VS version (julien.waechter) #4645
  • [97e95d04c2] - crypto: PBKDF2 works with int not ssize_t (Fedor Indutny) #5397
  • [57b02e6a3e] - debugger: remove unneeded callback check (Rich Trott) #5319
  • [f982632f90] - http: remove old, confusing comment (Brian White) #5233
  • [ca5d7a8bb6] - http: remove unnecessary check (Brian White) #5233
  • [2ce83bd8f9] - http,util: fix typos in comments (Alexander Makarenko) #5279
  • [b690916e5a] - lib: freelist: use .pop() for allocation (Anton Khlynovskiy) #2174
  • [e7f45f0a17] - repl: handle quotes within regexp literal (Prince J Wesley) #5117
  • [7c3b844f78] - src: return UV_EAI_NODATA on empty lookup (cjihrig) #4715
  • [242a65e930] - stream: prevent object map change in TransformState (Evan Lucas) #5032
  • [fb5ba6b928] - stream: prevent object map change in ReadableState (Evan Lucas) #4761
  • [04db9efd78] - stream: fix no data on partial decode (Brian White) #5226
  • [cc0e36ff98] - string_decoder: fix performance regression (Brian White) #5134
  • [a673c9ae2d] - tls: fix assert in context._external accessor (Ben Noordhuis) #5521
  • [dff7091fce] - url: group slashed protocols by protocol name (nettofarah) #5380
  • [0e97a3ea51] - win,build: support Visual C++ Build Tools 2015 (João Reis) #5627

Notable Changes

  • build:
    • Updated Logos for the OS X + Windows installers.
    • New option to select your Visual Studio version in the Windows installer. (julien.waechter) #4645
    • Support Visual C++ Build Tools 2015 (João Reis) #5627
  • openssl: Updated OpenSSL config to hard-disable several ciphers included in EXPORT and LOW. (Shigeki Ohtsu) #5630
    • This was intended to be in the last OpenSSL upgrade, but was missed.
    • These ciphers are already disabled by default.
  • tools: Gyp now works on OS X without XCode. (Shigeki Ohtsu) #1325

Git Diffstats

(Showing the delta between v4.4.0 and v4.4.1, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 .eslintrc                | 39 ++++++++++++--------
 Makefile                 |  8 +++--
 configure                | 14 ++++++--
 lib/.eslintrc            |  3 ++
 lib/_debugger.js         |  2 +-
 lib/_http_incoming.js    |  4 ---
 lib/_http_outgoing.js    |  3 +-
 lib/_http_server.js      |  2 +-
 lib/_stream_readable.js  | 38 ++++++++++++--------
 lib/_stream_transform.js |  1 +
 lib/buffer.js            | 35 +++++++-----------
 lib/internal/freelist.js |  2 +-
 lib/repl.js              | 16 +++++++--
 lib/string_decoder.js    |  5 +--
 lib/timers.js            |  2 +-
 lib/url.js               |  8 ++---
 lib/util.js              |  4 +--
 src/cares_wrap.cc        |  4 +++
 src/node_crypto.cc       | 88 +++++++++++++++++++++++++---------------------
 src/node_version.h       |  2 +-
 tools/cpplint.py         |  3 --
 tools/doc/html.js        |  2 +-
 tools/test.py            |  9 +++--
 vcbuild.bat              | 18 +++++++---
 24 files changed, 183 insertions(+), 129 deletions(-)

Deps only:

 deps/openssl/config/archs/BSD-x86/opensslconf.h   | 12 ++++
 .../openssl/config/archs/BSD-x86_64/opensslconf.h | 12 ++++
 deps/openssl/config/archs/VC-WIN32/opensslconf.h  | 12 ++++
 deps/openssl/config/archs/VC-WIN64A/opensslconf.h | 12 ++++
 deps/openssl/config/archs/aix-gcc/opensslconf.h   | 12 ++++
 deps/openssl/config/archs/aix64-gcc/opensslconf.h | 12 ++++
 .../config/archs/darwin-i386-cc/opensslconf.h     | 12 ++++
 .../config/archs/darwin64-x86_64-cc/opensslconf.h | 12 ++++
 .../config/archs/linux-aarch64/opensslconf.h      | 12 ++++
 .../config/archs/linux-armv4/opensslconf.h        | 12 ++++
 deps/openssl/config/archs/linux-elf/opensslconf.h | 12 ++++
 deps/openssl/config/archs/linux-ppc/opensslconf.h | 12 ++++
 .../config/archs/linux-ppc64/opensslconf.h        | 12 ++++
 deps/openssl/config/archs/linux-x32/opensslconf.h | 12 ++++
 .../config/archs/linux-x86_64/opensslconf.h       | 12 ++++
 .../config/archs/solaris-x86-gcc/opensslconf.h    | 12 ++++
 .../archs/solaris64-x86_64-gcc/opensslconf.h      | 12 ++++
 deps/openssl/openssl.gyp                          |  1 +
 deps/openssl/openssl.gypi                         |  6 +-
 deps/v8/src/compiler/ppc/code-generator-ppc.cc    | 62 ++++++++++-----------
 tools/gyp/PRESUBMIT.py                            |  9 ++-
 tools/gyp/gyp_main.py                             | 12 ++--
 tools/gyp/pylib/gyp/MSVSSettings.py               |  5 +-
 tools/gyp/pylib/gyp/MSVSSettings_test.py          |  2 +-
 tools/gyp/pylib/gyp/common.py                     | 11 +++-
 tools/gyp/pylib/gyp/generator/analyzer.py         |  4 +-
 tools/gyp/pylib/gyp/generator/make.py             | 18 +++---
 tools/gyp/pylib/gyp/generator/msvs.py             | 13 +++++
 tools/gyp/pylib/gyp/generator/ninja.py            | 19 +++++--
 tools/gyp/pylib/gyp/input.py                      | 20 ++++---
 tools/gyp/pylib/gyp/msvs_emulation.py             | 10 ++++
 tools/gyp/pylib/gyp/win_tool.py                   |  4 +-
 tools/gyp/pylib/gyp/xcode_emulation.py            | 18 +++++-
 33 files changed, 340 insertions(+), 78 deletions(-)

Docs only:

 BUILDING.md                            | 246 +++++++++++++++++++++++++++++
 CHANGELOG.md                           | 135 ++++++++++++++++
 CODE_OF_CONDUCT.md                     |  20 ++-
 COLLABORATOR_GUIDE.md                  |   7 +-
 README.md                              | 256 ++-----------------------------
 ROADMAP.md                             |   4 +-
 WORKING_GROUPS.md                      |  13 ++
 doc/api/addons.markdown                |  45 +++---
 doc/api/buffer.markdown                |  27 ++--
 doc/api/child_process.markdown         |   7 +-
 doc/api/cluster.markdown               |   3 +-
 doc/api/crypto.markdown                |   8 +-
 doc/api/dns.markdown                   |   2 +-
 doc/api/documentation.markdown         |   7 +
 doc/api/errors.markdown                |   5 +-
 doc/api/events.markdown                |  37 +++++
 doc/api/fs.markdown                    |  20 ++-
 doc/api/http.markdown                  |   4 +-
 doc/api/net.markdown                   |  14 +-
 doc/api/path.markdown                  | 114 +++++++-------
 doc/api/process.markdown               |  73 +++++----
 doc/api/stream.markdown                |   8 +-
 doc/api/tls.markdown                   |  36 ++---
 doc/api/v8.markdown                    |   2 +-
 doc/api/zlib.markdown                  |  27 ++--
 doc/api_assets/style.css               |  13 +-
 doc/full-white-stripe.jpg              | Bin 3636 -> 9483 bytes
 doc/guides/building-node-with-ninja.md |  39 +++++
 doc/onboarding-extras.md               | 105 +++++++++++++
 doc/onboarding.md                      | 199 ++++++++++++++++++++++++
 doc/osx_installer_logo.png             | Bin 16640 -> 2521 bytes
 doc/releases.md                        |  12 +-
 doc/thin-white-stripe.jpg              | Bin 3099 -> 6525 bytes
 doc/topics/blocking-vs-non-blocking.md | 143 +++++++++++++++++
 test/README.md                         | 117 ++++++++++++++
 35 files changed, 1307 insertions(+), 441 deletions(-)

Tests & Benchmarks only:

   2.9% benchmark/arrays/
   9.6% benchmark/buffers/
   2.7% benchmark/crypto/
   1.9% benchmark/events/
   0.7% benchmark/fs/
   2.8% benchmark/http/
   0.1% benchmark/misc/function_call/
   7.0% benchmark/misc/
   1.2% benchmark/net/
   0.4% benchmark/path/
   1.2% benchmark/querystring/
   3.1% benchmark/tls/
   0.0% benchmark/url/
   0.4% benchmark/util/
  25.7% benchmark/
   0.7% test/debugger/
   0.5% test/internet/
   1.8% test/known_issues/
  29.2% test/parallel/
   5.3% test/sequential/
   0.2% test/timers/
   1.4% test/
 125 files changed, 712 insertions(+), 389 deletions(-)

Most active commit

Of the 113 commits, 19ae308 was the most active:
(Excluding docs, npm, eslint, and tests.)

commit 19ae308867cc1691d7b8a0d7e58390bcf5279d35
Author: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Date:   Mon Mar 7 07:48:44 2016 +0900

    deps: update openssl config

    OPENSSL_NO_SSL2 and OPENSSL_NO_WEAK_SSL_CIPHERS are defined in
    opensslconf.h

    Fixes: https://github.com/nodejs/LTS/issues/85
    PR-URL: https://github.com/nodejs/node/pull/5630
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Fedor Indutny <fedor@indutny.com>

 deps/openssl/config/archs/BSD-x86/opensslconf.h            | 12 ++++++++++++
 deps/openssl/config/archs/BSD-x86_64/opensslconf.h         | 12 ++++++++++++
 deps/openssl/config/archs/VC-WIN32/opensslconf.h           | 12 ++++++++++++
 deps/openssl/config/archs/VC-WIN64A/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/aix-gcc/opensslconf.h            | 12 ++++++++++++
 deps/openssl/config/archs/aix64-gcc/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/darwin-i386-cc/opensslconf.h     | 12 ++++++++++++
 deps/openssl/config/archs/darwin64-x86_64-cc/opensslconf.h | 12 ++++++++++++
 deps/openssl/config/archs/linux-aarch64/opensslconf.h      | 12 ++++++++++++
 deps/openssl/config/archs/linux-armv4/opensslconf.h        | 12 ++++++++++++
 deps/openssl/config/archs/linux-elf/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/linux-ppc/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/linux-ppc64/opensslconf.h        | 12 ++++++++++++
 deps/openssl/config/archs/linux-x32/opensslconf.h          | 12 ++++++++++++
 deps/openssl/config/archs/linux-x86_64/opensslconf.h       | 12 ++++++++++++
 deps/openssl/config/archs/solaris-x86-gcc/opensslconf.h    | 12 ++++++++++++
 .../config/archs/solaris64-x86_64-gcc/opensslconf.h        | 12 ++++++++++++
 deps/openssl/openssl.gypi                                  |  4 ----
 18 files changed, 204 insertions(+), 4 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.