Skip to content
This repository has been archived by the owner on Oct 15, 2020. It is now read-only.

Commit

Permalink
Merge tag 'v10.10.0' into 10.10.0-proposal
Browse files Browse the repository at this point in the history
2018-09-06 Node.js v10.10.0 (Current) Release
Git-EVTag-v0-SHA512: 68e2f7c8e2d418784c607c6c55e0f01c876ab674ed3b5fabdbced0bcfb876aa0b7544eaa18d8e7922547c3d21e0cbe7ebe79a23cb04de6c803efe95351820452
  • Loading branch information
kfarnung committed Sep 10, 2018
2 parents 9b4011d + cdb3598 commit 67b92b0
Show file tree
Hide file tree
Showing 1,342 changed files with 36,992 additions and 41,084 deletions.
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ module.exports = {
message: 'Use new keyword when throwing an Error.',
}
],
/* eslint-enable max-len, quotes */
/* eslint-enable max-len */
'no-return-await': 'error',
'no-self-assign': 'error',
'no-self-compare': 'error',
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ deps/npm/node_modules/.bin/
# api docs artifacts
tools/doc/node_modules

# clang-format artifacts
tools/clang-format/node_modules

# test artifacts
tools/remark-cli/node_modules
tools/remark-preset-lint-node/node_modules
Expand Down
21 changes: 12 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,24 @@ compiler:
- clang
sudo: false
cache: ccache
os: linux
matrix:
include:
- os: linux
- name: "Linter"
node_js: "latest"
env:
- NODE=$(which node)
install:
- NODE=$(which node) make lint-md-build
- make lint-md-build
script:
- NODE=$(which node) make lint-ci
- os: linux
- make lint
- name: "Test Suite"
install:
- ./configure
- make -j2 V=
script:
- make -j2 test-ci
before_install:
- export CXX="ccache clang++ -Qunused-arguments"
- export CC="ccache clang -Qunused-arguments -Wno-unknown-warning-option"
- export JOBS=2
- make -j2 test
before_install:
- export CXX="ccache clang++ -Qunused-arguments"
- export CC="ccache clang -Qunused-arguments -Wno-unknown-warning-option"
- export JOBS=2
91 changes: 66 additions & 25 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,16 @@ platforms in production.
| GNU/Linux | Tier 1 | kernel >= 2.6.32, glibc >= 2.12 | x64, arm | |
| GNU/Linux | Tier 1 | kernel >= 3.10, glibc >= 2.17 | arm64 | |
| macOS/OS X | Tier 1 | >= 10.11 | x64 | |
| Windows | Tier 1 | >= Windows 7/2008 R2/2012 R2 | x86, x64 | vs2017 |
| SmartOS | Tier 2 | >= 15 < 16.4 | x86, x64 | see note1 |
| Windows | Tier 1 | >= Windows 7/2008 R2/2012 R2 | x86, x64 | [2](#fn2),[3](#fn3),[4](#fn4) |
| SmartOS | Tier 2 | >= 15 < 16.4 | x86, x64 | [1](#fn1) |
| FreeBSD | Tier 2 | >= 10 | x64 | |
| GNU/Linux | Tier 2 | kernel >= 3.13.0, glibc >= 2.19 | ppc64le >=power8 | |
| AIX | Tier 2 | >= 7.1 TL04 | ppc64be >=power7 | |
| GNU/Linux | Tier 2 | kernel >= 3.10, glibc >= 2.17 | s390x | |
| GNU/Linux | Experimental | kernel >= 2.6.32, glibc >= 2.12 | x86 | limited CI |
| Linux (musl) | Experimental | musl >= 1.0 | x64 | |

note1 - The gcc4.8-libs package needs to be installed, because node
<em id="fn1">1</em>: The gcc4.8-libs package needs to be installed, because node
binaries have been built with GCC 4.8, for which runtime libraries are not
installed by default. For these node versions, the recommended binaries
are the ones available in pkgsrc, not the one available from nodejs.org.
Expand All @@ -60,19 +60,22 @@ note1 - The gcc4.8-libs package needs to be installed, because node
by Joyent. SmartOS images >= 16.4 are not supported because
GCC 4.8 runtime libraries are not available in their pkgsrc repository

*Note*: On Windows, running Node.js in windows terminal emulators like `mintty`
requires the usage of [winpty](https://github.com/rprichard/winpty) for
Node's tty channels to work correctly (e.g. `winpty node.exe script.js`).
<em id="fn2">2</em>: Tier 1 support for building on Windows is only on 64 bit
hosts. Support is experimental for 32 bit hosts.

<em id="fn3">3</em>: On Windows, running Node.js in Windows terminal emulators
like `mintty` requires the usage of [winpty](https://github.com/rprichard/winpty)
for the tty channels to work correctly (e.g. `winpty node.exe script.js`).
In "Git bash" if you call the node shell alias (`node` without the `.exe`
extension), `winpty` is used automatically.

The Windows Subsystem for Linux (WSL) is not directly supported, but the
GNU/Linux build process and binaries should work. The community will only
address issues that reproduce on native GNU/Linux systems. Issues that only
reproduce on WSL should be reported in the
[WSL issue tracker](https://github.com/Microsoft/WSL/issues). Running the
Windows binary (`node.exe`) in WSL is not recommended, and will not work
without adjustment (such as stdio redirection).
<em id="fn4">4</em>: The Windows Subsystem for Linux (WSL) is not directly
supported, but the GNU/Linux build process and binaries should work. The
community will only address issues that reproduce on native GNU/Linux
systems. Issues that only reproduce on WSL should be reported in the
[WSL issue tracker](https://github.com/Microsoft/WSL/issues). Running the
Windows binary (`node.exe`) in WSL is not recommended, and will not work
without adjustment (such as stdio redirection).

### Supported toolchains

Expand All @@ -88,7 +91,7 @@ Depending on host platform, the selection of toolchains may vary.

#### Windows

* Visual Studio 2017 or the Build Tools thereof
* Visual Studio 2017 with the Windows 10 SDK on a 64 bit host.

#### OpenSSL asm support

Expand Down Expand Up @@ -132,17 +135,6 @@ More Developer Tools...`. This step will install `clang`, `clang++`, and
If the path to your build directory contains a space, the build will likely
fail.

After building, setting up [firewall rules](tools/macos-firewall.sh) can avoid
popups asking to accept incoming network connections when running tests.

Running the following script on macOS will add the firewall rules for the
executable `node` in the `out` directory and the symbolic `node` link in the
project's root directory.

```console
$ sudo ./tools/macos-firewall.sh
```

On FreeBSD and OpenBSD, you may also need:
* libexecinfo

Expand All @@ -166,6 +158,17 @@ for more information.
Note that the above requires that `python` resolve to Python 2.6 or 2.7
and not a newer version.

After building, setting up [firewall rules](tools/macos-firewall.sh) can avoid
popups asking to accept incoming network connections when running tests.

Running the following script on macOS will add the firewall rules for the
executable `node` in the `out` directory and the symbolic `node` link in the
project's root directory.

```console
$ sudo ./tools/macos-firewall.sh
```

#### Running Tests

To verify the build:
Expand Down Expand Up @@ -250,6 +253,44 @@ To install this version of Node.js into a system directory:
$ [sudo] make install
```

#### Building a debug build

If you run into an issue where the information provided by the JS stack trace
is not enough, or if you suspect the error happens outside of the JS VM, you
can try to build a debug enabled binary:

```console
$ ./configure --debug
$ make -j4
```

`make` with `./configure --debug` generates two binaries, the regular release
one in `out/Release/node` and a debug binary in `out/Debug/node`, only the
release version is actually installed when you run `make install`.

To use the debug build with all the normal dependencies overwrite the release
version in the install directory:

``` console
$ make install --prefix=/opt/node-debug/
$ cp -a -f out/Debug/node /opt/node-debug/node
```

When using the debug binary, core dumps will be generated in case of crashes.
These core dumps are useful for debugging when provided with the
corresponding original debug binary and system information.

Reading the core dump requires `gdb` built on the same platform the core dump
was captured on (i.e. 64 bit `gdb` for `node` built on a 64 bit system, Linux
`gdb` for `node` built on Linux) otherwise you will get errors like
`not in executable format: File format not recognized`.

Example of generating a backtrace from the core dump:

``` console
$ gdb /opt/node-debug/node core.node.8.1535359906
$ backtrace
```

### Windows

Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V10.md#10.9.0">10.9.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V10.md#10.10.0">10.10.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.9.0">10.9.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.8.0">10.8.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.7.0">10.7.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V10.md#10.6.0">10.6.0</a><br/>
Expand Down
7 changes: 4 additions & 3 deletions COLLABORATOR_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ badge.

For first-time contributors, check if the commit author is the same as the
pull request author, and ask if they have configured their git
username and email to their liking as per [this guide][git-username].
This is to make sure they would be promoted to "contributor" once
their pull request lands.
[username][git-username] and [email][git-email] to their liking.
This is to make sure they would be promoted to "contributor" once their
pull request lands.

### Closing Issues and Pull Requests

Expand Down Expand Up @@ -889,5 +889,6 @@ If you cannot find who to cc for a file, `git shortlog -n -s <file>` may help.
[git-node]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md
[git-node-metadata]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md#git-node-metadata
[git-username]: https://help.github.com/articles/setting-your-username-in-git/
[git-email]: https://help.github.com/articles/setting-your-commit-email-address-in-git/
[node-core-utils-credentials]: https://github.com/nodejs/node-core-utils#setting-up-credentials
[node-core-utils-issues]: https://github.com/nodejs/node-core-utils/issues
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ The externally maintained libraries used by Node.js are:

- Acorn, located at deps/acorn, is licensed as follows:
"""
Copyright (C) 2012-2017 by various contributors (see AUTHORS)
Copyright (C) 2012-2018 by various contributors (see AUTHORS)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading

0 comments on commit 67b92b0

Please sign in to comment.