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

Conversation

Projects
@jasnell
Member

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.

@ronkorving

This comment has been minimized.

Contributor

ronkorving commented Mar 6, 2018

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

@addaleax

This comment has been minimized.

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

This comment has been minimized.

Member

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

This comment has been minimized.

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

This comment has been minimized.

Member

vsemozhetbyt commented Mar 19, 2018

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

@jasnell

This comment has been minimized.

Member

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

This comment has been minimized.

Member

jasnell commented Apr 5, 2018

@jasnell

This comment has been minimized.

Member

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

This comment has been minimized.

Member

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

This comment has been minimized.

Member

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

This comment has been minimized.

Member

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

This comment has been minimized.

Member

jasnell commented Apr 5, 2018

@seishun

This comment has been minimized.

Member

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

This comment has been minimized.

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

This comment has been minimized.

Member

jasnell commented Apr 5, 2018

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

@rvagg

This comment has been minimized.

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

This comment has been minimized.

Member

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

Member

jasnell commented Apr 11, 2018

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

@rvagg

This comment has been minimized.

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

This comment has been minimized.

Member

jasnell commented Apr 17, 2018

New 10.0.0 test build (not everyone will be able to see this link) https://ci-release.nodejs.org/job/iojs+release/3336/

Artifacts are generating here: https://nodejs.org/download/test/v10.0.0-test20180417fa00e9cc5b/

/cc @nodejs/build

@hiroppy

This comment has been minimized.

Member

hiroppy commented Apr 19, 2018

@jasnell Could you change the description in the commit message? Because GitHub link(revisions) is broken.

@jasnell

This comment has been minimized.

Member

jasnell commented Apr 19, 2018

Ok, I've landed what should be the final semver-major commits and what are hopefully the finally semver-minor commits. It's possible that we'll get a few stragglers in over the next day or so but unlikely.

I will be cutting the first Release Candidate build later this afternoon.

@jasnell jasnell changed the title from [WIP] 10.0.0 Proposal to 10.0.0 Proposal Apr 19, 2018

@jasnell

This comment has been minimized.

Member

jasnell commented Apr 20, 2018

@jasnell

This comment has been minimized.

Member

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.

jasnell added some commits Mar 2, 2018

2018-04-24, Version 10.0.0 (Current)
* 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

This comment has been minimized.

Member

jasnell commented Apr 23, 2018

@jasnell

This comment has been minimized.

Member

jasnell commented Apr 23, 2018

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

@rvagg

This comment has been minimized.

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

This comment has been minimized.

Member

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

This comment has been minimized.

Member

jasnell commented Apr 23, 2018

@jasnell

This comment has been minimized.

Member

jasnell commented Apr 23, 2018

Hmmm... completely different test, similar failure.

@jasnell

This comment has been minimized.

Member

jasnell commented Apr 23, 2018

@fhinkel

Rubberstamp lgtm

@MylesBorins

This comment has been minimized.

Member

MylesBorins commented Apr 23, 2018

82 failures in CITGM. Has anyone reviewed them?

@jasnell

This comment has been minimized.

Member

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

This comment has been minimized.

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

This comment has been minimized.

Member

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

This comment has been minimized.

Member

Trott commented Apr 24, 2018

The OS X thing has an issue: #20194

And a fix pending: #20195

@Trott

This comment has been minimized.

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

12 of 14 checks passed

node-test-commit tests failed
Details
node-test-commit-osx running tests
Details
node-test-commit-aix tests passed
Details
node-test-commit-arm-fanned tests passed
Details
node-test-commit-freebsd tests passed
Details
node-test-commit-linux tests passed
Details
node-test-commit-plinux tests passed
Details
node-test-commit-smartos tests passed
Details
node-test-commit-windows-fanned tests passed
Details
node-test-linter tests passed
Details
node-test-linux-linked-debug tests passed
Details
node-test-linux-linked-openssl110 tests passed
Details
node-test-linux-linked-withoutintl tests passed
Details
node-test-linux-linked-zlib tests passed
Details
@jasnell

This comment has been minimized.

Member

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 Apr 24, 2018

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

This comment has been minimized.

Member

jasnell commented Apr 24, 2018

Done.

@rvagg

This comment has been minimized.

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

This comment has been minimized.

Member

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

@targos targos added this to Releases in v10.x Sep 23, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment