Node.js v4.7.0 Release Brief
This LTS release is the result of a build-up of regular maintenance commits, as well as a select few additive features deemed important enough to bring into LTS.
There is a semver-minor version number increment (the y in x.y.z) due to the additions in this release. While these semver-minor increments are possible under the LTS plan, the project is attempting to keep them to a minimum, batching multiple changes where possible, such as in this release. Note that there will be no future v4.6.x releases, all future releases numbers will be above v4.7.0.
As with all releases, minor and patch version upgrades (the y and z in x.y.z) should be drop-in replacements for previous versions.
Overview
Of a total of 108 commits:
- 31 were documentation-only commits.
- 28 only modify tests and 9 only affect internal tooling.
- One patch was backported onto V8:
- [fix build with libc++ 3.8.0] - (Johan Bergström) #9763
- One patch was backported onto c-ares:
- [backport OpenBSD fix in c-ares/c-ares] - (Aaron Bieber) #9232
5 commits were tagged as semver-minor
, adding new functionality and justifying the jump to v4.7.0:
- [
84849f186f
] - (SEMVER-MINOR) build: export more openssl symbols on Windows (Alex Hultman) #7576 - [
748e424163
] - (SEMVER-MINOR) debugger: make listen address configurable (Ben Noordhuis) #3316 - [
4571c84c67
] - (SEMVER-MINOR) dgram: generalized send queue to handle close (Matteo Collina) #7066 - [
c94482b167
] - (SEMVER-MINOR) http: 451 status code "Unavailable For Legal Reasons" (Max Barinov) #4377 - [
9049c1f6b6
] - (SEMVER-MINOR) tls: introducesecureContext
fortls.connect
(Fedor Indutny) #4246
The remaining significant commits are as follows:
- [
ed31f9cc30
] - benchmark: add microbenchmarks for ES Map (Rod Vagg) #7581 - [
c5181eda4b
] - build: reduce noise from doc target (Daniel Bevenius) #9457 - [
59d821debe
] - build: use wxneeded on openbsd (Aaron Bieber) #9232 - [
7c73105606
] - build: run cctests as part of test-ci target (Ben Noordhuis) #8034 - [
3919edb47e
] - build: don't build icu with-fno-rtti
(Ben Noordhuis) #8886 - [
e97723b18c
] - build: abstract out shared library suffix (Stewart Addison) #9385 - [
0138b4db7c
] - build: windows sharedlib support (Stewart Addison) #9385 - [
f21c2b9d3b
] - build: configure--shared
(sxa555) #6994 - [
bb2fdf58f7
] - build: cherry pick V8 change for windows DLL support (Stefan Budeanu) #8084 - [
3cefd65e90
] - build: export openssl symbols on windows (Ben Noordhuis) #6274 - [
4de7a6e291
] - build: fixconfig.gypi
target (Daniel Bevenius) #9053 - [
9389572cbc
] - crypto: fix faulty logic in iv size check (Ben Noordhuis) #9032 - [
f6f0b387ea
] - events: pass the original listener added by once (DavidCai) #6394 - [
02e6c84de2
] - gitignore: ignore all tap files (Johan Bergström) #9262 - [
50a4471aff
] - http: fix connection upgrade checks (Brian White) #8238 - [
12da2581a8
] - https: fix memory leak withhttps.request()
(Ilkka Myller) #8647 - [
3b448a7f12
] - lib: changed var to const in linkedlist (Adri Van Houdt) #8609 - [
a3a184d40a
] - lib: fix TypeError in v8-polyfill (Wyatt Preul) #8863 - [
423846053b
] - lib: remove let from for loops (Myles Borins) #8873 - [
9a192a9683
] - net: fix ambiguity in EOF handling (Fedor Indutny) #9066 - [
62e83b363e
] - src: Malloc/Calloc size 0 returns non-null pointer (Rich Trott) #8572 - [
51e09d00c4
] - src: normalize malloc, realloc (Michael Dawson) #7564 - [
3b5cedebd1
] - src: renaming ares_task struct to node_ares_task (Daniel Bevenius) #7345 - [
e5d2a95d68
] - src: remove out-of-date TODO comment (Daniel Bevenius) #9000 - [
b4353e9017
] - src: fix typo in #endif comment (Juan Andres Andrango) #8989 - [
f0192ec195
] - src: don't abort when c-ares initialization fails (Ben Noordhuis) #8710 - [
f669a08b76
] - src: fix typo rval to value (Miguel Angel Asencio Hurtado) #9023 - [
9b9762ccec
] - streams: fix regression inunpipe()
(Anna Henningsen) #9171 - [
54c38eb22e
] - tickprocessor: applyc++filt
manually on mac (Fedor Indutny) #8480 - [
bf25994308
] - tls: fix leak ofWriteWrap
+TLSWrap
combination (Fedor Indutny) #9586 - [
f18f3b61e3
] - util: use template strings (Alejandro Oviedo Garcia) #9120 - [
bdb6cf92c7
] - win,msi: markINSTALLDIR
property as secure (João Reis) #8795 - [
9a02414a29
] - zlib: fix raw inflate with custom dictionary (Tarjei Husøy)
Notable Changes
The SEMVER-MINOR
changes include:
- build: OpenSSL symbols are now exported on Windows.(Alex Hultman) #7576
- This makes it possible to build addons that link against the bundled version of OpenSSL.
- debugger: The listen address is now configurable in the debugger server. (Ben Noordhuis) #3316
- dgram: Fixed a potential throw when dgram socket is closed in the listening event handler. (Matteo Collina) #7066
- http: Introduced the 451 status code "Unavailable For Legal Reasons". (Max Barinov) #4377
- tls: Introduced
secureContext
fortls.connect
which is useful for caching client certificates, keys, and CA certificates. (Fedor Indutny) #4246
Notable SEMVER-PATCH
changes include:
- build: Introduced a
--shared
configure option for embedders. (sxa555) #6994 - src: Node no longer aborts when c-ares initialization fails. (Ben Noordhuis) #8710
- tls: Fixed a memory leak when writing data to a TLSWrap instance during handshake. (Fedor Indutny) #9586
Git Diffstats
(Showing the delta between v4.6.2 and v4.7.0, ignoring deps/npm
.)
Without deps, tools, docs, benchmarks, or tests:
.gitignore | 2 +-
Makefile | 13 ++--
common.gypi | 41 ++++++++++++-
configure | 36 ++++++++++-
lib/.eslintrc | 1 +
lib/_debug_agent.js | 7 ++-
lib/_http_agent.js | 8 +++
lib/_http_common.js | 16 ++---
lib/_http_outgoing.js | 24 ++++++--
lib/_http_server.js | 1 +
lib/_linklist.js | 2 +-
lib/_stream_readable.js | 8 +--
lib/_stream_writable.js | 1 +
lib/_tls_common.js | 10 ++--
lib/_tls_wrap.js | 25 ++++++--
lib/dgram.js | 52 ++++++++++++----
lib/events.js | 7 ++-
lib/internal/v8_prof_polyfill.js | 38 ++++++++++--
lib/internal/v8_prof_processor.js | 3 +-
lib/net.js | 8 ++-
lib/repl.js | 2 +-
lib/tls.js | 2 +-
lib/url.js | 12 ++--
lib/util.js | 52 ++++++++--------
node.gyp | 115 +++++++++++++++++++++++++++++++++---
src/cares_wrap.cc | 102 +++++++++++++++++---------------
src/debug-agent.cc | 8 ++-
src/debug-agent.h | 4 +-
src/env-inl.h | 2 +-
src/env.h | 12 ++--
src/node.cc | 99 +++++++++++++++++++++++++------
src/node.h | 14 +++--
src/node_buffer.cc | 12 ++--
src/node_crypto.cc | 40 ++++++-------
src/node_internals.h | 3 +-
src/node_os.cc | 2 +-
src/node_version.h | 4 +-
src/node_zlib.cc | 14 ++++-
src/stream_wrap.cc | 4 +-
src/string_bytes.cc | 8 +--
src/tls_wrap.cc | 2 +-
src/udp_wrap.cc | 5 +-
src/util-inl.h | 28 +++++++++
src/util.h | 13 +++-
vcbuild.bat | 10 +++-
45 files changed, 626 insertions(+), 246 deletions(-)
Tools only:
tools/getmoduleversion.py | 24 ++++++++++++++++++++
tools/getnodeversion.py | 14 +++++++-----
tools/icu/icu-generic.gyp | 1 +
tools/install.py | 18 +++++++++++++--
tools/make-v8.sh | 49 +++++++++++++++++++++++-----------------
tools/mkssldef.py | 44 ++++++++++++++++++++++++++++++++++++
tools/msvs/msi/product.wxs | 2 +-
tools/release.sh | 11 ++-------
tools/test.py | 53 ++++++++++++++++++++++++++++++++++----------
9 files changed, 167 insertions(+), 49 deletions(-)
Deps only:
deps/cares/include/ares.h | 2 +-
deps/gtest/src/gtest.cc | 124 ++++++++++++++++++++++++++++++
deps/gtest/src/gtest_main.cc | 1 -
deps/v8/build/toolchain.gypi | 7 +-
deps/v8/include/v8-version.h | 2 +-
deps/v8/src/compiler/instruction.h | 2 +-
deps/v8/src/compiler/js-type-feedback.h | 5 +-
deps/v8/src/zone-containers.h | 6 +-
8 files changed, 137 insertions(+), 12 deletions(-)
Docs only:
CHANGELOG.md | 139 +++++++++++++-
COLLABORATOR_GUIDE.md | 4 +-
CONTRIBUTING.md | 65 ++++++-
GOVERNANCE.md | 73 +++++---
README.md | 8 +-
WORKING_GROUPS.md | 23 ++-
doc/api/child_process.md | 6 +-
doc/api/crypto.md | 15 +-
doc/api/debugger.md | 3 +-
doc/api/errors.md | 8 +-
doc/api/http.md | 2 +-
doc/api/modules.md | 6 +-
doc/api/process.md | 6 +-
doc/api/tls.md | 4 +
doc/api_assets/style.css | 73 +++++---
doc/ctc-meetings/2016-09-28.md | 302 ++++++++++++++++++++++++++++++
doc/ctc-meetings/2016-10-05.md | 311 +++++++++++++++++++++++++++++++
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/node.1 | 23 ++-
doc/onboarding.md | 15 +-
23 files changed, 1495 insertions(+), 103 deletions(-)
Tests & Benchmarks only:
4.5% benchmark/es/
3.5% test/addons/openssl-binding/
0.6% test/cctest/
69.9% test/parallel/
0.9% test/pummel/
20.2% test/sequential/
53 files changed, 1058 insertions(+), 354 deletions(-)
Most active commit
Of the 108 commits, f21c2b9
was the most active:
(Excluding docs, npm, eslint, and tests.)
commit f21c2b9d3b4595d63e7f9ebd88b9d5fc964131fb
Author: sxa555 <contactsxa@gmail.com>
Date: Mon Jul 4 12:03:14 2016 +0100
build: configure --shared
Add configure flag for building a shared library that can be
embedded in other applications (like Electron). Add flags
--without-bundled-v8 and --without-v8-platform to control V8
dependencies used.
PR-URL: https://github.com/nodejs/node/pull/6994
Ref: https://github.com/nodejs/node/pull/7487
Ref: https://github.com/nodejs/node/pull/9385
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
common.gypi | 9 ++++++++
configure | 35 ++++++++++++++++++++++++++---
node.gyp | 56 ++++++++++++++++++++++++++++++++++++++++-------
src/node.cc | 37 ++++++++++++++++++++++++++-----
src/node.h | 14 ++++++++----
tools/getnodeversion.py | 14 +++++++-----
tools/install.py | 17 ++++++++++++--
7 files changed, 154 insertions(+), 28 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.