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

Release proposal: v3.2.0 #2511

Closed
wants to merge 74 commits into from
Closed

Release proposal: v3.2.0 #2511

wants to merge 74 commits into from

Conversation

rvagg
Copy link
Member

@rvagg rvagg commented Aug 24, 2015

Replacing #2506 and using a v3.2.0-proposal on the nodejs/node repo so that this can be handled by more than me—@Fishrock123 might cut this release to free up my time to get on with other v4 business. This is probably a good practice for @nodejs/release though, as long as we remember to clean up our -proposal branches afterwards.

  • [1cd794f129] - buffer: reapply 07c0667 (Fedor Indutny) #2487
  • [77075ec906] - crypto: fix mem {de}allocation in ExportChallenge (Karl Skomski) #2359
  • [09437e0146] - doc: fix comments in tls_wrap.cc and _http_client.js (Minwoo Jung) #2489
  • [c9867fed29] - doc: document response.finished in http.markdown (hackerjs) #2414
  • [7f23a83c42] - doc: update AUTHORS list (Rod Vagg) #2505
  • [cd0c362f67] - doc: update AUTHORS list (Rod Vagg) #2318
  • [2c7b9257ea] - doc: add TSC meeting minutes 2015-07-29 (Rod Vagg) #2437
  • [aaefde793e] - doc: add TSC meeting minutes 2015-08-19 (Rod Vagg) #2460
  • [51ef9106f5] - doc: add TSC meeting minutes 2015-06-03 (Rod Vagg) #2453
  • [7130b4cf1d] - doc: fix links to original converged repo (Rod Vagg) #2454
  • [14f2aee1df] - doc: fix links to original gh issues for TSC meetings (Rod Vagg) #2454
  • [87a9ef0a40] - doc: add audio recording links to TSC meeting minutes (Rod Vagg) #2454
  • [f5cf24afbc] - doc: add TSC meeting minutes 2015-07-22 (Rod Vagg) #2436
  • [3f821b96eb] - doc: fix spelling mistake in node.js comment (Jacob Edelman) #2391
  • [3e6a6fcdd6] - (SEMVER-MINOR) events: deprecate static listenerCount function (Sakthipriyan Vairamani) #2349
  • [023386c852] - fs: replace bad_args macro with concrete error msg (Roman Klauke) #2495
  • [5d7486941b] - repl: filter integer keys from repl tab complete list (James M Snell) #2409
  • [7f02443a9a] - repl: dont throw ENOENT on NODE_REPL_HISTORY_FILE (Todd Kennedy) #2451
  • [56a2ae9cef] - src: improve startup time (Evan Lucas) #2483
  • [2d3f09bd76] - stream_base: various improvements (Fedor Indutny) #2351
  • [c1ce423b35] - string_bytes: fix unaligned write in UCS2 (Fedor Indutny) #2480
  • [536c3d0537] - test: use reserved IP in test-net-connect-timeout (Rich Trott) #2257
  • [5df06fd8df] - test: add spaces after keywords (Brendan Ashworth)
  • [e714b5620e] - test: remove unreachable code (Michaël Zasso) #2289
  • [3579f3a2a4] - test: disallow unreachable code (Michaël Zasso) #2289
  • [3545e236fc] - test: reduce timeouts in test-net-keepalive (Brendan Ashworth) #2429
  • [b60e690023] - test: improve test-net-server-pause-on-connect (Brendan Ashworth) #2429
  • [11d1b8fcaf] - test: improve test-net-pingpong (Brendan Ashworth) #2429
  • [5fef5c6562] - (SEMVER-MINOR) tls: add --tls-cipher-list command line switch (James M Snell) #2412
  • [d9b70f9cbf] - tls: handle empty cert in checkServerIndentity (Mike Atkins) #2343
  • [4f8e34c202] - tools: add license boilerplate to check-imports.sh (James M Snell) #2386
  • [b76b9197f9] - tools: enable space-after-keywords in eslint (Brendan Ashworth)
  • [64a8f30a70] - tools: fix anchors in generated documents (Sakthipriyan Vairamani) #2491

Currently master has the following commits that are not on v3.x:

Nightlies should be up to date for testing v3.x.

bnoordhuis and others added 30 commits August 5, 2015 19:31
The install prefix gets written to config.gypi and config.mk.  Tildes
were expanded in the first file but not in the second one, causing the
`make install` target to install files to a directory named `~` in
the current working directory.

