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

10.0.0 Proposal #19091

Merged
merged 2 commits into from
Apr 24, 2018
Merged

10.0.0 Proposal #19091

merged 2 commits into from
Apr 24, 2018

Conversation

jasnell
Copy link
Member

@jasnell jasnell commented Mar 2, 2018

This is nearly ready:

  • 1st RC Build will be cut afternoon (pacific time) of April 19th
  • 2nd RC Build (if there are any updates landed) will be cut afternoon of April 23rd
  • Release will be afternoon of April 24th.

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.

@jasnell jasnell added the wip Issues and PRs that are still a work in progress. label Mar 2, 2018
@nodejs-github-bot nodejs-github-bot added the meta Issues and PRs related to the general management of the project. label Mar 2, 2018
@ronkorving
Copy link
Contributor

Something worth considering (cc @nodejs/v8): webpack/webpack#6613 (comment)

@addaleax
Copy link
Member

addaleax commented Mar 6, 2018

The patch for that issue that was linked is https://chromium.googlesource.com/v8/v8.git/+/06ee127b75726f9ee541aab10f6aecfe4d96675a, to save a few clicks.

@jasnell
Copy link
Member Author

jasnell commented Mar 6, 2018

@ronkorving ... in order for it to be in consideration for 10.0.0 there need to be a PR against master.

@ofrobots
Copy link
Contributor

ofrobots commented Mar 6, 2018

@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 master (which is set to pick up V8 6.5 any time now). I actually suspect that the backport might require a fair bit of effort to move from V8 6.7 to V8 6.5.

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.

@vsemozhetbyt
Copy link
Contributor

#19405 may need to be addressed soon as it concerns previous semver-major change (#17907)

@jasnell
Copy link
Member Author

jasnell commented Mar 20, 2018

First test build (not everyone will have access to this link): https://ci-release.nodejs.org/job/iojs+release/3187/

@jasnell jasnell force-pushed the 10.0.0-proposal branch 2 times, most recently from 221ca81 to 2ba6bcb Compare April 5, 2018 00:04
@jasnell
Copy link
Member Author

jasnell commented Apr 5, 2018

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/

@jasnell
Copy link
Member Author

jasnell commented Apr 5, 2018

@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?

@jasnell
Copy link
Member Author

jasnell commented Apr 5, 2018

@jasnell
Copy link
Member Author

jasnell commented Apr 5, 2018

@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.

@jasnell
Copy link
Member Author

jasnell commented Apr 5, 2018

@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.

@jasnell
Copy link
Member Author

jasnell commented Apr 5, 2018

Ping @nodejs/node-chakracore ... Please let me know what your timeline is for ensuring node-chakracore is up to date to v10.x ... My hope is that it will be ready at the same day as the main release. If it is, I'll include mention of it in the release announcement.

@jasnell
Copy link
Member Author

jasnell commented Apr 5, 2018

@nodejs/build ... looks like the OSX build failed also: https://ci-release.nodejs.org/job/iojs+release/3278/nodes=osx1010-release-pkg/console

@seishun
Copy link
Contributor

seishun commented Apr 5, 2018

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.

@hashseed
Copy link
Member

hashseed commented Apr 5, 2018

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.

@jasnell
Copy link
Member Author

jasnell commented Apr 5, 2018

Yeah, we're not going to delay for 6.7 this time around

@rvagg
Copy link
Member

rvagg commented Apr 5, 2018

@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.

@jasnell
Copy link
Member Author

jasnell commented Apr 11, 2018

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/

@rvagg
Copy link
Member

rvagg commented Apr 11, 2018

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.

@rvagg
Copy link
Member

rvagg commented Apr 11, 2018

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.

@jasnell
Copy link
Member Author

jasnell commented Apr 11, 2018

@rvagg ... the OSX test builds failed again.

@rvagg
Copy link
Member

rvagg commented Apr 12, 2018

@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?
I still have a TODO to clean up the osx release builder, I haven't been in there for some time so there's probably a bunch of updates at least.

@jasnell
Copy link
Member Author

jasnell commented Apr 23, 2018

@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.

* 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
@jasnell
Copy link
Member Author

