-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
10.0.0 Proposal #19091
10.0.0 Proposal #19091
Conversation
Something worth considering (cc @nodejs/v8): webpack/webpack#6613 (comment) |
The patch for that issue that was linked is https://chromium.googlesource.com/v8/v8.git/+/06ee127b75726f9ee541aab10f6aecfe4d96675a, to save a few clicks. |
@ronkorving ... in order for it to be in consideration for 10.0.0 there need to be a PR against master. |
@ronkorving that's a fairly substantial change, and one that hasn't gotten enough real-world coverage yet on Chrome Canary. My preference would be to NOT to backport it to It might be possible to upgrade V8 version in a ABI/API compatible way even after the 10.0.0 release, and my preference would be to focus on being able to do that. |
18969a7
to
d399e5e
Compare
First test build (not everyone will have access to this link): https://ci-release.nodejs.org/job/iojs+release/3187/ |
221ca81
to
2ba6bcb
Compare
New test build (not everyone will have access to this link): https://ci-release.nodejs.org/job/iojs+release/3278/ Artifacts: https://nodejs.org/download/test/v10.0.0-test20180404bb776119ac/ |
@mhdawson @nodejs/build : There was a build error when attempting to run the test build on smartos15-release ... https://ci-release.nodejs.org/job/iojs+release/3278/nodes=smartos15-release/console ... can you take a look please? |
@nodejs/tsc @nodejs/collaborators ... FYI... I'm cutting off semver-majors next Tuesday April 10th. After that, we will need TSC approval to pull a semver-major in to 10.0.0. Please try to land any semver-majors that absolutely have to be in 10.0.0 by end of day Monday April 9th. |
@nodejs/v8 @targos @MylesBorins @fhinkel ... can someone with more knowledge than I please write up a quick summary of any ABI breaking changes from Node.js v9.x to Node.js v10.0.0? I'd like to include the summary in the change logs. |
Ping @nodejs/node-chakracore ... Please let me know what your timeline is for ensuring node-chakracore is up to date to |
@nodejs/build ... looks like the OSX build failed also: https://ci-release.nodejs.org/job/iojs+release/3278/nodes=osx1010-release-pkg/console |
Any chance we could delay the release until V8 6.7 turns stable? Introducing a new type to the language is quite a significant change and doing it in a minor version doesn't seem right, even if it's non-breaking. |
V8 6.7 turns stable on May 29th, 2018, which is probably too late. But I was definitely hoping Node 10 initially releases late April, as explained here. This gives us a time window to float a patch to make V8 6.6's ABI forward-compatible to 6.7. |
Yeah, we're not going to delay for 6.7 this time around |
@jasnell I think the OSX failure is just one of those random jenkins blips we experience, all the other builds during the day, including 9.11.0 and 9.11.1 were fine. I tried to restart but the commit seems to have disappeared so when you have a chance, push something and do a new test build. |
2ba6bcb
to
6fc5eba
Compare
New Test build... not everyone will have access to this: https://ci-release.nodejs.org/job/iojs+release/3300/ Test artifacts will drop here: https://nodejs.org/download/test/v10.0.0-test20180410edd9cc466a/ |
6fc5eba
to
17edbd7
Compare
I rerun the same build @ https://ci-release.nodejs.org/job/iojs+release/3301/ after fixing the smartos15 x64 builds, that's just a problem for non-release non-test builds, all green now. |
As of the today's nightly build and the next test build of 10.0.0 we're using a new toolchain to build for Linux. We should retain compatibility with EL6 and later distro versions (that's pre-Wheezy and pre-12.04, so basically everything), glibc 2.12. But it's something to keep an eye on; as much as I test these binaries I still can't shake the fear that the newer libstdc++ is going to be a problem. We've also been using a new toolchain for the armv6 and armv7 builds. They're now Jessie-level (14.04, but later than EL7), glibc 2.19. SmartOS builds will be with a later toolchain but that's still being worked on. AIX too I guess. These are not strictly final, we're getting to that, but it's a good bet I think. |
@rvagg ... the OSX test builds failed again. |
@jasnell I'm not seeing a new test build from you in jenkins, nor an osx failure in there other than the v8-canary builds which have been failing for a while now. Got a link? |
@nodejs/tsc @nodejs/collaborators ... I will be pulling in whatever remaining semver-patch commits land between now and noon pacific today then I will generate the final release candidate. Barring any issues that come up in testing, that RC should be the final cut before the actual release to be cut tomorrow. |
1a2d20a
to
1dab16b
Compare
* Assert * Calling `assert.fail()` with more than one argument is deprecated. #70dcacd710 * Calling `assert.ok()` with no arguments will now throw. #3cd7977a42 * Calling `assert.ifError()` will now throw with any argument other than `undefined` or `null`. Previously the method would throw with any truthy value. #e65a6e81ef * The `assert.rejects()` and `assert.doesNotReject()` methods have been added for working with async functions. #599337f43e * Async_hooks * Older experimental async_hooks APIs have been removed. #1cc6b993b9 * Buffer * Uses of `new Buffer()` and `Buffer()` outside of the `node_modules` directory will now emit a runtime deprecation warning. #9d4ab90117 * `Buffer.isEncoding()` now returns `undefined` for falsy values, including an empty string. #452eed956e * `Buffer.fill()` will throw if an attempt is made to fill with an empty `Buffer`. #1e802539b2 * Child Process * Undefined properties of env are ignored. #38ee25e2e2, #85739b6c5b * Console * The `console.table()` method has been added. #97ace04492 * Crypto * The `crypto.createCipher()` and `crypto.createDecipher()` methods have been deprecated. Please use `crypto.createCipheriv()` and `crypto.createDecipheriv()` instead. #81f88e30dd * The `decipher.finaltol()` method has been deprecated. #19f3927d92 * The `crypto.DEFAULT_ENCODING` property has been deprecated. #6035beea93 * The `ECDH.convertKey()` method has been added. #f2e02883e7 * The `crypto.fips` property has been deprecated. #6e7992e8b8 * Dependencies * V8 has been updated to 6.6. #9daebb48d6 * OpenSSL has been updated to 1.1.0h. #66cb29e646 * EventEmitter * The `EventEmitter.prototype.off()` method has been added as an alias for `EventEmitter.prototype.removeListener()`. #3bb6f07d52 * File System * The `fs.promises` API provides experimental promisified versions of the `fs` functions. #329fc78e49 * Invalid path errors are now thrown synchronously. #d8f73385e2 * The `fs.readFile()` method now partitions reads to avoid thread pool exhaustion. #67a4ce1c6e * HTTP * Processing of HTTP Status codes `100`, `102-199` has been improved. #baf8495078 * Multi-byte characters in URL paths are now forbidden. #b961d9fd83 * N-API * The n-api is no longer experimental. #cd7d7b15c1 * Net * The `'close'` event will be emitted after `'end'`. #9b7a6914a7 * Perf_hooks * The `PerformanceObserver` class is now an `AsyncResource` and can be monitored using `async_hooks`. #009e41826f * Trace events are now emitted for performance events. #9e509b622b * The `performance` API has been simplified. #2ec6995555 * Performance milestone marks will be emitted as trace events. #96cb4fb795 * Process * Using non-string values for `process.env` is deprecated. #5826fe4e79 * The `process.assert()` method is deprecated. #703e37cf3f * REPL * REPL now experimentally supports top-level await when using the `--experimental-repl-await` flag. #eeab7bc068 * The previously deprecated "magic mode" has been removed. #4893f70d12 * The previously deprecated `NODE_REPL_HISTORY_FILE` environment variable has been removed. #60c9ad7979 * Proxy objects are shown as Proxy objects when inspected. #90a43906ab * Streams * The `'readable'` event is now always deferred with nextTick. #1e0f3315c7 * A new `pipeline()` method has been provided for building end-to-data stream pipelines. #a5cf3feaf1 * Experimental support for async for-await has been added to `stream.Readable`. #61b4d60c5d * Timers * The `enroll()` and `unenroll()` methods have been deprecated. #68783ae0b8 * TLS * The `tls.convertNONProtocols()` method has been deprecated. #9204a0db6e * Support for NPN (next protocol negotiation) has been dropped. #5bfbe5ceae * The `ecdhCurve` default is now `'auto'`. #af78840b19 * Trace Events * A new `trace_events` top-level module allows trace event categories to be enabled/disabld at runtime. #da5d818a54 * URL * The WHATWG URL API is now a global. #312414662b * Util * `util.types.is[…]` type checks have been added. #b20af8088a * Support for bigint formatting has been added to `util.inspect()`. #39dc947409
1dab16b
to
4289402
Compare
RC.2 CI: https://ci.nodejs.org/job/node-test-pull-request/14458/ |
OSX build appeared to flake out, rerunning: https://ci.nodejs.org/job/node-test-commit-osx/18050/ |
The osx failure was an unkilled process fwiw, the tests themselves were fine.
Not necessarily a show stopper but a concern since we've been seeing a few of these on master. There's something to fix here but more likely to be something to do with the tests. |
Yep... none of the tests appear to have timed out so not sure what it is. Definitely will need to be looked at but agree that it's not a show stopper. Second OSX is showing this, however:
Which looks awfully suspicious. I'll be running it again. Btw, CITGM results look acceptable. Nothing surprising there. |
Hmmm... completely different test, similar failure. |
Giving it one more go: https://ci.nodejs.org/job/node-test-commit-osx/18054/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rubberstamp lgtm
82 failures in CITGM. Has anyone reviewed them? |
I've reviewed some. There are a number of test-suite failures caused by the semver-major changes in the |
Some random release thoughts, I hope these help.
|
Starting to generate the release builds now... https://ci-release.nodejs.org/job/iojs+release/3355/ (not everyone will have access to that link). Once successfully generated I'll be doing another around of test verification. The plan is to promote the release around 1pm pacific. Update 1: Building the release artifacts was successful. Will be testing for a bit now. |
In the meantime, I just logged on and manually fixed test-requireio-osx1010-x64-1. OS X CI again: https://ci.nodejs.org/job/node-test-commit-osx/18078/ |
Tag signed and pushed. Will promote the release shortly.... Basically waiting on the node-chakracore build (nodejs/node-chakracore#520) to complete before promoting. |
Done. |
good work all, I don't know about you but that felt like a huge marathon .. I'll try to get the openssl doc and BUILDING.md needs a lot of work to be accurate according to where we're at with 10+ and it needs some clarifying too |
That's one way to describe it. Lol |
This is nearly ready:
Please do not push any commits to the v10.x-staging or v10.x branches as these will be completely rewritten over the course of the release process, right up until the day of the release.