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: v4.0.0 #2715

Merged
merged 1 commit into from
Sep 8, 2015
Merged

Release proposal: v4.0.0 #2715

merged 1 commit into from
Sep 8, 2015

Conversation

rvagg
Copy link
Member

@rvagg rvagg commented Sep 7, 2015

  • Due to the public holiday in the US I think aiming for early morning Tuesday USA time would be optimal for this. Most of the pieces are in place and RC 1 doesn't seem to be resulting in much drama.
  • Commit list is a diff from v3.3.0, generated with branch-diff v3.3.0 v4.x --group, branch-diff borrows a lot of code from changelog-maker for printing out commit lists but it generates its lists by doing a semi-smart diff of commits between branches—taking into account commit summary and PR-URL to determine what commits branches have in common. I've been using this tool for cherry-picking branches.
  • Please help review the Notable changes and Known issues.
  • V8 4.5 changelog, simplified, is available here: https://gist.github.com/rvagg/b3d490c78beac001d1ef.
  • You can also use https://kangax.github.io/compat-table/es6/ to look at the Chrome 44 and 45 features, although the table is becoming a bit unwieldy these days.

2015-09-08, Version 4.0.0 (Stable), @rvagg

Notable changes

This list of changes is relative to the last io.js v3.x branch release, v3.3.0. Please see the list of notable changes in the v3.x, v2.x and v1.x releases for a more complete list of changes from 0.12.x. Note, that some changes in the v3.x series as well as major breaking changes in this release constitute changes required for full convergence of the Node.js and io.js projects.

Known issues

See confirmed-bug Issues with confirmed bugs. for complete and current list of known issues.

  • Some uses of computed object shorthand properties are not handled correctly by the current version of V8. e.g. [{ [prop]: val }] evaluates to [{}]. #2507
  • Some problems with unreferenced timers running during beforeExit are still to be resolved. See #1264.
  • Surrogate pair in REPL can freeze terminal. #690
  • Calling dns.setServers() while a DNS query is in progress can cause the process to crash on a failed assertion. #894
  • url.resolve may transfer the auth portion of the url when resolving between two full hosts, see #1435.