Fixes: #75
PR-URL: #2307
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
 * doc: improve http.abort description
 * doc: mention that mode is ignored if file exists
 * docs: Fix default options for fs.createWriteStream()
 * Documentation update about Buffer initialization
 * doc: add a note about readable in flowing mode
 * doc: Document http.request protocol option
 * doc, comments: Grammar and spelling fixes
 * updated documentation for fs.createReadStream
 * Update child_process.markdown, spelling
 * doc: Clarified read method with specified size argument.
 * docs:events clarify emitter.listener() behavior
 * doc: two minor stream doc improvements
 * doc: clarify Readable._read and Readable.push
 * doc: stream.unshift does not reset reading state
 * doc: readable event clarification
 * doc: additional refinement to readable event

Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noorduis <ben@strongloop.com>
PR-URL: #2302
simple tests test-http-request-end.js, test-http-default-encoding.js
hangs in AIX. The root cause for both the failures is related to the
timing with which packets are sent between the client and server.
On the client side, one factor that affects the timing is Nagle's
algorithm. With Nagle enabled there may be a delay between two packets
as the stack may wait until either:
  a. An acknowledgement for the first packet is received, or
  b. 200 ms elapses.
before sending the second packet.

Similarly at the server side 2 sequential packages can be delivered to
the application either together or separatly.

On AIX we see that they are delivered separately to the server, while on
Linux delivered together. If we change the timing, for example disabling
Nagle on AIX we see the 2 packets delivered together and the tests pass.

In the test case simple/test-http-request-end.js, the client request
handler of the server receives and stores the data in a data callback,
closes the server in a request end callback, and writes to the client
and ends the response, in-line with the request receipt. An HTTP parser
module parses the incoming message, and invokes callback routines which
are registered for HTTP events (such as header, body, end etc.)

Because the termination sequence arrive in a separate packet, there is a
delay in parsing that message and identify that the client request ended
(and thereby invoke the request end call backhandler). Due to this delay,
the response close happens first, which in-turn destroys the server
socket leading to the fd and watcher removal from the uv loop abandoning
further events on this connection, and end call back never being called,
causing the reported hang.  simple/test-http-default-encoding.js suffers
from the same problem.

Also, remove the timer logic from the test case. Test harness anyways
contain a timer which controls the individual tests so remove such
controls from the test case, as suggested by @tjfontaine

Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
PR-URL: nodejs/node-v0.x-archive#9432

PORT-FROM: joyent/node @ 13e1131
PR-URL: #2294
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Any time the connection state or the underlying handle itself changes,
the socket's name (aka, local address) can change.

To deal with this we need to reset the cached sockname any time we
set or unset the internal handle or an existing handle establishes a
connection.

PR-URL: #2095
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
- eliminate unnecessary intermediate process ("parent")
- children exit if runner dies unexpectedly (killed on a test timeout,
  for example)
- use explicit messaging from children to parents to indicate when
  worker is ready to accept http requests, rather than racing to see
  whether runner will make request before worker is listening

PR-URL: #1944
Reviewed-By: Johan Bergstrom <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
`enableTicketKeyCallback` and `onticketkeycallback` could be potentially
used to renew the TLS Session Tickets before they expire. However this
commit will introduce it only for private use yet, because we are not
sure about the API, and already need this feature for testing.

See: #2304
PR-URL: #2312
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
When TLS Session Ticket is renewed by server - no Certificate record is
to the client. We are prepared for empty certificate in this case, but
this relies on the session reuse check, which was implemented
incorrectly and was returning false when the TLS Session Ticket was
renewed.

Use session reuse check provided by OpenSSL instead.

Fix: #2304
PR-URL: #2312
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
This commit modifies util.inspect(obj) to additionally show the name of
the function that constructed the object. This often reveals useful
information about the object's prototype. In other words, instead of

> new Cls
{}

we have

> new Cls
Cls {}

This also works with exotic objects:

> class ArrayCls extends Array {}
> new ArrayCls(1, 2, 3)
ArrayCls [ 1, 2, 3 ]

The names of "trivial" constructors like Object and Array are not shown,
unless there is a mismatch between the object representation and the
prototype:

> Object.create([])
Array {}

This feature is inspired by browser devtools.

PR-URL: #1935
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Windows 10 wasn't listed in the executable manifest.
This caused problems with trying to detect Windows 10
via `os.release()`.

PR-URL: #2332
Reviewed-By: Roman Reiss <me@silverwind.io>
Remove dead code paths that are created by assertions that will never
trigger. They may only trigger if either the `splitDeviceRe` or
`splitPathRe` regular expressions are modified. If at some point they
are modified, current unit tests will catch most of the resulting
errors and this commit adds extra tests to catch the remaining errors.