jasnell commented Apr 23, 2018

@jasnell
Copy link
Member Author

jasnell commented Apr 23, 2018

OSX build appeared to flake out, rerunning: https://ci.nodejs.org/job/node-test-commit-osx/18050/

@rvagg
Copy link
Member

rvagg commented Apr 23, 2018

The osx failure was an unkilled process fwiw, the tests themselves were fine.

54919   ??  R    178:13.81 /Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1010/out/Release/node /Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1010/benchmark/http/cluster.js c=1 len=1 type=asc benchmarker=test-double chunkedEnc=true chunks=0 dur=0.1 input=keep-alive key="" method=write n=1 res=normal value=X-Powered-By

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.

@jasnell
Copy link
Member Author

jasnell commented Apr 23, 2018

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:

not ok 597 parallel/test-child-process-constructor
  ---
  duration_ms: 120.104
  severity: fail
  exitcode: -15
  stack: |-
    timeout
  ...

Which looks awfully suspicious. I'll be running it again.

Btw, CITGM results look acceptable. Nothing surprising there.

@jasnell
Copy link
Member Author

jasnell commented Apr 23, 2018

@jasnell
Copy link
Member Author

jasnell commented Apr 23, 2018

Hmmm... completely different test, similar failure.

@jasnell
Copy link
Member Author

jasnell commented Apr 23, 2018

Giving it one more go: https://ci.nodejs.org/job/node-test-commit-osx/18054/

Copy link
Member

@fhinkel fhinkel left a comment

Choose a reason for hiding this comment

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

Rubberstamp lgtm

@MylesBorins
Copy link
Contributor

82 failures in CITGM. Has anyone reviewed them?

@jasnell
Copy link
Member Author

jasnell commented Apr 24, 2018

Has anyone reviewed them?

I've reviewed some. There are a number of test-suite failures caused by the semver-major changes in the assert module. Beyond that it's difficult to tell. Could always use help reviewing.

@rvagg
Copy link
Member

rvagg commented Apr 24, 2018

Some random release thoughts, I hope these help.

  • I think that https://github.com/nodejs/nodejs-latest-linker will automatically pick up the new release and make a latest-v10.x symlink in https://nodejs.org/download/release/, but it's worth double-checking that happens when the release is promoted. I believe it's only the LTS named links that need manual addition.
  • Also better check index.json (and index.tab) contain the right things or nvm users might be complaining. I'm not seeing any problems with the nighlies so I don't expect there to be a problem but you never know since it's such a convoluted process of scanning source files for versions of things. That's all in https://github.com/nodejs/nodejs-dist-indexer
  • And of course nodejs.org needs a switch to the new Current, this should be automatic when the site is updated the next time after promotion (with release blog post presumably) but who knows what havoc the 2-digit version number is going to cause! It could be our own y2k.

@jasnell
Copy link
Member Author

jasnell commented Apr 24, 2018

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.

@Trott
Copy link
Member

Trott commented Apr 24, 2018

The OS X thing has an issue: #20194

And a fix pending: #20195

@Trott
Copy link
Member

Trott commented Apr 24, 2018

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/

@jasnell jasnell merged commit 4289402 into v10.x Apr 24, 2018
@jasnell
Copy link
Member Author

jasnell commented Apr 24, 2018

Tag signed and pushed. Will promote the release shortly....

Basically waiting on the node-chakracore build (nodejs/node-chakracore#520) to complete before promoting.

@addaleax addaleax deleted the 10.0.0-proposal branch April 24, 2018 19:07
jasnell added a commit to jasnell/new.nodejs.org that referenced this pull request Apr 24, 2018
jasnell added a commit to nodejs/nodejs.org that referenced this pull request Apr 24, 2018
@jasnell
Copy link
Member Author

jasnell commented Apr 24, 2018

Done.

@rvagg
Copy link
Member

rvagg commented Apr 25, 2018

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

@jasnell
Copy link
Member Author

jasnell commented Apr 25, 2018

I don't know about you but that felt like a huge marathon ..

That's one way to describe it. Lol

@targos targos added the v10.x label Sep 23, 2018
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.