Commits

  • [4f50d3fb90] - (SEMVER-MAJOR) This commit sets the value of process.release.name to "node". (cjihrig) #2367
  • [d3178d8b1b] - buffer: SlowBuffer only accept valid numeric values (Michaël Zasso) #2635
  • [a7596d7efc] - build: remote commands on staging in single session (Rod Vagg) #2717
  • [be427e9efa] - build: make .msi install to "nodejs", not "node" (Rod Vagg) #2701
  • [5652ce0dbc] - build: fix .pkg creation tooling (Rod Vagg) #2687
  • [101db80111] - build: add --enable-asan with builtin leakcheck (Karl Skomski) #2376
  • [2c3939c9c0] - child_process: use stdio.fd even if it is 0 (Evan Lucas) #2727
  • [609db5a1dd] - child_process: check execFile and fork args (James M Snell) #2667
  • [d010568c23] - (SEMVER-MAJOR) child_process: add callback parameter to .send() (Ben Noordhuis) #2620
  • [c60857a81a] - cluster: allow shared reused dgram sockets (Fedor Indutny) #2548
  • [b2ecbb6191] - contextify: ignore getters during initialization (Fedor Indutny) #2091
  • [3711934095] - cpplint: make it possible to run outside git repo (Ben Noordhuis) #2710
  • [03f900ab25] - crypto: replace rwlocks with simple mutexes (Ben Noordhuis) #2723
  • [847459c29b] - (SEMVER-MAJOR) crypto: show exponent in decimal and hex (Chad Johnston) #2320
  • [e1c976184d] - deps: improve ArrayBuffer performance in v8 (Fedor Indutny) #2732
  • [cc0ab17a23] - deps: float node-gyp v3.0.0 (Rod Vagg) #2700
  • [b2c3c6d727] - deps: create .npmrc during npm tests (Kat Marchán) #2696
  • [babdbfdbd5] - deps: upgrade to npm 2.14.2 (Kat Marchán) #2696
  • [155783d876] - deps: backport 75e43a6 from v8 upstream (again) (saper) #2692
  • [5424d6fcf0] - deps: upgrade V8 to 4.5.103.30 (Ali Ijaz Sheikh) #2632
  • [c43172578e] - (SEMVER-MAJOR) deps: upgrade V8 to 4.5.103.24 (Ali Ijaz Sheikh) #2509
  • [714e96e8b9] - deps: backport 75e43a6 from v8 upstream (saper) #2636
  • [8637755cbf] - doc: add TSC meeting minutes 2015-09-02 (Rod Vagg) #2674
  • [d3d5b93214] - doc: update environment vars in manpage and --help (Roman Reiss) #2690
  • [29f586ac0a] - doc: update url doc to account for escaping (Jeremiah Senkpiel) #2605
  • [ba50cfebef] - doc: reorder collaborators by their usernames (Johan Bergström) #2322
  • [8a9a3bf798] - doc: update changelog for io.js v3.3.0 (Rod Vagg) #2653
  • [6cd0e2664b] - doc: update io.js reference (Ben Noordhuis) #2580
  • [f9539c19e8] - doc: update changelog for io.js v3.2.0 (Rod Vagg) #2512
  • [cded6e7993] - doc: fix CHANGELOG.md on master (Roman Reiss) #2513
  • [93e2830686] - (SEMVER-MINOR) doc: document deprecation of util.is* functions (Sakthipriyan Vairamani) #2447
  • [7038388558] - doc,test: enable recursive file watching in Windows (Sakthipriyan Vairamani) #2649
  • [f3696f64a1] - events,lib: don't require EE#listenerCount() (Jeremiah Senkpiel) #2661
  • [45a2046f5d] - (SEMVER-MAJOR) installer: fix installers for node.js rename (Frederic Hemberger) #2367
  • [7a999a1376] - (SEMVER-MAJOR) lib: add net.Socket#localFamily property (Ben Noordhuis) #956
  • [de88255b0f] - _Revert_ "lib,src: add unix socket getsockname/getpeername" (Ben Noordhuis) #2584
  • [f337595441] - (SEMVER-MAJOR) lib,src: add unix socket getsockname/getpeername (Ben Noordhuis) #956
  • [3b602527d1] - (SEMVER-MAJOR) node: additional cleanup for node rename (cjihrig) #2367
  • [a69ab27ab4] - (SEMVER-MAJOR) node: rename from io.js to node (cjihrig) #2367
  • [d2d981252b] - src: s/ia32/x86 for process.release.libUrl for win (Rod Vagg) #2699
  • [eba3d3dccd] - src: use standard conform snprintf on windows (Karl Skomski) #2404
  • [cddbec231f] - src: fix buffer overflow for long exception lines (Karl Skomski) #2404
  • [dd3f3417c7] - src: re-enable fast math on arm (Michaël Zasso) #2592
  • [e137c1177c] - (SEMVER-MAJOR) src: enable vector ics on arm again (Ali Ijaz Sheikh) #2509
  • [7ce749d722] - src: replace usage of v8::Handle with v8::Local (Michaël Zasso) #2202
  • [b1a2d9509f] - src: enable v8 deprecation warnings and fix them (Ben Noordhuis) #2091
  • [808de0da03] - (SEMVER-MAJOR) src: apply debug force load fixups from 41e63fb (Ali Ijaz Sheikh) #2509
  • [5201cb0ff1] - src: fix memory leak in ExternString (Karl Skomski) #2402
  • [2308a27c0a] - src: only set v8 flags if argc > 1 (Evan Lucas) #2646
  • [384effed20] - test: fix use of common before required (Rod Vagg) #2685
  • [f146f686b7] - (SEMVER-MAJOR) test: fix test-repl-tab-complete.js for V8 4.5 (Ali Ijaz Sheikh) #2509
  • [fe4b309fd3] - test: refactor to eliminate flaky test (Rich Trott) #2609
  • [619721e6b8] - test: mark eval_messages as flaky (Alexis Campailla) #2648
  • [93ba585b66] - test: mark test-vm-syntax-error-stderr as flaky (João Reis) #2662
  • [367140bca0] - test: mark test-repl-persistent-history as flaky (João Reis) #2659
  • [f6b093343d] - timers: minor _unrefActive fixes and improvements (Jeremiah Senkpiel) #2540
  • [403d7ee7d1] - timers: don't mutate unref list while iterating it (Julien Gilli) #2540
  • [7a8c3e08c3] - timers: Avoid linear scan in _unrefActive. (Julien Gilli) #2540
  • [b630ebaf43] - win,msi: Upgrade from old upgrade code (João Reis) #2439

@thefourtheye
Copy link
Contributor

[8af5962] - test: add spaces after keywords (Brendan Ashworth)
...
[96a2b2d] - tools: enable space-after-keywords in eslint (Brendan Ashworth)

