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

v5.5.0 Release Proposal (Stable) #4742

Merged
merged 33 commits into from
Jan 21, 2016
Merged

v5.5.0 Release Proposal (Stable) #4742

merged 33 commits into from
Jan 21, 2016

Conversation

evanlucas
Copy link
Contributor

#2016-01-18, Version 5.5.0 Release

Looking to release by Tuesday, Jan 19

Notable Changes

  • events: make sure console functions exist (Dave) #4479
  • fs: add autoClose option to fs.createWriteStream (Saquib) #3679
  • http: improves expect header handling (Daniel Sellers) #4501
  • node: allow preload modules with -i (Evan Lucas) #4696
  • v8,src: expose statistics about heap spaces (v8.getHeapSpaceStatistics()) (Ben Ripkens) #4463
  • Minor performance improvements:
    • lib: Use arrow functions instead of bind where possible (Minwoo Jung) #3622.
      • (Mistakenly missing from v5.4.0)
    • module: cache stat() results more aggressively (Ben Noordhuis) #4575
    • querystring: improve parse() performance (Brian White) #4675

Commits

  • [8d0ca10752] - buffer: make byteLength work with Buffer correctly (Jackson Tian) #4738
  • [83d2b7707e] - buffer: remove unnecessary TODO comments (Peter Geiss) #4719
  • [8182ec094d] - build: add option to select VS version (julien.waechter) #4645
  • [4383acd9f4] - build: fix and refactor VTune config in vcbuild.bat (Rod Vagg) #4192
  • [be0b0b8cb9] - build: minor corrections in VTune configure text (Rod Vagg) #4192
  • [9571be12f6] - cluster: fix race condition setting suicide prop (Santiago Gimeno) #4349
  • [ebd9addcd1] - crypto: clear error stack in ECDH::Initialize (Fedor Indutny) #4689
  • [66b9c0d8bd] - debugger: remove variable redeclarations (Rich Trott) #4633
  • [88b2889679] - dgram: prevent disabled optimization of bind() (Brian White) #4613
  • [d56e3f8b67] - doc: restore ICU third-party software licenses (Richard Lau) #4762
  • [212a44df03] - doc: clarify protocol default in http.request() (cjihrig) #4714
  • [3297036345] - doc: update branch-diff arguments in release doc (Rod Vagg) #4691
  • [666c089e68] - doc: fix named anchors in addons.markdown and http.markdown (Michael Theriot) #4708
  • [310530b7ec] - doc: add path property to Write/ReadStream in fs.markdown (Claudio Rodriguez) #4368
  • [3470574cb6] - doc: clarify explanation of first stream section (Vitor Cortez) #4234
  • [d91646b9c7] - doc: rebuild LICENSE using tools/license-builder.sh (Rod Vagg) #4194
  • [265e2f557b] - doc: fix typo in doc/node.1 (Jérémy Lal) #4680
  • [4c132fe61e] - doc: make references clickable (Roman Klauke) #4654
  • [d139704ff7] - doc: improve child_process.execFile() code example (Ryan Sobol) #4504
  • [eeb6fdcd0f] - doc: add docs for more stream options (zoubin) #4639
  • [b6ab6d2de5] - doc: add branch-diff example to releases.md (Myles Borins) #4636
  • [287325c5e8] - docs: update gpg key for Myles Borins (Myles Borins) #4657
  • [65825b79aa] - docs: fix npm command in releases.md (Myles Borins) #4656
  • [f9a59c1d3b] - (SEMVER-MINOR) events: make sure console functions exist (Dave) #4479
  • [6039a7c1b5] - (SEMVER-MINOR) fs: add autoClose option to fs.createWriteStream (Saquib) #3679
  • [ed55169834] - gitignore: never ignore debug module (Michaël Zasso) #2286
  • [d755432fa9] - (SEMVER-MINOR) http: improves expect header handling (Daniel Sellers) #4501
  • [7ce0e04f44] - lib: fix style issues after eslint update (Michaël Zasso) nodejs/io.js#2286
  • [ae5bcf9528] - lib: use arrow functions instead of bind (Minwoo Jung) #3622
  • [0ec093cd41] - lib,test: remove extra semicolons (Michaël Zasso) #2205
  • [d8f5bd4fe1] - module: avoid ArgumentsAdaptorTrampoline frame (Ben Noordhuis) #4575
  • [83f8d98806] - module: cache stat() results more aggressively (Ben Noordhuis) #4575
  • [ff64a4c395] - (SEMVER-MINOR) node: allow preload modules with -i (Evan Lucas) #4696
  • [4bc1a47761] - querystring: improve parse() performance (Brian White) #4675
  • [ad63d350d4] - readline: Remove XXX and output debuglog (Kohei TAKATA) #4690
  • [da550aa063] - repl: make sure historyPath is trimmed (Evan Lucas) #4539
  • [1a6e7d1b52] - src: fix negative values in process.hrtime() (Ben Noordhuis) #4757
  • [8bad51977a] - src: return UV_EAI_NODATA on empty lookup (cjihrig) #4715
  • [761cf2bf6a] - src: don't check failure with ERR_peek_error() (Ben Noordhuis) #4731
  • [953f4a3999] - stream: prevent object map change in ReadableState (Evan Lucas) #4761
  • [e65f1f7954] - test: fix tls-multi-key race condition (Santiago Gimeno) #3966
  • [3727ae0d7d] - test: use addon.md block headings as test dir names (Rod Vagg) #4412
  • [47960a07c0] - test: make test-cluster-disconnect-leak reliable (Rich Trott) #4736
  • [9926b5a25f] - test: fix issues for space-in-parens ESLint rule (Roman Reiss) #4753
  • [d1aabd6264] - test: fix style issues after eslint update (Michaël Zasso) nodejs/io.js#2286
  • [e98bcfa2cb] - test: remove 1 second delay from test (Rich Trott) #4616
  • [6cfd0b5a32] - test: fix flaky test-net-socket-local-address (cjihrig) #4650
  • [e22cc6c2eb] - test: fix race in test-net-server-pause-on-connect (Rich Trott) #4637
  • [9164c00bdb] - test: move resource intensive tests to sequential (Rich Trott) #4615
  • [d8ba2c0de4] - test: fix http-upgrade-client flakiness (Santiago Gimeno) #4602
  • [6018fa1f57] - test: fix http-upgrade-agent flakiness (Santiago Gimeno) #4520
  • [c33f6a87d0] - tools: enable space-in-parens ESLint rule (Roman Reiss) #4753
  • [162e16afdb] - tools: enable no-extra-semi rule in eslint (Michaël Zasso) #2205
  • [031b87d42d] - tools: add license-builder.sh to construct LICENSE (Rod Vagg) #4194
  • [ec8e0ae697] - tools: fix style issue after eslint update (Michaël Zasso) nodejs/io.js#2286
  • [4d5ee7a512] - tools: update eslint config (Michaël Zasso) nodejs/io.js#2286
  • [2d441493a4] - tools: update eslint to v1.10.3 (Michaël Zasso) nodejs/io.js#2286
  • [aba3cc834e] - tools: fix license-builder.sh for ICU (Richard Lau) #4762
  • [5f57005ec9] - (SEMVER-MINOR) v8,src: expose statistics about heap spaces (Ben Ripkens) #4463

