Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v11.9.0 proposal #25802

Merged
merged 79 commits into from
Jan 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
9f1b5c6
test: remove known_issues/test-cluster-bind-privileged-port
Trott Jan 22, 2019
c93e5e1
doc: simplify process.binding() deprecation message
Trott Jan 23, 2019
1905f8e
test: remove common.isOSXMojave
Trott Jan 23, 2019
0640b09
lib: refactor policy code for readability
addaleax Jan 21, 2019
7cc5153
src: remove has_experimental_policy option
addaleax Jan 21, 2019
3488f0d
doc: link nextTick docs to the nextTick guide
sam-github Jan 21, 2019
48149cf
doc: clarify what dns.setResolvers() affects
sam-github Jan 18, 2019
237ec39
doc: fix 11.8.0 changelog
MylesBorins Jan 25, 2019
e475119
doc: add metadata to report docs
richardlau Jan 25, 2019
3c5a7a2
doc: fix keyObject.symmetricSize to be keyObject.symmetricKeySize
panva Jan 23, 2019
ee61ab6
repl: improve doc for disabling REPL history on Windows
ralish Jan 23, 2019
f33d705
test: fix sequential/test-performance delay
apapirovski Jan 25, 2019
4b43eea
src,test: fix JSON escaping in node-report
lundibundi Jan 21, 2019
1aa7f4d
doc: fix metadata for v11.8.0 doc changes
richardlau Jan 25, 2019
b218b12
doc: remove outdated s_client information in tls.md
Trott Jan 24, 2019
34bc69d
doc: fix file extension on ESM file example
ewhitebloom Jan 25, 2019
b113332
src: ensure no more platform foreground tasks after Deinit
backes Jan 22, 2019
14bce1e
report: do not use `uv_default_loop()` as fallback
addaleax Jan 22, 2019
190c063
test: replace Google servers with localhost
Trott Jan 25, 2019
271126a
test: remove s_client from test-tls-ci-reneg-attack
Trott Jan 25, 2019
1dfdbc6
report: refactor JSON writer
addaleax Jan 22, 2019
ce28caf
report: represent numbers as numbers
addaleax Jan 22, 2019
797111a
src: avoid race condition in tracing code
addaleax Jan 21, 2019
7d68223
test: remove unused uncaughtException handler
addaleax Jan 22, 2019
845bcfa
src: simplify inspector initialization in node::Start()
joyeecheung Jan 21, 2019
fc38b20
perf_hooks: clean up GC listeners
addaleax Jan 22, 2019
021d197
src: fix macro duplicate declaration in env.h
gengjiawen Jan 25, 2019
30949f8
build: make configure.py compatible with python 3
thefourtheye Jan 19, 2019
bc81a68
build: make compress_json python3 compatible
thefourtheye Jan 19, 2019
4b2a1ea
test: replace s_client in test-https-ci-reneg-attack
Trott Jan 26, 2019
c7dbb72
test: remove pummel/test-exec
Trott Jan 26, 2019
e6ad7f4
tools: make mkssldef.py Python 3 compatible
thefourtheye Jan 19, 2019
c581b9a
deps: upgrade openssl sources to 1.1.1a
sam-github Jan 24, 2019
e204399
deps: fix gyp/gypi for openssl-1.1.1
shigeki May 5, 2018
0a0f15f
deps: fix MacOS and Win build for OpenSSL-1.1.1
shigeki Nov 1, 2018
670f100
deps: add s390 asm rules for OpenSSL-1.1.1
shigeki Mar 7, 2018
ad04d7b
deps: add only avx2 configs for OpenSSL-1.1.1
shigeki Nov 8, 2018
5225214
deps: fix for non GNU assembler in AIX
shigeki Nov 15, 2018
5d5c528
doc: fix assembler requirement for OpenSSL-1.1.1
shigeki Nov 10, 2018
d4ec110
deps: update archs files for OpenSSL-1.1.1a
sam-github Jan 24, 2019
c34c569
tls: make ossl 1.1.1 cipher list throw error
sam-github Nov 26, 2018
6e80f6d
tls: workaround handshakedone in renegotiation
shigeki Sep 12, 2018
29002ce
test: assert on client and server side seperately
sam-github Jan 7, 2019
bc81fef
vm: mark scripts as shareable cross-origin
nornagon Jan 7, 2019
1d6e18b
doc: fix http.Agent timeout option description
lpinca Jan 14, 2019
77274d0
test: rewrite fs {f}utimes test file
Fishrock123 Jan 23, 2019
6203d05
test: fix zlib-brotli output assumptions
AdamMajer Jan 25, 2019
86e79a5
src: remove unused and unimplemented method in env.h
gengjiawen Jan 24, 2019
7ba6650
tools: make test.py Queue part Python 3 compatible
gengjiawen Jan 25, 2019
09a1085
src: remove unnecessary call to SSL_get_mode
sam-github Jan 25, 2019
6d9af41
src: in-source comments and minor TLS cleanups
sam-github Jan 16, 2019
c82f244
dns: use IDNA 2008 to encode non-ascii hostnames
bnoordhuis Oct 10, 2018
edc9ceb
doc: fix issue with worker_threads docs
leebyron Jan 25, 2019
d0705bd
timers: truncate decimal values
Fishrock123 Dec 4, 2018
7c8d57d
doc: revise breaking changes material in COLLABORATOR_GUIDE
Trott Jan 27, 2019
ebcdbeb
src: remove unused field in node_http2.h
gengjiawen Jan 26, 2019
f3179f7
policy: ensure workers do not read fs for policy
bmeck Jan 23, 2019
af6e439
test: enable marking of failing coverage tests
mhdawson Jan 22, 2019
c56ddc7
doc: document uniqueness of worker.threadId
addaleax Jan 22, 2019
ae19f94
test: exit sequence sanity tests
gireeshpunathil Dec 17, 2018
d5b2135
tls: fix malloc mismatch in SSL_set_tlsext_status_ocsp_resp call
davidben Jan 25, 2019
c213634
test: move heapdump tests to pummel
Trott Dec 22, 2018
15f6b8e
test: add test for `worker.terminate()` + timeout fns
addaleax Jan 27, 2019
8032969
tools: make trailing commas consistent in .eslintrc
Trott Jan 27, 2019
2928672
src: pass along errors from stream obj instantiation
addaleax Jan 27, 2019
5add2b5
src: pass along errors from process obj instantiation
addaleax Jan 27, 2019
ced4e71
src: pass along errors from perf obj instantiation
addaleax Jan 27, 2019
8ee4810
src: pass along errors from KeyObject instantiation
addaleax Jan 27, 2019
deebf10
src: pass along errors from vm data wrapper creation
addaleax Jan 27, 2019
c095106
src: pass along errors from i18n converter instantiation
addaleax Jan 27, 2019
1d1d3f5
test: refactor test-http-client-timeout-option-with-agent
Trott Jan 28, 2019
1d7c963
src: remove unused env_ field from env.h
danbev Jan 29, 2019
602d0e4
test: use fipsMode in test-crypto-fips
danbev Jan 18, 2019
d04c0bb
test: move client renegotiation tests to parallel
Trott Jan 28, 2019
e0597a7
worker: export workerData to ESM workers
addaleax Jan 28, 2019
0878252
module: silence ModuleJob unhandled rejection warnings
addaleax Jan 28, 2019
798ee40
module: do not use `process.exit()`
addaleax Jan 28, 2019
5e6af53
test: refactor test/common/report.js
cjihrig Jan 28, 2019
8e24451
2019-01-30, Version 11.9.0 (Current)
targos Jan 29, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
18 changes: 9 additions & 9 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,11 @@ module.exports = {
// start with something that looks like a variable name or code.
ignorePattern: '^.{0,50}$|^ [a-z]+ ?[0-9A-Z_.(/=:[#-]',
ignoreInlineComments: true,
ignoreConsecutiveComments: true
ignoreConsecutiveComments: true,
},
block: {
ignorePattern: '.*'
}
ignorePattern: '.*',
},
}],
'comma-dangle': ['error', 'only-multiline'],
'comma-spacing': 'error',
Expand Down Expand Up @@ -168,27 +168,27 @@ module.exports = {
{
property: '__defineSetter__',
message: '__defineSetter__ is deprecated.',
}
},
],
// If this list is modified, please copy the change to lib/.eslintrc.yaml
// and test/.eslintrc.yaml.
'no-restricted-syntax': [
'error',
{
selector: "CallExpression[callee.object.name='assert'][callee.property.name='deepStrictEqual'][arguments.2.type='Literal']",
message: 'Do not use a literal for the third argument of assert.deepStrictEqual()'
message: 'Do not use a literal for the third argument of assert.deepStrictEqual()',
},
{
selector: "CallExpression[callee.object.name='assert'][callee.property.name='doesNotThrow']",
message: 'Please replace `assert.doesNotThrow()` and add a comment next to the code instead.'
message: 'Please replace `assert.doesNotThrow()` and add a comment next to the code instead.',
},
{
selector: "CallExpression[callee.object.name='assert'][callee.property.name='rejects'][arguments.length<2]",
message: '`assert.rejects()` must be invoked with at least two arguments.',
},
{
selector: "CallExpression[callee.object.name='assert'][callee.property.name='strictEqual'][arguments.2.type='Literal']",
message: 'Do not use a literal for the third argument of assert.strictEqual()'
message: 'Do not use a literal for the third argument of assert.strictEqual()',
},
{
selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.1.type='Literal']:not([arguments.1.regex])",
Expand All @@ -209,7 +209,7 @@ module.exports = {
{
selector: 'ThrowStatement > CallExpression[callee.name=/Error$/]',
message: 'Use `new` keyword when throwing an `Error`.',
}
},
],
/* eslint-enable max-len */
'no-return-await': 'error',
Expand Down Expand Up @@ -263,7 +263,7 @@ module.exports = {
'space-unary-ops': 'error',
'spaced-comment': ['error', 'always', {
'block': { 'balanced': true },
'exceptions': ['-']
'exceptions': ['-'],
}],
'strict': ['error', 'global'],
'symbol-description': 'error',
Expand Down
19 changes: 14 additions & 5 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,20 +130,29 @@ Depending on the host platform, the selection of toolchains may vary.

#### OpenSSL asm support

OpenSSL-1.1.0 requires the following assembler version for use of asm
OpenSSL-1.1.1 requires the following assembler version for use of asm
support on x86_64 and ia32.

For use of AVX-512,

* gas (GNU assembler) version 2.26 or higher
* nasm version 2.11.8 or higher in Windows

Note that AVX-512 is disabled for Skylake-X by OpenSSL-1.1.1.

For use of AVX2,

* gas (GNU assembler) version 2.23 or higher
* Xcode version 5.0 or higher
* llvm version 3.3 or higher
* nasm version 2.10 or higher in Windows

If compiling without one of the above, use `configure` with the
`--openssl-no-asm` flag. Otherwise, `configure` will fail.

The forthcoming OpenSSL-1.1.1 will have different requirements. Please refer to
Please refer to
https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_ia32cap.html for details.

If compiling without one of the above, use `configure` with the
`--openssl-no-asm` flag. Otherwise, `configure` will fail.

## Building Node.js on supported platforms

The [bootstrapping guide](https://github.com/nodejs/node/blob/master/tools/bootstrap/README.md)
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V11.md#11.8.0">11.8.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V11.md#11.9.0">11.9.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.8.0">11.8.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.7.0">11.7.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.6.0">11.6.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.5.0">11.5.0</a><br/>
Expand Down
14 changes: 2 additions & 12 deletions COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,24 +270,14 @@ For more information, see [Deprecations](#deprecations).
#### Breaking Changes to Internal Elements

Breaking changes to internal elements may occur in semver-patch or semver-minor
commits. Collaborators should take significant care when making and reviewing
such changes. An effort must be made to determine the potential impact of the
change in the ecosystem. Use
commits. Take significant care when making and reviewing such changes. Make
an effort to determine the potential impact of the change in the ecosystem. Use
[Canary in the Goldmine](https://github.com/nodejs/citgm) to test such changes.
If a change will cause ecosystem breakage, then it is semver-major. Consider
providing a Public API in such cases.

#### When Breaking Changes Actually Break Things

Because breaking (semver-major) changes are permitted to land on the master
branch at any time, at least some subset of the user ecosystem may be adversely
affected in the short term when attempting to build and use Node.js directly
from the master branch. This potential instability is why Node.js offers
distinct Current and LTS release streams that offer explicit stability
guarantees.

Specifically:

* Breaking changes should *never* land in Current or LTS except when:
* Resolving critical security issues.
* Fixing a critical bug (e.g. fixing a memory leak) requires a breaking
Expand Down
5 changes: 3 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,8 @@ coverage-test: coverage-build
$(RM) out/$(BUILDTYPE)/obj.target/node_lib/gen/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/tracing/*.gcda
-NODE_V8_COVERAGE=out/$(BUILDTYPE)/.coverage $(MAKE) $(COVTESTS)
-NODE_V8_COVERAGE=out/$(BUILDTYPE)/.coverage \
TEST_CI_ARGS="$(TEST_CI_ARGS) --type=coverage" $(MAKE) $(COVTESTS)
$(MAKE) coverage-report-js
-(cd out && "../gcovr/scripts/gcovr" --gcov-exclude='.*deps' \
--gcov-exclude='.*usr' -v -r Release/obj.target \
Expand Down Expand Up @@ -277,7 +278,7 @@ coverage-run-js:
$(RM) -r out/$(BUILDTYPE)/.coverage
$(MAKE) coverage-build-js
-NODE_V8_COVERAGE=out/$(BUILDTYPE)/.coverage CI_SKIP_TESTS=$(COV_SKIP_TESTS) \
$(MAKE) jstest
TEST_CI_ARGS="$(TEST_CI_ARGS) --type=coverage" $(MAKE) jstest
$(MAKE) coverage-report-js

.PHONY: test
Expand Down
11 changes: 6 additions & 5 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1142,8 +1142,8 @@ def configure_library(lib, output):
if options.__dict__[shared_lib + '_includes']:
output['include_dirs'] += [options.__dict__[shared_lib + '_includes']]
elif pkg_cflags:
output['include_dirs'] += (
filter(None, map(str.strip, pkg_cflags.split('-I'))))
stripped_flags = [flag.strip() for flag in pkg_cflags.split('-I')]
output['include_dirs'] += [flag for flag in stripped_flags if flag]

# libpath needs to be provided ahead libraries
if options.__dict__[shared_lib + '_libpath']:
Expand All @@ -1159,7 +1159,7 @@ def configure_library(lib, output):
output['libraries'] += [pkg_libpath]

default_libs = getattr(options, shared_lib + '_libname')
default_libs = map('-l{0}'.format, default_libs.split(','))
default_libs = ['-l{0}'.format(lib) for lib in default_libs.split(',')]

if default_libs:
output['libraries'] += default_libs
Expand Down Expand Up @@ -1385,7 +1385,8 @@ def write_config(data, name):
# safe to split, cannot contain spaces
o['libraries'] += libs.split()
if cflags:
o['include_dirs'] += filter(None, map(str.strip, cflags.split('-I')))
stripped_flags = [flag.strip() for flag in cflags.split('-I')]
o['include_dirs'] += [flag for flag in stripped_flags if flag]
# use the "system" .gyp
o['variables']['icu_gyp_path'] = 'tools/icu/icu-system.gyp'
return
Expand Down Expand Up @@ -1666,7 +1667,7 @@ def make_bin_override():
if options.prefix:
config['PREFIX'] = options.prefix

config = '\n'.join(map('='.join, config.iteritems())) + '\n'
config = '\n'.join(['='.join(item) for item in config.items()]) + '\n'

# On Windows there's no reason to search for a different python binary.
bin_override = None if sys.platform == 'win32' else make_bin_override()
Expand Down
12 changes: 9 additions & 3 deletions deps/openssl/config/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ linux-armv4 linux-elf linux-x32 linux-x86_64 linux-ppc \
linux-ppc64 linux-ppc64le linux32-s390x linux64-s390x \
solaris-x86-gcc solaris64-x86_64-gcc VC-WIN64A VC-WIN32

CC = gcc
FAKE_GCC = ../config/fake_gcc.pl

CONFIGURE = ./Configure
# no-comp: against CRIME attack
# no-shared: openssl-cli needs static link
Expand Down Expand Up @@ -44,9 +47,12 @@ all: $(ARCHS) replace
$(ARCHS):
# Remove openssl .gitignore to follow nodejs .gitignore
if [ -e $(GITIGNORE) ]; then rm $(GITIGNORE); fi
# Confgure asm and generate asm sources
cd $(OPSSL_SRC); $(NO_WARN_ENV) $(PERL) $(CONFIGURE) $(COPTS) $@;
cd $(OPSSL_SRC); $(NO_WARN_ENV) CC=$(CC) $(PERL) $(CONFIGURE) $(COPTS) $@;
$(PERL) -w -I$(OPSSL_SRC) $(GENERATE) asm $@
# Confgure asm_avx2 and generate upto avx2 support
cd $(OPSSL_SRC); $(NO_WARN_ENV) CC=$(FAKE_GCC) $(PERL) $(CONFIGURE) \
$(COPTS) $@;
$(PERL) -w -I$(OPSSL_SRC) $(GENERATE) asm_avx2 $@
# Confgure no-asm and generate no-asm sources
cd $(OPSSL_SRC); $(NO_WARN_ENV) $(PERL) $(CONFIGURE) $(COPTS) \
no-asm $@;
Expand All @@ -61,4 +67,4 @@ replace:

clean:
find archs \( -name \*.S -o -name \*.s -o -name \*.asm -o \
-name \*.gypi -o -name \*.h -o -name \*.pm \) -exec rm "{}" \;
-name \*.gypi -o -name \*.h -o -name \*.pm -o -name \*.rc \) -exec rm "{}" \;
Loading