PR-URL: #2282
Reviewed-By: Roman Reiss <me@silverwind.io>
According to docs, dropMembership() is automatically called
by the kernel when the socket is closed, and most apps will
never need to call it. It's called here as a sanity check
only so let's note that with a comment.

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #2062
v8 introduced the new flag `total_available_size` in version 4.4
and upwards. This flag is now available on `v8.getHeapStatistics`
with the name `total_available_size`. It contains the total
available heap size of v8.

Introduced with commit: v8/v8@0a1352a7

PR-URL: #2348
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
With this option, tests can be divided in groups and only one is run
from each group. This enables us to parallelize the tests across
multiple machines.

PR-URL: #2260
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
node was using ICU4C 54 ( released 2014-oct-06 )

* Bump to ICU4C 55 ( released 2015-apr-08)
 * Timezone fixes, translation fixes, bug/performance fixes.
 * Speed improvements in date formatting
 * ICU4C 55 changelog: http://site.icu-project.org/download/55
 * CLDR 27 changelog: http://cldr.unicode.org/index/downloads/cldr-27

* Retarget the file exclusions from ICU4C 54 to ICU4C 55
 * (improves on-disk footprint on some platforms)

Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Fixes: #2292
PR-URL: #2293
* turn on small-icu by default for builds (Makefile+Windows)
* add license info from ICU
  http://source.icu-project.org/repos/icu/icu/trunk/license.html
  All text pasted. Long lines wrapped. (original is HTML.)

Port from joyent/node of:
* #26
 * port of joyent/node 67f87a7
* nodejs/node-v0.x-archive#9038
 * Merge from joyent/node 70d04e7
 * Merge from joyent/node 6168fe6
 * merge from joyent/node e670732

PR-URL: #2264
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Fixes: #238
In a few places dynamic memory was passed to the Buffer::New() overload
that makes a copy of the input, not the one that takes ownership.

This commit is a band-aid to fix the memory leaks.  Longer term, we
should look into using C++11 move semantics more effectively.

Fixes: #2308
PR-URL: #2352
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
The circular dependency problem that put them there in the first place
is no longer an issue.  Move them out of the public node_buffer.h header
and into the private node_internals.h header.

Fixes: #2308
PR-URL: #2352
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Rename the three argument overload of Buffer::New() to Buffer::Copy()
and update the code base accordingly.  The reason for renaming is to
make it impossible to miss a call site.

This coincidentally plugs a small memory leak in crypto.getAuthTag().

Fixes: #2308
PR-URL: #2352
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Fixes: #2308
PR-URL: #2352
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
The particular ufile.c is from
http://bugs.icu-project.org/trac/changeset/37704
and should be OK for ICU 54 and 55.

Also, adds general mechanism for floating patches on top of ICU.

Fixes: #2279
PR-URL: #2283
Reviewed-By: João Reis <reis@janeasystems.com>
Fix a regression that was introduced in commit 1bbf8d0 ("lib: speed up
require(), phase 2") where file paths with Unicode characters fail to
load on Windows.

Fixes: #2236
PR-URL: #2377
Reviewed-By: Bert Belder <bertbelder@gmail.com>
Per: nodejs/node-v0.x-archive#7554

Originally submitted by @stites

PR-URL: #2388
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Per: nodejs/node-v0.x-archive#8715

Cleans up a minor spelling error in two tests.

PR-URL: #2389
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Roman Reiss <me@silverwind.io>
PR-URL: #2375
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #2375
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #2375
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #2375
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #2375
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #2375
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Currently, v8 native deps must be built in order to run the log
processor on node profiling output. These scripts use node instead
of d8 to remove this dependency.

This change was originally proposed to the v8 team but since the
changes are not v8 specific, we have moved the proposal here. See:
https://codereview.chromium.org/1179173009/

PR-URL: #2090
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
targos and others added 27 commits August 21, 2015 20:31
There is no way a line can be called after throwing an exception.

PR-URL: #2289
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Per: nodejs/node-v0.x-archive#8876

PR-URL: #2391
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Roman Reiss <me@silverwind.io>
This resolves nodejs/node-v0.x-archive#9272. `tlsSocket.getPeerCertificate` will
return an empty object when the peer does not provide a certificate,
but, prior to this, when the certificate is empty, `checkServerIdentity`
would throw because the `subject` wasn't present on the cert.
`checkServerIdentity` must return an error, not throw one, so this
returns an error when the cert is empty instead of throwing
a `TypeError`.

PR-URL: #2343
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Use correct deallocator for returned buffera.
Don't free internal structure via ASN1_STRING_data.
Deallocate NETSCAPE_SPKI.

PR-URL: #2359
Reviewed-By: Fedor Indutny <fedor@indutny.com>
PR-URL: #2436
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Previously, V8:SetFlagsFromCommandLine was being called even if v8_argc
was 0. This change prevents that from being called unless v8 arguments
are actually passed.

Improves startup time by about 5%.

PR-URL: #2483
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Support unaligned output buffer when writing out UCS2 in
`StringBytes::Write`.

Fix: #2457
PR-URL: #2480
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Original commit message:

    buffer: align chunks on 8-byte boundary

    When slicing global pool - ensure that the underlying buffer's data
    ptr is 8-byte alignment to do not ruin expectations of 3rd party C++
    addons.

    NOTE: 0.10 node.js always returned aligned pointers and io.js should
    do this too for compatibility.

PR-URL: #2487
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Refactored version of nodejs/node-v0.x-archive#25819

Removes integer keys (and keys starting with numbers) from
candidate list on repl tab complete. Refactored the originally
submitted change to simplify and ensure that the integer keys
do not show up on objects either.

Reviewed By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: #2409
PR-URL: #2454
Reviewed-By: James M Snell <jasnell@gmail.com>
nodejs/node -> nodejs/node-convergence-archive

PR-URL: #2454
Reviewed-By: James M Snell <jasnell@gmail.com>
nodejs/node -> nodejs/node-convergence-archive

PR-URL: #2454
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #2453
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #2460
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #2437
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Update AUTHORS list using tools/update-authors.sh

PR-URL: #2318
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
When an anchor tag is used within a pre tag, the link is not
distinguishable. This patch makes sure that the links are highlighted
by underlining them.

PR-URL: #2491
Reviewed-By: Roman Reiss <me@silverwind.io>
Instead of throwing an error with `Bad arguments` the fs methods
return a concrete error message. If an argument is missing, the
methods throw an error with the information, what is missing.
In case of a type mismatch, they throw an error with some hints,
what datatype is expected.

PR-URL: #2495
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
eg changes:

  if(x) { ... }

to:

  if (x) { ... }
Requires that you do:

  if (x) { ... }

Rather than:

  if(x) { ... }
Update AUTHORS list using tools/update-authors.sh
Fix @muddletoes' .mailmap entry

PR-URL: #2505
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Adds mention of response.finished to http.markdown
Originally submitted by @HACKERJS. The original
commit needed a bit of cleanup on grammar.

Reviewed By: James M Snell <jasnell@gmail.com>
Reviewed By: Michaël Zasso <mic.besace@gmail.com>
PR-URL: #2414
This adds a new `--tls-cipher-list` command line switch
that can be used to override the built-in default cipher
list. The intent of this is to make it possible to enforce
an alternative default cipher list at the process level.
Overriding the default cipher list is still permitted at
the application level by changing the value of
`require('tls').DEFAULT_CIPHERS`.

As part of the change, the built in default list is moved
out of tls.js and into node_constants.h and node_constants.cc.
Two new constants are added to require('constants'):

  * defaultCipherList (the active default cipher list)
  * defaultCoreCipherList (the built-in default cipher list)

A test case and doc changes are included.

A new NODE_DEFINE_STRING_CONSTANT macro is also created in
node_internals.h

When node_constants is initialized, it will pick up either
the passed in command line switch or fallback to the default
built-in suite.

Within joyent/node, this change had originaly been wrapped
up with a number of other related commits involving the
removal of the RC4 cipher. This breaks out this isolated
change.

/cc @mhdawson, @misterdjules, @trevnorris, @indutny, @rvagg

Reviewed By: Ben Noordhuis <ben@strongloop.com>
PR-URL: #2412
Per: nodejs/node-v0.x-archive#6962

This applies only the first commit from nodejs/node-v0.x-archive#6962.

/cc @bnoorduis

Reviewed By: Ben Noordhuis <ben@strongloop.com>
PR-URL: #2386
fixed grammatically wrong expressions to make it clear

Reviewed By: James M Snell <jasnell@gmail.com>
PR-URL: #2490
PR-URL: #2489
Use reserved IP in test-net-connect-timeout.js rather than arbitrary
IP.

PR-URL: #2257
Fixes: #2469
Reviewed By: Ben Noordhuis <ben@strongloop.com>
Notable changes:

...
@rvagg rvagg closed this Aug 24, 2015
@rvagg rvagg mentioned this pull request Aug 24, 2015
@ChALkeR ChALkeR added the meta Issues and PRs related to the general management of the project. label Aug 24, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta Issues and PRs related to the general management of the project.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet