diff --git a/.gitignore b/.gitignore index 86664b41461a8e..7e263948622716 100644 --- a/.gitignore +++ b/.gitignore @@ -41,23 +41,19 @@ coverage/ /out -# various stuff that VC++ produces/uses -Debug/ -!**/node_modules/debug/ -Release/ -!**/node_modules/**/release +# various stuff that VC++ produces/uses and is not in /out +/Debug/ +/Release/ !doc/blog/** *.sln !nodemsi.sln *.suo -*.vcproj *.vcxproj !custom_actions.vcxproj *.vcxproj.user *.vcxproj.filters UpgradeLog*.XML _UpgradeReport_Files/ -ipch/ *.sdf *.opensdf *.VC.db diff --git a/.travis.yml b/.travis.yml index 576de336e2df11..98bfbe432ab3a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,12 @@ +x-ccache-setup-steps: &ccache-setup-steps + - export CCACHE_NOSTATS=1 + - export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches" + - export CC='ccache gcc-6' + - export CXX='ccache g++-6' + os: linux dist: xenial +language: cpp jobs: include: - stage: "Lint and Compile" @@ -21,7 +28,6 @@ jobs: - NODE=$(which node) make lint lint-py - name: "Compile V8" - language: cpp cache: ccache addons: apt: @@ -29,13 +35,12 @@ jobs: - ubuntu-toolchain-r-test packages: - g++-6 - install: - - CC='ccache gcc-6' CXX='ccache g++-6' ./configure + install: *ccache-setup-steps script: - - CC='ccache gcc-6' CXX='ccache g++-6' make -j2 -C out V=1 v8 + - ./configure + - make -j2 -C out V=1 v8 - name: "Compile Node.js" - language: cpp cache: ccache addons: apt: @@ -43,26 +48,35 @@ jobs: - ubuntu-toolchain-r-test packages: - g++-6 - install: - - CC='ccache gcc-6' CXX='ccache g++-6' ./configure + install: *ccache-setup-steps script: - - CC='ccache gcc-6' CXX='ccache g++-6' make -j2 V=1 + - ./configure + - make -j2 V=1 + - cp out/Release/node /home/travis/.ccache + - cp out/Release/cctest /home/travis/.ccache - stage: "Tests" - name: "Test Suite" - language: cpp + name: "Test JS Suites" cache: ccache - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 install: - - export CC='ccache gcc-6' CXX='ccache g++-6' JOBS=2 - - ./configure - # We already have a compile log in the above job - - make -j2 > /dev/null - - make -j1 build-addons build-js-native-api-tests build-node-api-tests > /dev/null + - mkdir -p out/Release + - cp /home/travis/.ccache/node out/Release/node + script: + - python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare default + + - name: "Test C++ Suites" + cache: ccache + install: + - export CCACHE_NOSTATS=1 + - export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches" + - export CC='ccache gcc' + - export CXX='ccache g++' + - mkdir -p out/Release + - cp /home/travis/.ccache/node out/Release/node + - ln -fs out/Release/node node + - cp /home/travis/.ccache/cctest out/Release/cctest + - touch config.gypi script: - - JOBS=2 FLAKY_TESTS=dontcare make -s -j1 V= test-ci | grep -F -e "---" -e "..." -v + - out/Release/cctest + - make -j1 V=1 test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp + - python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare addons js-native-api node-api diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 7e563417e1b569..3e58601579dc4e 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -65,13 +65,13 @@ The TSC has final authority over this project, including: * Contribution policy * GitHub repository hosting * Conduct guidelines -* Maintaining the list of additional Collaborators +* Maintaining the list of Collaborators -The current list of TSC members can be found in +The current list of TSC members is in [the project README](./README.md#current-project-team-members). -The operations of the TSC are governed by the [TSC Charter][] as approved by -the Node.js Foundation Board of Directors. +The [TSC Charter][] governs the operations of the TSC. All changes to the +Charter need approval by the Node.js Board of Directors. ### TSC Meetings diff --git a/common.gypi b/common.gypi index 11b5d3b7aeb11d..8676d28ca53303 100644 --- a/common.gypi +++ b/common.gypi @@ -1,5 +1,6 @@ { 'variables': { + 'configuring_node%': 0, 'asan%': 0, 'werror': '', # Turn off -Werror in V8 build. 'visibility%': 'hidden', # V8's visibility setting @@ -280,6 +281,12 @@ 'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin 'conditions': [ + [ 'configuring_node', { + 'msvs_configuration_attributes': { + 'OutputDirectory': '<(DEPTH)/out/$(Configuration)/', + 'IntermediateDirectory': '$(OutDir)obj/$(ProjectName)/' + }, + }], [ 'target_arch=="x64"', { 'msvs_configuration_platform': 'x64', }], diff --git a/configure.py b/configure.py index c23af2487314b0..d78a1caf64a1d2 100755 --- a/configure.py +++ b/configure.py @@ -1625,7 +1625,7 @@ def make_bin_override(): write('config.mk', do_not_edit + config) -gyp_args = ['--no-parallel'] +gyp_args = ['--no-parallel', '-Dconfiguring_node=1'] if options.use_ninja: gyp_args += ['-f', 'ninja'] diff --git a/doc/api/cli.md b/doc/api/cli.md index ced8cece1d57f0..60d75a6c04baef 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -230,6 +230,14 @@ https://github.com/tc39/ecma262/pull/1320. Both of the above may change in future updates, which will be breaking changes. +### `--heapsnapshot-signal=signal` + + +Generates a heap snapshot each time the process receives the specified signal. +`signal` must be a valid signal name. Disabled by default. + ### `--http-parser=library`