They both belong to #2430. cc @brendanashworth

@rvagg
Copy link
Member Author

rvagg commented Sep 7, 2015

@thefourtheye right, thanks, there are 3 commits in here without PR-URL which is why they are showing up

[2e8bb62] - doc: fix bad merge on modules.markdown (James M Snell)

is also one, I'll remove them from the list

@thefourtheye
Copy link
Contributor

@rvagg Ah, right. IIRC 2e8bb62 was due to a unresolved merge conflict. So there was no PR for that. cc @jasnell

@sambthompson
Copy link

@rvagg misspolling in second sentence

Note, that some changes in th v3.x series

@sambthompson
Copy link

Is the comment on known issue:

process.send() is not synchronous as the docs suggest

still true, given @bnoordhuis's fix (#2620) landed here?

I couldn't actually find a reference to process.send in process.markdown. Am I looking in the wrong spot?

@sambthompson
Copy link

OK, my mistake; this is actually related to child.send in child_process.markdown. Ignore my last question on docs. Known issue commentary query stands.

@rvagg
Copy link
Member Author

rvagg commented Sep 7, 2015

I thought the process.send known issue was removed but I was mistaken, fixed now, thanks

@mscdex mscdex added the meta Issues and PRs related to the general management of the project. label Sep 7, 2015
@Fishrock123
Copy link
Contributor

I thought the process.send known issue was removed but I was mistaken, fixed now, thanks

It can be cleared off the known issues list though. The documentation for process.send() at all is a different issue, and would be fixed by #1978.

@Snack-X
Copy link

Snack-X commented Sep 8, 2015

See https://github.com/nodejs/io.js/labels/confirmed-bug for complete and current list of known issues.

I think link should be changed into confirmed-bug Issues with confirmed bugs. .

@silverwind
Copy link
Contributor

I think link should be changed into confirmed-bug Issues with confirmed bugs. .

Good catch. There's a few more in that changelog, I think an s/\/io\.js/\/node/g is in order.

@sambthompson
Copy link

@silverwind I wouldn't do that; it will mess up the notable change for #2367.

@rvagg
Copy link
Member Author

rvagg commented Sep 8, 2015

fixed for this release, I think I'm content to leave the others as they are but if someone wants to PR a big change and debate it then you're welcome to do so

@rvagg
Copy link
Member Author

rvagg commented Sep 8, 2015

Another commit missing PR-URL, my fault

  • [81a8d451f9] - doc: update AUTHORS list (Rod Vagg)

@jasnell
Copy link
Member

jasnell commented Sep 8, 2015

C-ares tests are showing some flakiness on the unstable WiFi here at
nodeconfeu but otherwise things are looking good so far. Haven't run
anything too heavy yet tho.
On Sep 8, 2015 10:42 AM, "Rod Vagg" notifications@github.com wrote:

Another commit missing PR-URL, my fault

  • [81a8d45 https://github.com/nodejs/node/commit/81a8d451f9] -
    doc: update AUTHORS list (Rod Vagg)


Reply to this email directly or view it on GitHub
#2715 (comment).

* Some problems with unreferenced timers running during `beforeExit` are still to be resolved. See [#1264](https://github.com/nodejs/io.js/issues/1264).
* Surrogate pair in REPL can freeze terminal. [#690](https://github.com/nodejs/io.js/issues/690)
* Calling `dns.setServers()` while a DNS query is in progress can cause the process to crash on a failed assertion. [#894](https://github.com/nodejs/io.js/issues/894)
* `url.resolve` may transfer the auth portion of the url when resolving between two full hosts, see [#1435](https://github.com/nodejs/io.js/issues/1435).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps you can s/io.js/nodejs/ on the URLs in this block?

@rvagg rvagg force-pushed the v4.0.0-proposal branch 2 times, most recently from 79e7697 to dc91203 Compare September 8, 2015 11:00
@rvagg
Copy link
Member Author

rvagg commented Sep 8, 2015

fixed both items @bnoordhuis

This list of changes is relative to the last io.js v3.x branch
release, v3.3.0. Please see the list of notable changes in the v3.x,
v2.x and v1.x releases for a more complete list of changes from
0.12.x. Note, that some changes in the v3.x series as well as major
breaking changes in this release constitute changes required for full
convergence of the Node.js and io.js projects.

* child_process: ChildProcess.prototype.send() and process.send()
  operate asynchronously across all platforms so an optional callback
  parameter has been introduced that will be invoked once the message
  has been sent, i.e. .send(message[, sendHandle][, callback])
  (Ben Noordhuis) #2620.
* node: Rename "io.js" code to "Node.js" (cjihrig) #2367.
* node-gyp: This release bundles an updated version of node-gyp that
  works with all versions of Node.js and io.js including nightly and
  release candidate builds. From io.js v3 and Node.js v4 onward, it
  will only download a headers tarball when building addons rather
  than the entire source. (Rod Vagg) #2700.
* npm: Upgrade to version 2.14.2 from 2.13.3, includes a security
  update, see https://github.com/npm/npm/releases/tag/v2.14.2 for more
  details, (Kat Marchán) #2696.
* timers: Improved timer performance from porting the 0.12
  implementation, plus minor fixes (Jeremiah Senkpiel) #2540,
  (Julien Gilli) nodejs/node-v0.x-archive#8751 nodejs/node-v0.x-archive#8905
* util: The util.is*() functions have been deprecated, beginning with
  deprecation warnings in the documentation for this release, users
  are encouraged to seek more robust alternatives in the npm registry,
  (Sakthipriyan Vairamani) #2447.
* v8: Upgrade to version 4.5.103.30 from 4.4.63.30 (Ali Ijaz Sheikh) #2632.
  - Implement new TypedArray prototype methods: copyWithin(), every(),
    fill(), filter(), find(), findIndex(), forEach(), indexOf(),
    join(), lastIndexOf(), map(), reduce(), reduceRight(), reverse(),
    slice(), some(), sort(). See
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
    for further information.
  - Implement new TypedArray.from() and TypedArray.of() functions. See
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
    for further information.
  - Implement arrow functions. See
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
    for further information.
  - Full ChangeLog available at
    https://github.com/v8/v8-git-mirror/blob/4.5.103/ChangeLog
@Fishrock123
Copy link
Contributor

LGTM as long as the commits list is good.

@Fishrock123
Copy link
Contributor

Also did not check any of the links.

@jasnell
Copy link
Member

jasnell commented Sep 8, 2015

LGTM. Testing on the unreliable wifi here has brought up a potential npm issue that I'm still investigating but ecosystem tests using citgm are looking good so far on both Mac OSX and Windows.

@Trott
Copy link
Member

Trott commented Sep 8, 2015

LGTM

@bnoordhuis
Copy link
Member

Pile-on LGTM.

@rvagg rvagg merged commit f9f8378 into v4.x Sep 8, 2015
@silverwind
Copy link
Contributor

Let's not forget the CHANGELOG.md update in master :)

@rvagg rvagg deleted the v4.0.0-proposal branch September 8, 2015 19:15
@rvagg
Copy link
Member Author

rvagg commented Sep 8, 2015

#2742

@rvagg
Copy link
Member Author

rvagg commented Sep 12, 2015

Interesting development .. this has been running since the 4.0.0 release and memory usage just jumped for no good reason (the server has been left alone doing the same thing over and over)

mem jump

Code is here: https://github.com/rvagg/node-memtest/blob/master/test/http-spew/index.js

Is it worth pinging someone in the V8 team to try and understand this?

@bnoordhuis
Copy link
Member

@rvagg Would it be possible to run http-spew with --trace_fragmentation --trace_fragmentation_verbose --track_gc_object_stats --trace_gc_object_stats --trace_gc --trace_gc_nvp --trace_gc_verbose? It's going to log a stupendous amount of info so you probably want to redirect stdout to the syslog.

If it's a debug build, --check_handle_count --code_stats --print_handles --print_global_handles --verify_heap would be good to have too.

@rvagg
Copy link
Member Author

rvagg commented Sep 12, 2015

that might be a bit much for this little machine I'm running these on, if the log data is going to spew what would I actually be looking for? would it be obvious or would I need to trace back to the moment when the spike occurred?

@rvagg
Copy link
Member Author

rvagg commented Sep 14, 2015

back down again

And back down again we go. Even though it's setInterval() triggering this work and crypto.randomBytes() is involved I'm pretty sure this is not about having overlapping/backed up work, this is a V8 thing. / @ChALkeR

@bnoordhuis
Copy link
Member

what would I actually be looking for? would it be obvious or would I need to trace back to the moment when the spike occurred?

I'd expect something to change around the time of the swings, maybe more frequent gc'ing or log messages about exceeding some threshold or heuristic.

At the very least, you should see it in the verbose summary that's printed with every sweep (assuming it's actually V8 and not node.)

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.

10 participants