This changes vcbuild.bat to accept a new parameter (vc2015 or vc2013)
to select the version of Visual Studio to use.

PR-URL: #4645
Reviewed-By: João Reis <[email protected]>
@evanlucas evanlucas added the meta Issues and PRs related to the general management of the project. label Jan 18, 2016
indutny and others added 15 commits January 18, 2016 07:32
Clean up OpenSSL error stack in `ECDH::Initialize`, some curves have
faulty implementations that are leaving dangling errors after
initializing the curve.

Fix: #4686
PR-URL: #4689
Reviewed-By: Sakthipriyan Vairamani <[email protected]>
Reviewed-By: Shigeki Ohtsu <[email protected]>
Some variables are declared with var more than once in the same scope.
This change reduces the declarations to one per scope.

PR-URL: #4633
Reviewed-By: jasnell - James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
The previously listed default of 'http' is incorrect, and
causes an error to be thrown. This commit changes it to the
correct value of 'http:'

Fixes: #4712
PR-URL: #4714
Reviewed-By: James M Snell <[email protected]>
PR-URL: #4691
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Documents the "path" property on fs.WriteStream
and fs.ReadStream. See #4327

PR-URL: #4368
Reviewed-By: James M Snell <[email protected]>
The last sentence of the explanation for the first stream section
seemed a bit confusing. I tried to change the sentence to clarify it.

Additionally, the sections were turned into a numbered list to be more
clear about which section is being described, and improve readability.

PR-URL: #4234
Reviewed-By: James M Snell <[email protected]>
If there's no global console cached, initialize it.

Fixes: #4467
PR-URL: #4479
Reviewed-By: Roman Reiss <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Add support to fs.createWriteStream and fs.createWriteStream for an autoClose
option that behaves similarly to the autoClose option supported by
fs.createReadStream and fs.ReadStream.

When an instance of fs.createWriteStream created with autoClose === false finishes,
it is not destroyed. Its underlying fd is not closed and it is the
responsibility of the user to close it.

PR-URL: #3679
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Now returns a 417 error status or allows for an event listener on
the `checkExpectation` event. Before we were ignoring requests that
had misspelled `100-continue` values for expect headers.

This is a quick port of the work done here:
nodejs/node-v0.x-archive#7132 by alFReD-NSH
with surrounding discussion here:
nodejs/node-v0.x-archive#4651

Also updates all the instances of the deprecated
EventEmitter.listenerCount to the current self.listenerCount. Most
of these were in the new code ported over but there was another
legacy instance.

Refs: #2403
PR-URL: #4501
Reviewed-By: James M Snell <[email protected]>
PR-URL: #2205
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Roman Reiss <[email protected]>
PR-URL: #2205
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Roman Reiss <[email protected]>
These changes improve parse() performance from ~11-30% on all of
the existing querystring benchmarks.

PR-URL: #4675
Reviewed-By: Johan Bergström <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: James M Snell <[email protected]>
If one were to set NODE_REPL_HISTORY to a string that contains only a
space (" "), then the history file would be created with that name
which can cause problems are certain systems.

PR-URL: #4539
Reviewed-By: Sakthipriyan Vairamani <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
It's possible there is already an existing error on OpenSSL's error
stack that is unrelated to the EVP_DigestInit_ex() operation we just
executed.

Fixes: #4221
PR-URL: #4731
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Fedor Indutny <[email protected]>
@evanlucas
Copy link
Contributor Author

Hm, looks like 83d2b77 isn't able to be cherry-picked cleanly. 101bca9 is trying to be included. Should it just be skipped?

@silverwind
Copy link
Contributor

101bca9 is tagged as major, so it can't be included unless we downgrade it to minor.

@Fishrock123
Copy link
Contributor

@evanlucas It's not terribly important, but the conflict should be pretty easy to resolve? It's just git no-longer seeing the start-end of the patch data.

@Fishrock123
Copy link
Contributor

@evanlucas which tooling did you use to produce this list? The arrow functions commit should be in here again unless you excluded it?

@evanlucas
Copy link
Contributor Author

I used branch-diff for this

@Fishrock123
Copy link
Contributor

OH, looks like Rod landed a bunch already: https://github.com/nodejs/node/commits/v5.x

@Fishrock123
Copy link
Contributor

@evanlucas
Copy link
Contributor Author

ok, so should I just use changelog-maker for the list and strip out the ones that shouldn't land on v5.x?

@Fishrock123
Copy link
Contributor

@evanlucas I would try running (for the proposal message only):

<fetch git tags>
branch-diff v5.4.1 master --exclude-label=semver-major,dont-land-on-v5.x --filter-release (no --simple, we want markdown for that haha)

I think that should get the list that Rod did plus yours, if everything works properly.

@evanlucas
Copy link
Contributor Author

Ok, that looks better:

evanlucas and others added 3 commits January 18, 2016 11:03
This gives us the ability to preload when using the node repl. This can
be useful for doing things like creating aliases.

Fixes: #4661
PR-URL: #4696
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Provide means to inspect information about the separate heap spaces
via a callable API. This is helpful to analyze memory issues.

Fixes: #2079
PR-URL: #4463
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Trevor Norris <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Make the byteLength work correctly when input is Buffer.

e.g:

```js
// The incomplete unicode string
Buffer.byteLength(new Buffer([0xe4, 0xb8, 0xad, 0xe6, 0x96]))
```
The old output: 9
The new output: 5

PR-URL: #4738
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Brian White <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
@evanlucas
Copy link
Contributor Author

@rvagg ok got it. Thanks! Updated the OP with those two entries. Will go through to make sure there aren't any others that have been missed.

@Fishrock123
Copy link
Contributor

@evanlucas You're going to need to hold the release tomorrow until a fix for #4751 lands. It should be simple though so no biggie. Better to fix this regression now than wait.

Edit: PR at #4757

@evanlucas
Copy link
Contributor Author

@Fishrock123 agreed

@richardlau
Copy link
Member

This commit has dropped the Third-Party Licenses from ICU from LICENSE:
[d91646b] - doc: rebuild LICENSE using tools/license-builder.sh

Assuming this was unintentional and have submitted #4762 to add them back.

@evanlucas
Copy link
Contributor Author

Ok, so going to hold off on releasing until we get both #4757 and #4762 taken care of.

@rvagg
Copy link
Member

rvagg commented Jan 20, 2016

#4762 is done, you'll have to pull it into the proposal branch before the release commit of course

@evanlucas
Copy link
Contributor Author

@evanlucas
Copy link
Contributor Author

Whoops...accidentally marked to rebase... new CI: https://ci.nodejs.org/job/node-test-pull-request/1325/

bnoordhuis and others added 10 commits January 20, 2016 16:06
Reduce the number of stat() system calls that require() makes by caching
the results more aggressively.

To avoid unbounded growth without implementing a LRU cache, scope the
cache to the lifetime of the first call to require().  Recursive calls
(i.e. require() calls in the included code) transparently profit from
the cache.

The benchmarked application is the loopback-sample-app[0] and it sees
the number of stat calls at start-up go down by 40%, from 4736 to 2810.

[0] https://github.com/strongloop/loopback-sample-app

PR-URL: #4575
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #4753
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Evan Lucas <[email protected]>
Previously, test-cluster-disconnect-leak had two issues:

* Magic numbers: How many times to spawn a worker was determined through
empirical experimentation. This means that as new platforms and new
CPU/RAM configurations are tested, the magic numbers require more
and more refinement. This brings us to...

* Non-determinism: The test *seems* to fail all the time when the bug
it tests for is present, but it's really a judgment based on sampling.
"Oh, with 8 workers per CPU, it fails about 80% of the time. Let's try
16..."

This revised version of the test takes a different approach. The fix
for the bug that the test was written for means that the `disconnect`
event will fire reliably for a single worker. So we check for that and
the test still fails when the fix is not in the code base and succeeds
when it is.

Advantages of this approach include:

* The test runs much faster.
* The test now works on Windows. The previous version skipped Windows.
* The test should be reliable on any new platform regardless of CPU and
RAM.

Ref: #4674

PR-URL: #4736
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Johan Bergström <[email protected]>
ReadableState has the resumeScheduled property that helps determine if
a stream should be resumed. It was not assigned in the constructor.
When stream.resume is called on a readable stream that is not flowing,
it is set to true. This changes the property map of the ReadableState
which can cause a deopt in onEofChunk and needMoreData.

PR-URL: #4761
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Brian White <[email protected]>
Modify tools/license-builder.sh to restore the Third-Party Software
licenses for ICU.

Also fix arguments to tail to work on Linux.

rvagg: modified sed command for ICU to replace tabs with spaces and
       remove whitespace at the end of lines

PR-URL: #4762
Reviewed-By: Rod Vagg <[email protected]>
Fix a regression introduced in commit 89f056b ("node: improve
performance of hrtime()") where the nanosecond field sometimes
had a negative value when calculating the difference between two
timestamps.

Fixes: #4751
PR-URL: #4757
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: Trevor Norris <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Notable changes:

* events: make sure console functions exist (Dave) #4479
* fs: add autoClose option to fs.createWriteStream (Saquib) #3679
* http: improves expect header handling (Daniel Sellers) #4501
* node: allow preload modules with -i (Evan Lucas) #4696
* v8,src: expose statistics about heap spaces (`v8.getHeapSpaceStatistics()`) (Ben Ripkens) #4463
* Minor performance improvements:
  - lib: Use arrow functions instead of bind where possible (Minwoo Jung) #3622
  - module: cache stat() results more aggressively (Ben Noordhuis) #4575
  - querystring: improve parse() performance (Brian White) #4675

PR-URL: #4742
@evanlucas
Copy link
Contributor Author

Had one arm test fail. One more time for good measure. Hopefully we are green this time

https://ci.nodejs.org/job/node-test-pull-request/1331/

@evanlucas
Copy link
Contributor Author

Alright...release builds are starting https://ci.nodejs.org/job/iojs+release/363/

@evanlucas evanlucas merged commit 2d46ea0 into v5.x Jan 21, 2016
evanlucas added a commit that referenced this pull request Jan 21, 2016
Notable changes:

* events: make sure console functions exist (Dave) #4479
* fs: add autoClose option to fs.createWriteStream (Saquib) #3679
* http: improves expect header handling (Daniel Sellers) #4501
* node: allow preload modules with -i (Evan Lucas) #4696
* v8,src: expose statistics about heap spaces (`v8.getHeapSpaceStatistics()`) (Ben Ripkens) #4463
* Minor performance improvements:
  - lib: Use arrow functions instead of bind where possible (Minwoo Jung) #3622
  - module: cache stat() results more aggressively (Ben Noordhuis) #4575
  - querystring: improve parse() performance (Brian White) #4675

PR-URL: #4742
@evanlucas evanlucas deleted the v5.5.0-proposal branch January 21, 2016 02:32
bripkens added a commit to bripkens/docker-node that referenced this pull request Jan 21, 2016
scovetta pushed a commit to scovetta/node that referenced this pull request Apr 2, 2016
Notable changes:

* events: make sure console functions exist (Dave) nodejs#4479
* fs: add autoClose option to fs.createWriteStream (Saquib) nodejs#3679
* http: improves expect header handling (Daniel Sellers) nodejs#4501
* node: allow preload modules with -i (Evan Lucas) nodejs#4696
* v8,src: expose statistics about heap spaces (`v8.getHeapSpaceStatistics()`) (Ben Ripkens) nodejs#4463
* Minor performance improvements:
  - lib: Use arrow functions instead of bind where possible (Minwoo Jung) nodejs#3622
  - module: cache stat() results more aggressively (Ben Noordhuis) nodejs#4575
  - querystring: improve parse() performance (Brian White) nodejs#4675

PR-URL: nodejs#4742
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.