Node.js 7.7.0 and 7.7.1 Release Brief
The release of Node.js 7.7.1 was expedited due to a bug in 7.7.0 that prevented all native modules from building. This issue should now be resolved in Node 7.7.1.
These releases come with a variety of new features, including new http header-accessing APIs, changelogs for individual APIs in the API docs, and more.
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 171 commits:
- 52 were documentation-only commits.
- 39 only modify tests and 5 only affect internal tooling.
- 1 patch was backported from upstream V8:
- [
7c982e7
asd4000e73ed
] - (Jaideep Bajwa) #11263
- [
6 commits were tagged as semver-minor
, adding new functionality and justifying the jump to v7.7.x:
- [
570c5e1da8
] - crypto: supportOPENSSL_CONF
again (Sam Roberts) #11006 - [
214a39294a
] - errors: addinternal/errors.js
(James M Snell) #11220 - [
614742b67f
] - lib: deprecate node--debug
at runtime (Josh Gavant) #11275 - [
8be6702539
] - src: addSafeGetenv()
to internal API (Sam Roberts) #11006 - [
4e327708a9
] - tls: newtls.TLSSocket()
supports sec ctx options (Sam Roberts) #11005
The remaining significant commits are as follows:
- [
6bcc841786
] - assert: apply minor refactoring (Rich Trott) #11511 - [
6a2f330dbd
] - assert: remove unneeded condition (Rich Trott) #11314 - [
0762482339
] - assert: unlock the assert API (Rich Trott) #11304 - [
842ac583f6
] - benchmark: addurl.domainTo*()
(Timothy Gu) #11464 - [
3951bd9ac1
] - benchmark: strip BOM in dgram/bind-params (Anna Henningsen) #11479 - [
e1573b9fb7
] - benchmark: add dgram bind(+/- params) benchmark (Vse Mozhet Byt) #11313 - [
48f6660d78
] - benchmark: fix timer display in progress output (Brian White) #11235 - [
5a81031fd8
] - benchmark: clean up legacy url benchmarks (Joyee Cheung) - [
7e37628c51
] - benchmark: addurl/url-searchparams-sort.js
(Timothy Gu) - [
678ea11955
] - benchmark: refactor whatwg-url-properties (Joyee Cheung) #11264 - [
7a3553f792
] - benchmark: move url data to fixtures (Joyee Cheung) #11264 - [
4ffad094ba
] - buffer: refactorslowToString
(James M Snell) #11358 - [
d08a8e68e8
] - buffer: avoid use of arguments (James M Snell) #11358 - [
c8e34b61f6
] - build: add missing src/tracing header files (Daniel Bevenius) #10851 - [
4408437796
] - build: add rule to clean addon tests build (Joyee Cheung) #11519 - [
8d323bb91a
] - build: fail on CI if leftover processes (Rich Trott) #11269 - [
d4a8631bd1
] - build: fix newlines in addon build output (Brian White) #11466 - [
bc9c381027
] - build: add code coverage to make (Wayne Andrews) #10856 - [
9c45758cdf
] - build: fix building with ninja on linux (Kenan Yildirim) #11348 - [
86a647899f
] - build: don't rebuild test/gc add-on unnecessarily (Ben Noordhuis) #11311 - [
c942e2037c
] - child_process: refactorinternal/child_process.js
(Arseniy Maximov) #11366 - [
0240eb99a2
] - child_process: remove empty if condition (cjihrig) #11427 - [
60fc567952
] - child_process: move anonymous class to top level (Jackson Tian) #11147 - [
58e2517fc0
] - child_process: exitspawnSync
with null on signal (cjihrig) #11288 - [
4b4bc13758
] - cluster: properly handle--inspect-{brk,port}
(Ali Ijaz Sheikh) #11386 - [
aef67cfe39
] - dgram: fix possibly deoptimizing use of arguments (Vse Mozhet Byt) #11242 - [
662b0c31ce
] - dns: avoid use of arguments (James M Snell) #11359 - [
4f6a3d38c3
] - domain,events: support non-object 'error' argument (Ben Noordhuis) #11438 - [
758126301e
] - fs: improve performance for syncstat()
functions (Brian White) #11522 - [
3e8d43d165
] - http: add new functions toOutgoingMessage
(Brian White) #11562 - [
a710167c79
] - lib: renamekMaxCallbacksUntilQueueIsShortened
(JungMinu) #11473 - [
61e1af2155
] - lib: remove unnecessary assignments with_extend
(Sakthipriyan Vairamani (thefourtheye)) #11364 - [
d1549bf8d9
] - lib: add constantkMaxCallbacksUntilQueueIsShortened
(Daniel Bevenius) #11199 - [
3afe90dc9b
] - net: prefer===
to==
(Arseniy Maximov) #11513 - [
db06c7311b
] - os: improveloadavg()
performance (Brian White) #11516 - [
fe7a722468
] - process: fix typo in comments (levsthings) #11503 - [
54e1f0c219
] - process: improvememoryUsage()
performance (Brian White) #11497 - [
96f55f9e59
] - src: movetrace_event.h
include to internal header (Ben Noordhuis) #10959 - [
30c80cbe6f
] - src: fix TracingController cleanup (Jason Ginchereau) #10623 - [
b89b2a7d36
] - src: always initialize tracing controller in agent (Matt Loring) #10507 - [
bd4ccc892c
] - src: add tracing controller (misterpoe) #11106 - [
fb85f5049e
] - src: clean upMaybeStackBuffer
(Timothy Gu) #11464 - [
beda32675f
] - src: don't assumev8::Local
is using-declared (Timothy Gu) #11464 - [
64a92565e0
] - src: update http-parser link (Daniel Bevenius) #11477 - [
539e83a820
] - src: remove usage of deprecated debug API (Yang Guo) #11437 - [
a8613f8ce4
] - src: fix--icu-data-dir=
regression (Ben Noordhuis) #11255 - [
73e316e908
] - src: make--icu-data-dir=
switch testable (Ben Noordhuis) #11255 - [
96a6d64250
] - src: make copies of startup environment variables (Ben Noordhuis) #11051 - [
7d47f27049
] - src: remove unused variable innode_crypto
(cjihrig) #11361 - [
8a5c0fb0ff
] - src: remove unusedtypedef
(Ben Noordhuis) #11322 - [
39b00349b8
] - src, i18n: cleanup usage ofMaybeStackBuffer
(Timothy Gu) #11464 - [
7aaa960f4c
] - test, url: synchronize WPT url tests (Joyee Cheung) - [
506a1cb03f
] - timer,domain: maintain order of timer callbacks (John Barboza) #10522 - [
f37ab7968e
] - tls: do not crash onSTARTTLS
whenOCSP
requested (Fedor Indutny) #10706 - [
5f94ff6231
] - tls: avoid potentially deoptimizing use of arguments (James M Snell) #11357 - [
3dc4a5f1f4
] - tracing: fix-Wunused-private-field
warning (Santiago Gimeno) #10416 - [
8a918bf411
] - tracing: fix-Wreorder
warning (Santiago Gimeno) #10416 - [
4ee9220565
] - tty: avoid oob warning inTTYWrap::GetWindowSize()
(Dmitry Tsvettsikh) #11454 - [
5f10827248
] - url: fix handling of?
inURLSearchParams
creation (Timothy Gu) #11372 - [
72da362d6e
] - url: fix file state clarification in binding (Daijiro Wachi) #11123 - [
4366ab539f
] - url: implementURL.prototype.toJSON
(Michaël Zasso) #11236 - [
8dbd562590
] - url: fix surrogate handling inencodeAuth()
(Timothy Gu) - [
c25c16cc1b
] - url: addurlSearchParams.sort()
(Timothy Gu) - [
d8cb65aa6e
] - url, test: synchronize WPT url tests for file URL (Daijiro Wachi) #11123 - [
237db9c497
] - util: cleanupinternalUtil.deprecate
(James M Snell) #11450 - [
95bee8f202
] - util: eliminate unnecessary exports (James M Snell) #11451 - [
3bdac54e67
] - util: use ES2015+Object.is
to check negative zero (Shinnosuke Watanabe) #11332 - [
3d133ebd3d
] - util, debugger: removeinternalUtil.error
(James M Snell) #11448 - [
f55c628b2a
] - vm: refactor vm module (James M Snell) #11392
Notable Changes
These releases contain a deprecation warning for node --debug
. You can find more information in the
Diagnostics Working Group Update
- child_process: The exit code returned from
spawnSync()
is nownull
when the child is killed via signal. (cjihrig) #11288 - crypto: The
OPENSSL_CONF
env variable is now supported once again. (Sam Roberts) #11006 - doc: Added individual changelogs to many APIs in the API docs under a “history” dropdown. (Anna Henningsen) #11489
- http: New functions have been added for accessing outgoing HTTP headers. (Brian White) #11562
- lib:
node --debug
is now deprecated and will emit a warning at runtime. (Josh Gavant) #11275 - src: Base support of Tracing Events has been added. (misterpoe) #11106
- tls:
tls.TLSSocket()
uses its options to create new secure contexts, effectively allowing alltls.createSecureContext()
options to be passed. (Sam Roberts) #11005 - url: URL objects from
url.URL
now have atoJSON()
function. (Michaël Zasso) #11236
Git Diffstats
(Showing the delta between v7.6.0 and v7.7.1, ignoring deps/npm
.)
Without deps, tools, docs, benchmarks, or tests:
.eslintrc.yaml | 2 +
Makefile | 110 +-
common.gypi | 13 +-
configure | 11 +-
lib/_debug_agent.js | 4 +
lib/_debugger.js | 16 +-
lib/_http_agent.js | 4 +-
lib/_http_outgoing.js | 35 +
lib/_tls_wrap.js | 23 +-
lib/assert.js | 11 +-
lib/buffer.js | 28 +-
lib/child_process.js | 9 +-
lib/dgram.js | 6 +-
lib/dns.js | 9 +-
lib/events.js | 8 +-
lib/fs.js | 26 +-
lib/internal/bootstrap_node.js | 3 +
lib/internal/child_process.js | 83 +-
lib/internal/cluster/master.js | 8 +-
lib/internal/errors.js | 88 ++
lib/internal/process.js | 23 +-
lib/internal/process/next_tick.js | 10 +-
lib/internal/process/write-coverage.js | 46 +
lib/internal/querystring.js | 15 +
lib/internal/url.js | 165 +--
lib/internal/util.js | 32 +-
lib/net.js | 5 +-
lib/os.js | 8 +-
lib/querystring.js | 15 +-
lib/readline.js | 4 +-
lib/repl.js | 4 +-
lib/timers.js | 15 +
lib/tty.js | 4 +-
lib/url.js | 84 +-
lib/util.js | 11 +-
lib/vm.js | 63 +-
node.gyp | 13 +-
src/env.h | 4 -
src/node.cc | 127 ++-
src/node_config.cc | 7 +-
src/node_contextify.cc | 3 +-
src/node_crypto.cc | 5 +-
src/node_file.cc | 72 +-
src/node_http_parser.cc | 2 +-
src/node_i18n.cc | 123 ++-
src/node_i18n.h | 5 +-
src/node_internals.h | 36 +-
src/node_os.cc | 14 +-
src/node_url.cc | 8 +-
src/node_version.h | 4 +-
src/spawn_sync.cc | 13 +-
src/tracing/agent.cc | 74 ++
src/tracing/agent.h | 31 +
src/tracing/node_trace_buffer.cc | 177 ++++
src/tracing/node_trace_buffer.h | 87 ++
src/tracing/node_trace_writer.cc | 185 ++++
src/tracing/node_trace_writer.h | 74 ++
src/tracing/trace_event.cc | 17 +
src/tracing/trace_event.h | 1710 ++++++++++++++++++++++++++++++
src/util.h | 65 +-
60 files changed, 3391 insertions(+), 466 deletions(-)
Tools only:
Deps only:
deps/v8/include/v8-version.h | 2 +-
deps/v8/src/compiler/ppc/instruction-selector-ppc.cc | 2 +-
deps/v8/src/compiler/s390/instruction-selector-s390.cc | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
Docs only:
CHANGELOG.md | 4 +-
CONTRIBUTING.md | 3 +
benchmark/README.md | 663 +++++++++----------------
doc/STYLE_GUIDE.md | 63 +++
doc/api/_toc.md | 1 +
doc/api/all.md | 6 +-
doc/api/assert.md | 72 ++-
doc/api/buffer.md | 282 +++++++----
doc/api/child_process.md | 43 +-
doc/api/cli.md | 45 +-
doc/api/cluster.md | 27 +
doc/api/console.md | 30 +-
doc/api/crypto.md | 91 +++-
doc/api/debugger.md | 6 +-
doc/api/deprecations.md | 40 ++
doc/api/dgram.md | 41 +-
doc/api/dns.md | 66 ++-
doc/api/domain.md | 172 +++----
doc/api/events.md | 10 +
doc/api/fs.md | 312 +++++++++++-
doc/api/http.md | 115 ++++-
doc/api/net.md | 32 +-
doc/api/os.md | 11 +
doc/api/path.md | 17 +
doc/api/process.md | 278 ++++++-----
doc/api/punycode.md | 6 +
doc/api/querystring.md | 7 +
doc/api/readline.md | 15 +-
doc/api/repl.md | 4 +
doc/api/stream.md | 17 +
doc/api/tls.md | 136 +++--
doc/api/tracing.md | 19 +
doc/api/url.md | 411 ++++++++++++---
doc/api/util.md | 60 ++-
doc/api/v8.md | 90 ++--
doc/api/vm.md | 9 +
doc/api/zlib.md | 26 +
doc/api_assets/style.css | 6 +
doc/changelogs/CHANGELOG_V7.md | 198 ++++++++
doc/guides/doc_img/compare-boxplot.png | Bin 0 -> 266641 bytes
doc/guides/doc_img/scatter-plot.png | Bin 0 -> 182417 bytes
doc/guides/using-internal-errors.md | 141 ++++++
doc/guides/writing-and-running-benchmarks.md | 427 ++++++++++++++++
doc/guides/writing-tests.md | 8 +-
doc/node.1 | 10 +
45 files changed, 2979 insertions(+), 1041 deletions(-)
Tests & Benchmarks only:
0.1% benchmark/dgram/
55.4% benchmark/doc_img/
0.0% benchmark/domain/
0.0% benchmark/es/
0.1% benchmark/fixtures/
0.0% benchmark/fs/
0.0% benchmark/os/
0.0% benchmark/process/
0.0% benchmark/querystring/
1.0% benchmark/url/
0.0% benchmark/
0.4% test/cctest/
0.2% test/doctool/
28.8% test/fixtures/
0.0% test/internet/
0.0% test/known_issues/
0.2% test/message/
12.6% test/parallel/
0.1% test/pummel/
0.0% test/sequential/
0.2% test/
116 files changed, 8244 insertions(+), 5920 deletions(-)
Most active commit
Of the 171 commits, bd4ccc8
was the most active:
(Excluding docs, npm, eslint, and tests.)
commit bd4ccc892c0413439c3d068485cbfb49ea78b842
Author: misterpoe <raymondksi@gmail.com>
Date: Fri Aug 5 14:04:25 2016 -0700
src: add tracing controller
This commit adds support for trace-event tracing to Node.js. It provides
a mechanism to centralize tracing information generated by V8, Node
core, and userspace code. It includes:
- A trace writer responsible for serializing traces and cycling the
output files so that no individual file becomes to large.
- A buffer for aggregating traces to allow for batched flushes.
- An agent which initializes the tracing controller and ensures that
trace serialization is done on a separate thread.
- A set of macros for generating trace events.
- Tests and documentation.
Author: Raymond Kang <raymondksi@gmail.com>
Author: Kelvin Jin <kelvinjin@google.com>
Author: Matthew Loring <mattloring@google.com>
Author: Jason Ginchereau <jasongin@microsoft.com>
PR-URL: https://github.com/nodejs/node/pull/11106
Reviewed-By: Josh Gavant <josh.gavant@outlook.com>
doc/api/cli.md | 14 +
doc/api/debugger.md | 2 +-
doc/api/tracing.md | 19 +
node.gyp | 5 +
src/node.cc | 28 +
src/node.h | 1 +
src/tracing/agent.cc | 72 ++
src/tracing/agent.h | 31 +
src/tracing/node_trace_buffer.cc | 177 ++++
src/tracing/node_trace_buffer.h | 89 ++
src/tracing/node_trace_writer.cc | 185 ++++
src/tracing/node_trace_writer.h | 74 ++
src/tracing/trace_event.cc | 17 +
src/tracing/trace_event.h | 1710 +++++++++++++++++++++++++++++++++++
test/parallel/test-trace-event.js | 35 +
15 files changed, 2458 insertions(+), 1 deletion(-)
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.