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

v4.5.0 proposal #7688

Merged
merged 261 commits into from
Aug 16, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
261 commits
Select commit Hold shift + click to select a range
75ecf8e
async_wrap: add parent uid to init hook
AndreasMadsen Jan 20, 2016
6f312b3
http_parser: use `MakeCallback`
trevnorris Feb 19, 2016
63356df
src,http: fix uncaughtException miss in http
trevnorris Mar 4, 2016
ee70405
src,http_parser: remove KickNextTick call
trevnorris Mar 11, 2016
c3d87ee
src: reword command and add ternary
trevnorris Mar 23, 2016
0642a14
async_wrap: setupHooks now accepts object
trevnorris Feb 22, 2016
c06e2b0
async_wrap: notify post if intercepted exception
trevnorris Feb 23, 2016
747f107
async_wrap: don't abort on callback exception
trevnorris Mar 14, 2016
271927f
async_wrap: pass uid to JS as double
trevnorris Jun 1, 2016
c807287
tls,https: respect address family when connecting
bnoordhuis May 9, 2016
e3f9bc8
test: use strictEqual consistently in agent test
bnoordhuis May 28, 2016
74a5e91
debugger: propagate --debug-port= to debuggee
bnoordhuis Oct 21, 2015
efdeb69
test: work around debugger not killing inferior
bnoordhuis May 28, 2016
13d0e46
build: enable compilation for linuxOne
mhdawson Mar 28, 2016
9606f76
test: run v8 tests from node tree
exinfinitum Mar 28, 2015
9809992
deps: backport 9c927d0f01 from V8 upstream
MylesBorins Jun 28, 2016
4c423e6
tools: explicit path for V8 test tap output
Jun 28, 2016
7d66752
zlib: release callback and buffer after processing
mdlavin May 24, 2016
b9dfdfe
vm: don't abort process when stack space runs out
addaleax May 20, 2016
5782ec2
module: don't cache uninitialized builtins
addaleax May 20, 2016
d9e9d9f
deps: backport e7cc609 from upstream V8
ofrobots Jun 15, 2016
1164f54
deps: fix segfault during gc
ofrobots Jun 15, 2016
0b8124f
child_process: emit IPC messages on next tick
cjihrig May 20, 2016
c0a42bc
test: verify IPC messages are emitted on next tick
santigimeno May 21, 2016
f152adf
cluster: close ownerless handles on disconnect()
cjihrig May 23, 2016
72fb281
util: improve util.format performance
evanlucas Feb 22, 2016
d0bf09d
util: improve format() performance further
mscdex Feb 23, 2016
9aec1dd
test: test cluster worker disconnection on error
santigimeno May 23, 2016
8513232
build: split CI rules in Makefile
joaocgreis Jun 15, 2016
e06ab64
deps: update to http-parser 2.7.0
indutny Jun 8, 2016
07fd52e
http: skip body and next message of CONNECT res
indutny Apr 19, 2016
55f8689
test: add test for responses to HTTP CONNECT req
slushie Apr 19, 2016
fb03e57
buffer: backport --zero-fill-buffers cli option
jasnell Mar 16, 2016
c237ac3
doc: git mv to .md
eljefedelrodeodeljefe Jul 1, 2016
0bfedd1
win,build: add creation of zip and 7z package
bzoz Mar 24, 2016
e544b1c
test,win: skip addons/load-long-path on WOW64
orangemocha Jul 8, 2016
200429e
buffer: ignore negative allocation lengths
addaleax May 29, 2016
7090481
buffer: backport new buffer constructor APIs to v4.x
ChALkeR Jun 19, 2016
4107b5d
deps: backport 22c5e46 from V8
Jul 6, 2016
9121e94
doc: note that process.config can and will be changed
jasnell Apr 19, 2016
b9136c0
src: add process.binding('config')
jasnell Apr 19, 2016
06327e5
tls: use process.binding('config') to detect fips mode
jasnell Jul 5, 2016
94eb980
deps: upgrade libuv to 1.9.0
saghul Apr 1, 2016
da7b74b
deps: upgrade libuv to 1.9.1
saghul May 16, 2016
7779639
unix,stream: fix getting the correct fd for a handle
saghul May 18, 2016
b07c3a6
tty: use blocking mode on OS X
Fishrock123 May 20, 2016
a1719a9
udp: use libuv API to get file descriptor
saghul May 20, 2016
01b314d
test: test TTY problems by fakeing a TTY using openpty
Fishrock123 May 20, 2016
b21d145
src: add node::FreeEnvironment public API
zcbenz Sep 28, 2015
f0edf87
doc: add vm example, be able to require modules
eljefedelrodeodeljefe Apr 21, 2016
a3fa5db
repl: copying tabs shouldn't trigger completion
ghaiklor May 13, 2016
5380743
doc: document socket.destroyed
tusharmath Apr 9, 2016
39e2474
assert: allow circular references
Trott Apr 27, 2016
5f444ed
test: add tests for stream3 buffering using cork
alexjeffburke May 12, 2016
2259e5d
test: avoid test-cluster-master-* flakiness
stefanmb May 2, 2016
3aef9b8
test: unmark test-http-regr-gh-2928 as flaky
Trott May 3, 2016
7813af7
doc: Add resolveNaptr and naptr rrtype docs
doug-wade May 5, 2016
7c55f59
test: make stdout buffer test more robust
Trott May 7, 2016
af4b56d
test: pass python path to node-gyp
hefangshi May 9, 2016
350f4cf
doc: server.listen truncates socket path on unix
jeanregisser May 9, 2016
140b84d
tools: print stderr on bad test.py `vmArch` check
Fishrock123 May 16, 2016
65b75b5
build: unbreak configure with python 2.6
bnoordhuis May 19, 2016
373ffc5
installer: don't install node_internals.h
bnoordhuis May 21, 2016
9cccaa3
test: fix component printing on windows
bnoordhuis May 21, 2016
426aa0a
src: fix Windows segfault with `--eval`
May 23, 2016
4ee863d
child_process: allow buffer encoding in spawnSync
cjihrig May 23, 2016
ecf5c1c
test: refactor spawnSync() cwd test
cjihrig May 23, 2016
5b807ac
doc: specify how to link issues in commit log
lpinca Jun 5, 2016
629a76f
doc: remove cluster.setupMaster() myth
cjihrig Jun 6, 2016
ece428e
http: fix no dumping after `maybeReadMore`
indutny Jun 4, 2016
6324723
doc,dgram: fix addMembership documentation
santigimeno Jun 9, 2016
0a85987
doc: update build instructions for Windows
joaocgreis Jun 13, 2016
7d6acef
test: listen on and connect to 127.0.0.1
bnoordhuis Jul 2, 2016
08cd81b
benchmark: add util.format benchmark
evanlucas Feb 22, 2016
d1a0a14
doc: Add CTC meeting minutes for 2016-05-04
mhdawson May 4, 2016
2ef0832
doc: add bmeck to collaborators
bmeck May 25, 2016
c5051ef
doc: add firedfox to collaborators
firedfox May 24, 2016
8cba3b2
cluster: guard against undefined message handlers
cjihrig May 20, 2016
f395f6f
doc: add yorkie to collaborators
yorkie May 26, 2016
8c412af
test: verify cluster worker exit
cjihrig May 26, 2016
e2e85ce
doc: clarified use of sexual language in the CoC
nebrius May 25, 2016
649d201
doc: improve `server.address()` doc text
Trott May 26, 2016
72e8ee5
doc: improve server.listen() documentation prose
Trott May 26, 2016
1c65f1e
doc: add info on what's used for fswatch on AIX
mhdawson May 18, 2016
cde3014
test: remove modifcation to common.PORT
Trott May 26, 2016
fbdc16a
doc: update labels and CI info in onboarding doc
Trott May 26, 2016
694e344
doc: fix typos in WORKING_GROUPS.md
joaosa May 28, 2016
146cba1
doc: improve debugger doc prose
Trott May 26, 2016
644bfe1
test: fix test-debug-port-numbers on OS X
santigimeno May 29, 2016
15bb0be
doc,test: add `How to write a Node.js test` guide
santigimeno May 26, 2016
44228df
test: remove `common.PORT` from gc tests
Trott May 27, 2016
6ece2a0
cluster: rewrite debug ports consistently
cjihrig May 29, 2016
5b1f546
test: remove non-incremental common.PORT changes
Trott May 29, 2016
96de3f8
doc: Add CII Best Practices badge to README.md
david-a-wheeler May 17, 2016
77325d5
test: remove disabled eio race test
Trott May 31, 2016
1bd62c7
benchmark: add benchmark for Buffer.concat
addaleax May 29, 2016
0013af6
doc: fix header depth of util.isSymbol
jasnell Jun 3, 2016
2a59e4e
test: improve debug-break-on-uncaught reliability
Trott May 16, 2016
8eb18e4
child_process: measure buffer length in bytes
Trott May 14, 2016
9d13337
http: wait for both prefinish/end to keepalive
indutny Jun 4, 2016
042e858
test: make test-child-process-fork-net more robust
Trott May 28, 2016
8724c44
test: add test for uid/gid setting in spawn
Trott May 31, 2016
c9ef04a
doc: fix events typo
greysonp Jun 17, 2016
ef37a2e
doc: add internal link in GOVERNANCE.md
Trott Jun 12, 2016
96ed883
test: enable test-debug-brk-no-arg
Trott Jun 3, 2016
65b5ccc
test: fix spawn on windows
mscdex May 29, 2016
57ba51e
doc: fix IRC link
imyller Jun 8, 2016
85f70b3
doc: clarify use of `0` port value
Trott Jun 7, 2016
4a7e333
doc: use `Buffer.byteLength` for Content-Length
kimown Jun 12, 2016
7182f5f
tools: fix license builder to work with icu-small
Jun 3, 2016
b95e5d7
benchmark: add benchmark for url.format()
Trott Jun 9, 2016
79b4588
test: add tests for some stream.Readable uses
addaleax Jun 10, 2016
3be5cdc
debugger: remove obsolete setTimeout
Trott Jun 4, 2016
f8fe474
doc: fixing minor typo in AtExit hooks section
danbev Jun 29, 2016
5129f3f
test: mark test-vm-timeout flaky on windows
Trott Jun 22, 2016
868af29
doc: add RReverser to collaborators
RReverser Jun 22, 2016
ccb278d
doc: mention http request "aborted" events
kemitchell Jun 10, 2016
9122b3b
doc: update "who to cc in issues" chart
Fishrock123 May 11, 2016
13d60ca
doc: add lance to collaborators
lance Jun 24, 2016
71ef71c
doc: add CTC meeting minutes 2016-06-15
joshgav Jun 16, 2016
c8e9adb
repl: fix tab completion for defined commands
princejwesley Jun 22, 2016
35ee35c
doc: clarify child_process stdout/stderr types
sartrey Jun 22, 2016
6c94c67
doc: fix "sign.verify" typo in crypto doc.
rus0000 Jun 24, 2016
a488892
assert: remove unneeded arguments special handling
Trott Jun 24, 2016
066cefb
doc: improve usage of `zero`/`0`
Trott Jun 28, 2016
8273824
test: remove common.PORT from http tests
Trott Jun 29, 2016
186af29
doc: fix detached child stdio example
cjihrig Jul 5, 2016
33a08b0
doc: add bartosz sosnowski to colaborators
bzoz Jul 6, 2016
537f333
doc: fix minor style issues in http.md
Trott Jul 4, 2016
db35efa
test: fix flaky test-net-write-slow
Trott Jul 6, 2016
700c6d9
doc: added information on how to run the linter.
diosney Jul 4, 2016
0f903bb
doc: add benchmark who-to-CC info
Trott Jul 8, 2016
de5e235
doc: dns.resolve fix callback argument description
qheaden Jul 4, 2016
242d6c7
tools: remove unused variable
Trott Jul 7, 2016
b5e516a
test: remove unused var in test-tls-server-verify
Trott Jul 7, 2016
4d36a67
test: remove unused var from child-process-fork
Trott Jul 7, 2016
7bd7c23
test: remove unused var from stream2 test
Trott Jul 7, 2016
3241536
test: remove unused var in net-server-try-ports
Trott Jul 7, 2016
4b464ce
benchmark: remove unused variables
Trott Jul 7, 2016
1d100f6
test: remove unused vars from http/https tests
Trott Jul 7, 2016
d7ce992
tools: update ESLint, fix unused vars bug
Trott Jul 7, 2016
f0b0fc4
test: update weak module for gc tests
Trott May 27, 2016
e3097b7
test: test isFullWidthCodePoint with invalid input
Trott Jun 25, 2016
75e4f74
doc: fix cluster worker 'message' event
cjihrig Jun 15, 2016
9c31c73
src: remove unused #include statement
bnoordhuis May 4, 2016
2b0dce5
src: don't use locale-sensitive strcasecmp()
bnoordhuis May 4, 2016
efadf76
tools: update certdata.txt
bnoordhuis Jun 22, 2016
1e0cede
crypto: update root certificates
bnoordhuis Jun 22, 2016
1baa145
test: remove internet/test-tls-connnect-cnnic
bnoordhuis Jun 23, 2016
c03bd57
src: check uv_async_init() return value
bnoordhuis Jun 22, 2016
67937bc
src: guard against starting fs watcher twice
bnoordhuis Jun 22, 2016
e103044
src: remove unused data member write_queue_size_
bnoordhuis Jun 22, 2016
38baf6a
src: remove unused md_ data members
bnoordhuis Jun 22, 2016
7305e7b
src: remove duplicate HMAC_Init calls
bnoordhuis Jun 22, 2016
61de6e9
src: remove deprecated HMAC_Init, use HMAC_Init_ex
bnoordhuis Jun 22, 2016
e6a27a7
src: fix use-after-return in zlib bindings
bnoordhuis Jun 22, 2016
53a67ed
src: fix bad logic in uid/gid checks
bnoordhuis Jun 22, 2016
b956635
tls: catch `certCbDone` exceptions
indutny May 20, 2016
79bd39c
build: add v8 requirement to test-v8* in Makefile
targos Jun 29, 2016
5290c9d
build: use BUILDTYPE when building V8 in Makefile
targos Jun 30, 2016
a31d316
test: add test for exec() known issue
Trott Jun 22, 2016
fd05b0b
Revert "child_process: measure buffer length in bytes"
Trott Jun 22, 2016
6a08535
child_process: preserve argument type
Trott Jun 23, 2016
09349a8
cluster: don't send messages if no IPC channel
santigimeno May 31, 2016
20d3378
cluster: reset handle index on close
santigimeno May 25, 2016
7dbb0d0
buffer: fix dataview-set benchmark
RReverser May 22, 2016
8557597
vm: don't print out arrow message for custom error
addaleax Jun 24, 2016
db2b23f
src: fix sporadic deadlock in SIGUSR1 handler
bnoordhuis Mar 25, 2016
dda81b4
src: unify implementations of Utf8Value etc.
addaleax Apr 23, 2016
391fc80
tools: update cpplint to r456
bnoordhuis Jun 28, 2016
e74f199
tools: disable unwanted cpplint rules again
bnoordhuis Jun 28, 2016
09e98a4
tools: add back --mode=tap to cpplint
bnoordhuis Jun 28, 2016
4a2bd2d
tools: allow cpplint to run outside git repo
bnoordhuis Jun 28, 2016
ccc701e
src: fix build/c++tr1 cpplint warnings
bnoordhuis Jun 28, 2016
c8f78a2
src: fix build/header_guard cpplint warnings
bnoordhuis Jun 28, 2016
16f2497
src: fix readability/braces cpplint warnings
bnoordhuis Jun 28, 2016
c90ae7f
src: fix readability/constructors cpplint warnings
bnoordhuis Jun 28, 2016
7852117
src: fix readability/inheritance cpplint warnings
bnoordhuis Jun 28, 2016
4748bed
src: fix readability/namespace cpplint warnings
bnoordhuis Jun 28, 2016
68db091
src: fix readability/nolint cpplint warnings
bnoordhuis Jun 28, 2016
d6595ad
src: fix runtime/indentation_namespace warnings
bnoordhuis Jun 28, 2016
f530a36
src: fix runtime/int cpplint warnings
bnoordhuis Jun 28, 2016
44cbe03
src: fix runtime/references cpplint warnings
bnoordhuis Jun 28, 2016
066064d
src: fix whitespace/blank_line cpplint warnings
bnoordhuis Jun 28, 2016
4f4d3e7
src: fix whitespace/indent cpplint warnings
bnoordhuis Jun 28, 2016
0db3aa9
build: remove unused files from CPPLINT_FILES
bnoordhuis Jun 28, 2016
27c2d25
src: lint node_win32_perfctr_provider.cc
bnoordhuis Jun 28, 2016
42e7c9d
src: lint node_lttng_tp.h
bnoordhuis Jun 28, 2016
5aff60e
src: lint v8abbr.h
bnoordhuis Jun 28, 2016
68e9fd4
tools: fix -Wunused-variable warning
bnoordhuis Jun 28, 2016
23797eb
src: remove obsolete NOLINT comments
bnoordhuis Jun 28, 2016
3eea551
src: fix memory leak in WriteBuffers() error path
bnoordhuis Jun 22, 2016
eab9ced
test: fix flaky test-vm-timeout
addaleax Jun 22, 2016
8404e34
Revert "test: mark test-vm-timeout flaky on windows"
addaleax Jun 22, 2016
e52b2b0
doc: add `added:` information for assert
Trott May 11, 2016
ec90384
doc: add `added:` information for child_process
addaleax May 23, 2016
eb08c17
doc: add `added: ` data for cli.md
Trott May 25, 2016
a0ca24b
doc: add `added:` information for console
edsadr May 26, 2016
1d99059
doc: add `added:` information for dns
julianduque May 27, 2016
b08ff33
doc: add `added:` information for https
addaleax Jun 23, 2016
78d361b
doc: add `added` information for net
italoacasas Jun 3, 2016
8b53f4b
doc: add `added:` information for os
bengl May 6, 2016
f1a37ad
doc: add `added:` information for path
julianduque May 26, 2016
a870cdc
doc: add `added:` information for punycode
firedfox May 17, 2016
eec0c63
doc: add `added:` information for querystring
bengl May 5, 2016
e6d7bfc
doc: add `added:` information for readline
julianduque May 26, 2016
4474e83
doc: add `added:` information for repl
addaleax Jun 10, 2016
5b50b1c
doc: add `added:` info for `string_decoder`
Trott May 13, 2016
3c8f19f
doc: add `added:` in for `tty`
Trott May 16, 2016
1758f02
doc: add `added:` information for url
bengl May 5, 2016
3e3471f
doc: add `added:` information for v8
Trott May 11, 2016
7abfb6e
doc: add `added:` information for vm
addaleax May 27, 2016
a53253a
doc: add `added:` information for zlib
addaleax May 18, 2016
88f46b8
doc: add `added:` information for timers
addaleax Jun 30, 2016
2244a3c
doc: adds 'close' events to fs.ReadStream and fs.WriteStream
May 1, 2016
1e9d27c
doc: add `added:` information for fs
addaleax May 12, 2016
fd4aa6c
doc: correct `added:` information for fs.access
richardlau Jun 14, 2016
9b8565c
doc: add `added:` information for tls
italoacasas May 27, 2016
fcb4e41
doc: add `added:` information for process
bengl May 5, 2016
1a5c025
doc: remove superfluos backticks in process.md
addaleax Jul 12, 2016
60c054b
doc: add information for IncomingMessage.destroy()
Trott Jun 8, 2016
5c1d8e1
doc: add `added:` information for http
addaleax Jun 23, 2016
1e86d16
doc: buffers are not sent over IPC with a socket
Jul 12, 2016
ec25f38
doc: add `added:` information for buffer
addaleax May 1, 2016
0149cb0
tools: add mock-y js-yaml dependency to doctool
addaleax May 1, 2016
2832a60
tools: parse documentation metadata
tflanagan Nov 14, 2015
8f76d7d
test,tools: test yaml parsing of doctool
addaleax Apr 30, 2016
ea13763
tools: allow multiple added: version entries
addaleax Apr 30, 2016
96b5aa8
tools: update marked dependency
firedfox Apr 25, 2016
8b88c38
tools: lint for object literal spacing
Trott May 5, 2016
686d7b3
test: build addons with V8_DEPRECATION_WARNINGS=1
bnoordhuis May 9, 2016
b869cdb
doc: fix deprecation warnings in addon examples
bnoordhuis May 9, 2016
ea20796
build,test: fix build-addons dependency chain
bnoordhuis May 9, 2016
ed193ad
tools: fix tools/doc/addon-verify.js regression
addaleax May 9, 2016
da1e13f
build: add Make `doc-only` target
jmm Nov 18, 2015
607173b
tools: fix regression in doctool
May 10, 2016
3681b9b
test: refactor doctool tests
Trott May 12, 2016
f9f85a0
tools: restore change of signatures to opts hashes
jmm May 10, 2016
9ef6e23
tools: make sure doctool anchors respect includes
addaleax May 23, 2016
d50f169
tools,doc: add example usage for REPLACEME tag
addaleax May 19, 2016
8a7c5fd
build: add REPLACEME tag for version info in docs
bnoordhuis May 13, 2016
223c0e2
test: skip doctool tests when js-yaml is missing
addaleax Jun 8, 2016
e9ff0f8
doc: make doc-only -> fallback to user binary
eljefedelrodeodeljefe May 20, 2016
6562444
crypto: allow GCM ciphers to have longer IV length
mwain Apr 25, 2016
d863327
src: clean up string_search
mscdex Jul 12, 2016
af4940d
deps: upgrade npm in LTS to 2.15.9
zkat Jul 12, 2016
9a8acad
test: use random ports where possible
mscdex May 29, 2016
236491e
build: update build-addons when node-gyp changes
lance May 16, 2016
046d651
benchmark: fix child-process-exec-stdout on win
bzoz May 31, 2016
50577fa
2016-08-15, Version 4.5.0 'Argon' (LTS)
Jul 12, 2016
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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ rules:
comma-spacing: 2
eol-last: 2
indent: [2, 2, {SwitchCase: 1}]
key-spacing: [2, {mode: "minimum"}]
keyword-spacing: 2
max-len: [2, 80, 2]
new-parens: 2
Expand Down
20 changes: 16 additions & 4 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,20 @@ $ make test-npm

To build the documentation:

This will build Node.js first (if necessary) and then use it to build the docs:

```text
$ make doc
```

If you have an existing Node.js you can build just the docs with:

```text
$ NODE=node make doc-only
```

(Where `node` is the path to your executable.)

To read the documentation:

```text
Expand All @@ -89,8 +99,10 @@ $ node -e "console.log('Hello from Node.js ' + process.version)"
Prerequisites:

* [Python 2.6 or 2.7](https://www.python.org/downloads/)
* Visual Studio 2013 / 2015, all editions including the Community edition, or
* Visual Studio Express 2013 / 2015 for Desktop
* One of:
* [Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools)
* [Visual Studio](https://www.visualstudio.com/) 2013 / 2015, all editions including the Community edition
* [Visual Studio](https://www.visualstudio.com/) Express 2013 / 2015 for Desktop
* Basic Unix tools required for some tests,
[Git for Windows](http://git-scm.com/download/win) includes Git Bash
and tools which can be included in the global `PATH`.
Expand All @@ -107,8 +119,8 @@ To run the tests:

To test if Node.js was built correctly:

```
$ node -e "console.log('Hello from Node.js ' + process.version)"
```text
> Release\node -e "console.log('Hello from Node.js', process.version)"
```

### Android / Android-based devices (e.g., Firefox OS)
Expand Down
295 changes: 295 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
all.
* Please be kind and courteous. There's no need to be mean or rude.
* Respect that some individuals and cultures consider the casual use of
profanity offensive and off-putting.
profanity and sexualized language offensive and off-putting.
* Respect that people have differences of opinion and that every
design or implementation choice carries a trade-off and numerous
costs. There is seldom a right answer.
Expand Down
16 changes: 13 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ and built upon.
#### Respect the stability index

The rules for the master branch are less strict; consult the
[stability index](./doc/api/documentation.markdown#stability-index) for details.
[stability index](./doc/api/documentation.md#stability-index) for details.

In a nutshell, modules are at varying levels of API stability. Bug fixes are
always welcome but API or behavioral changes to modules at stability level 3
Expand Down Expand Up @@ -120,6 +120,12 @@ run `git shortlog` or `git log --oneline`.
Check the output of `git log --oneline files_that_you_changed` to find out
what subsystem (or subsystems) your changes touch.

If your patch fixes an open issue, you can add a reference to it at the end
of the log. Use the `Fixes:` prefix and the full issue URL. For example:

```
Fixes: https://github.com/nodejs/node/issues/1337
```

### Step 4: Rebase

Expand All @@ -134,8 +140,9 @@ $ git rebase upstream/master
### Step 5: Test

Bug fixes and features **should come with tests**. Add your tests in the
test/parallel/ directory. Look at other tests to see how they should be
structured (license boilerplate, common includes, etc.).
`test/parallel/` directory. For guidance on how to write a test for the Node.js
project, see this [guide](./doc/guides/writing_tests.md). Looking at other tests
to see how they should be structured can also help.

```text
$ ./configure && make -j8 test
Expand All @@ -144,6 +151,9 @@ $ ./configure && make -j8 test
Make sure the linter is happy and that all tests pass. Please, do not submit
patches that fail either check.

Running `make test` will run the linter as well unless one or more tests fail.
If you want to run the linter without running tests, use `make lint`.

If you are updating tests and just want to run a single test to check it, you
can use this syntax to run it exactly as the test harness would:

Expand Down
2 changes: 1 addition & 1 deletion GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ responsibility for the change. In the case of pull requests proposed
by an existing Collaborator, an additional Collaborator is required
for sign-off. Consensus should be sought if additional Collaborators
participate and there is disagreement around a particular
modification. See _Consensus Seeking Process_ below for further detail
modification. See [Consensus Seeking Process](#consensus-seeking-process) below for further detail
on the consensus model used for governance.

Collaborators may opt to elevate significant or controversial
Expand Down
137 changes: 114 additions & 23 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,29 @@ STAGINGSERVER ?= node-www

OSTYPE := $(shell uname -s | tr '[A-Z]' '[a-z]')

ifdef QUICKCHECK
QUICKCHECK_ARG := --quickcheck
endif

ifdef ENABLE_V8_TAP
TAP_V8 := --junitout $(PWD)/v8-tap.xml
TAP_V8_INTL := --junitout $(PWD)/v8-intl-tap.xml
TAP_V8_BENCHMARKS := --junitout $(PWD)/v8-benchmarks-tap.xml
endif

ifdef DISABLE_V8_I18N
V8_TEST_NO_I18N := --noi18n
V8_BUILD_OPTIONS += i18nsupport=off
endif

BUILDTYPE_LOWER := $(shell echo $(BUILDTYPE) | tr '[A-Z]' '[a-z]')

# Determine EXEEXT
EXEEXT := $(shell $(PYTHON) -c \
"import sys; print('.exe' if sys.platform == 'win32' else '')")

NODE ?= ./node$(EXEEXT)
NODE_EXE = node$(EXEEXT)
NODE ?= ./$(NODE_EXE)
NODE_G_EXE = node_g$(EXEEXT)

# Flags for packaging.
Expand Down Expand Up @@ -81,14 +98,20 @@ distclean:
-rm -rf deps/icu
-rm -rf deps/icu4c*.tgz deps/icu4c*.zip deps/icu-tmp
-rm -f $(BINARYTAR).* $(TARBALL).*
-rm -rf deps/v8/testing/gmock
-rm -rf deps/v8/testing/gtest

check: test

cctest: all
@out/$(BUILDTYPE)/$@

v8:
tools/make-v8.sh v8
$(MAKE) -C deps/v8 $(V8_ARCH).$(BUILDTYPE_LOWER) $(V8_BUILD_OPTIONS)

test: | cctest # Depends on 'all'.
$(PYTHON) tools/test.py --mode=release doctool message parallel sequential -J
$(PYTHON) tools/test.py --mode=release doctool message pseudo-tty parallel sequential -J
$(MAKE) jslint
$(MAKE) cpplint

Expand All @@ -100,25 +123,30 @@ test-valgrind: all

test/gc/node_modules/weak/build/Release/weakref.node: $(NODE_EXE)
$(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \
--python="$(PYTHON)" \
--directory="$(shell pwd)/test/gc/node_modules/weak" \
--nodedir="$(shell pwd)"

# Implicitly depends on $(NODE_EXE), see the build-addons rule for rationale.
test/addons/.docbuildstamp: doc/api/addons.markdown
test/addons/.docbuildstamp: tools/doc/addon-verify.js doc/api/addons.md
$(RM) -r test/addons/??_*/
$(NODE) tools/doc/addon-verify.js
$(NODE) $<
touch $@

ADDONS_BINDING_GYPS := \
$(filter-out test/addons/??_*/binding.gyp, \
$(wildcard test/addons/*/binding.gyp))

# Implicitly depends on $(NODE_EXE), see the build-addons rule for rationale.
test/addons/.buildstamp: $(ADDONS_BINDING_GYPS) | test/addons/.docbuildstamp
# Depends on node-gyp package.json so that build-addons is (re)executed when
# node-gyp is updated as part of an npm update.
test/addons/.buildstamp: deps/npm/node_modules/node-gyp/package.json \
$(ADDONS_BINDING_GYPS) test/addons/.docbuildstamp
# Cannot use $(wildcard test/addons/*/) here, it's evaluated before
# embedded addons have been generated from the documentation.
for dirname in test/addons/*/; do \
$(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \
--python="$(PYTHON)" \
--directory="$$PWD/$$dirname" \
--nodedir="$$PWD"; \
done
Expand All @@ -129,7 +157,7 @@ test/addons/.buildstamp: $(ADDONS_BINDING_GYPS) | test/addons/.docbuildstamp
# if the subprocess touched anything so it pessimistically assumes that
# .buildstamp and .docbuildstamp are out of date and need a rebuild.
# Just goes to show that recursive make really is harmful...
# TODO(bnoordhuis) Force rebuild after gyp or node-gyp update.
# TODO(bnoordhuis) Force rebuild after gyp update.
build-addons: $(NODE_EXE) test/addons/.buildstamp

test-gc: all test/gc/node_modules/weak/build/Release/weakref.node
Expand All @@ -143,9 +171,24 @@ test-all: test-build test/gc/node_modules/weak/build/Release/weakref.node
test-all-valgrind: test-build
$(PYTHON) tools/test.py --mode=debug,release --valgrind

CI_NATIVE_SUITES := addons
CI_JS_SUITES := doctool message parallel pseudo-tty sequential

# Build and test addons without building anything else
test-ci-native: | test/addons/.buildstamp
$(PYTHON) tools/test.py -p tap --logfile test.tap \
--mode=release --flaky-tests=$(FLAKY_TESTS) \
$(TEST_CI_ARGS) $(CI_NATIVE_SUITES)

# This target should not use a native compiler at all
test-ci-js:
$(PYTHON) tools/test.py -p tap --logfile test.tap \
--mode=release --flaky-tests=$(FLAKY_TESTS) \
$(TEST_CI_ARGS) $(CI_JS_SUITES)

test-ci: | build-addons
$(PYTHON) tools/test.py -p tap --logfile test.tap --mode=release --flaky-tests=$(FLAKY_TESTS) \
$(TEST_CI_ARGS) addons doctool message parallel sequential
$(TEST_CI_ARGS) $(CI_NATIVE_SUITES) $(CI_JS_SUITES)

test-release: test-build
$(PYTHON) tools/test.py --mode=release
Expand Down Expand Up @@ -187,15 +230,41 @@ test-timers:
test-timers-clean:
$(MAKE) --directory=tools clean

apidoc_sources = $(wildcard doc/api/*.markdown)
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html)) \
$(addprefix out/,$(apidoc_sources:.markdown=.json))
test-v8: v8
# note: performs full test unless QUICKCHECK is specified
deps/v8/tools/run-tests.py --arch=$(V8_ARCH) \
--mode=$(BUILDTYPE_LOWER) $(V8_TEST_NO_I18N) $(QUICKCHECK_ARG) \
--no-presubmit \
--shell-dir=$(PWD)/deps/v8/out/$(V8_ARCH).$(BUILDTYPE_LOWER) \
$(TAP_V8)

test-v8-intl: v8
# note: performs full test unless QUICKCHECK is specified
deps/v8/tools/run-tests.py --arch=$(V8_ARCH) \
--mode=$(BUILDTYPE_LOWER) --no-presubmit $(QUICKCHECK_ARG) \
--shell-dir=deps/v8/out/$(V8_ARCH).$(BUILDTYPE_LOWER) intl \
$(TAP_V8_INTL)

test-v8-benchmarks: v8
deps/v8/tools/run-tests.py --arch=$(V8_ARCH) --mode=$(BUILDTYPE_LOWER) \
--download-data $(QUICKCHECK_ARG) --no-presubmit \
--shell-dir=deps/v8/out/$(V8_ARCH).$(BUILDTYPE_LOWER) benchmarks \
$(TAP_V8_BENCHMARKS)

test-v8-all: test-v8 test-v8-intl test-v8-benchmarks
# runs all v8 tests

apidoc_sources = $(wildcard doc/api/*.md)
apidocs = $(addprefix out/,$(apidoc_sources:.md=.html)) \
$(addprefix out/,$(apidoc_sources:.md=.json))

apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets

apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))

doc: $(apidoc_dirs) $(apiassets) $(apidocs) tools/doc/ $(NODE_EXE)
doc-only: $(apidoc_dirs) $(apiassets) $(apidocs) tools/doc/

doc: $(NODE_EXE) doc-only

$(apidoc_dirs):
mkdir -p $@
Expand All @@ -206,21 +275,27 @@ out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets/
out/doc/%: doc/%
cp -r $< $@

out/doc/api/%.json: doc/api/%.markdown $(NODE_EXE)
$(NODE) tools/doc/generate.js --format=json $< > $@
# check if ./node is actually set, else use user pre-installed binary
gen-json = tools/doc/generate.js --format=json $< > $@
out/doc/api/%.json: doc/api/%.md
[ -x $(NODE) ] && $(NODE) $(gen-json) || node $(gen-json)

out/doc/api/%.html: doc/api/%.markdown $(NODE_EXE)
$(NODE) tools/doc/generate.js --format=html --template=doc/template.html $< > $@
# check if ./node is actually set, else use user pre-installed binary
gen-html = tools/doc/generate.js --node-version=$(FULLVERSION) --format=html --template=doc/template.html $< > $@
out/doc/api/%.html: doc/api/%.md
[ -x $(NODE) ] && $(NODE) $(gen-html) || node $(gen-html)

docopen: out/doc/api/all.html
-google-chrome out/doc/api/all.html

docclean:
-rm -rf out/doc

run-ci:
build-ci:
$(PYTHON) ./configure $(CONFIG_FLAGS)
$(MAKE)

run-ci: build-ci
$(MAKE) test-ci

RAWVER=$(shell $(PYTHON) tools/getnodeversion.py)
Expand Down Expand Up @@ -313,11 +388,28 @@ else
ifeq ($(DESTCPU),ppc)
ARCH=ppc
else
ifeq ($(DESTCPU),s390)
ARCH=s390
else
ifeq ($(DESTCPU),s390x)
ARCH=s390x
else
ARCH=x86
endif
endif
endif
endif
endif
endif
endif

# node and v8 use different arch names (e.g. node 'x86' vs v8 'ia32').
# pass the proper v8 arch name to $V8_ARCH based on user-specified $DESTCPU.
ifeq ($(DESTCPU),x86)
V8_ARCH=ia32
else
V8_ARCH ?= $(DESTCPU)

endif

# enforce "x86" over "ia32" as the generally accepted way of referring to 32-bit intel
Expand All @@ -340,6 +432,10 @@ PACKAGEMAKER ?= /Developer/Applications/Utilities/PackageMaker.app/Contents/MacO
PKGDIR=out/dist-osx

release-only:
@if `grep -q REPLACEME doc/api/*.md`; then \
echo 'Please update Added: tags in the documentation first.' ; \
exit 1 ; \
fi
@if [ "$(shell git status --porcelain | egrep -v '^\?\? ')" = "" ]; then \
exit 0 ; \
else \
Expand Down Expand Up @@ -552,18 +648,12 @@ jslint:
tools/eslint-rules --rulesdir tools/eslint-rules

CPPLINT_EXCLUDE ?=
CPPLINT_EXCLUDE += src/node_lttng.cc
CPPLINT_EXCLUDE += src/node_root_certs.h
CPPLINT_EXCLUDE += src/node_lttng_tp.h
CPPLINT_EXCLUDE += src/node_win32_perfctr_provider.cc
CPPLINT_EXCLUDE += src/queue.h
CPPLINT_EXCLUDE += src/tree.h
CPPLINT_EXCLUDE += src/v8abbr.h
CPPLINT_EXCLUDE += $(wildcard test/addons/??_*/*.cc test/addons/??_*/*.h)

CPPLINT_FILES = $(filter-out $(CPPLINT_EXCLUDE), $(wildcard \
deps/debugger-agent/include/* \
deps/debugger-agent/src/* \
src/*.c \
src/*.cc \
src/*.h \
Expand All @@ -586,4 +676,5 @@ lint-ci: lint
blog blogclean tar binary release-only bench-http-simple bench-idle \
bench-all bench bench-misc bench-array bench-buffer bench-net \
bench-http bench-fs bench-tls cctest run-ci lint-ci bench-ci \
$(TARBALL)-headers
test-v8 test-v8-intl test-v8-benchmarks test-v8-all v8 \
$(TARBALL)-headers test-ci test-ci-native test-ci-js build-ci doc-only
Loading