nodejs / node

Node.js JavaScript runtime ✨🐢🚀✨
https://nodejs.org
Other
104.51k stars 28.19k forks source link

Node.js v4 Release Timeline #2522

Closed rvagg closed 8 years ago

rvagg commented 8 years ago

This is ultimately up to @nodejs/tsc but for the sake of just getting it done I'm going to propose the way forward and will both tag this as tsc-agenda and ask that @nodejs/tsc members comment on this thread, particularly if they'd like to -1 anything I'm suggesting—otherwise let's roll with this.

Our original aim was to get v4 out by the "end of August" so that we had a good 2 months of real-world use of v4 before it turned into LTS at the end of October. We really need to hit the end of October window for LTS so the longer we can have v4 out the better the chance of having a solid combination of features as we lock down what can be changed during LTS.

io.js v3 is doing a great job at being an alpha for Node.js v4 but it's adoption is limited and it will only be when we have a new Node.js out that we'll get an increase in usage. Thankfully there are already great efforts to update popular add-ons to NAN 2.

Core tasks

Managed by the 4.0.0 milestone

Listed and tracking here: https://github.com/nodejs/build/issues/163

@nodejs/website @nodejs/evangelism are there other issues where you are tracking progress and do we have everything captured in @ @nodejs/build that you need?

Release procedure tasks

This is needed because once we get to a new server for nodejs.org we need to ensure we can put proper 0.10 and 0.12 binaries on it and and existing users have a seamless transition.

Listed and tracking here: https://github.com/nodejs/build/issues/164

Timeline

Days are in Pacific Time, I think most of us are used to thinking that way.

Friday, 28th of August:

My proposal is that we adopt a feature freeze at the end of this week, i.e. midnight, Friday the 28th PT. This means that everything that's semver-major or semver-minor that is going to make it in to v4.0.0 needs to be landed by then.

Also, cut a v4.x branch and start the cherry-pick process like we're doing for v3.x.

Monday, 31st of August:

DNS changeover to the new nodejs.org site, ensuring consistency for users of /dist/, /api/ and other endpoints that are in use, but with new.nodejs.org code, on new infrastructure, hopefully on a CDN, and able to accept releases of all active lines of Node.js (0.10, 0.12 and v4 RCs) and io.js (v3 and possibly v2 kept alive if we have a call for it) (i.e. it should also serve iojs.org so we don't have to ship binaries to different locations just for that).

28th of August to 3rd of September:

A series of release candidates, made available, first at https://iojs.org/download/rc/ and then http://nodejs.org/download/rc/ after the DNS changeover and nodejs.org is being served off a the new server, to test the release procedure and make have testable builds that we can try out.

Changes that are not semver-major or semver-minor can still be cherry-picked into v4.x but we should become increasingly strict as the week progresses in the interests of having a solid v4.0.0.

Thursday, 3rd of September:

Release v4.0.0.

If, for some reason, we fail to get it out by end of day on Thursday, Pacific Time, we'll postpone the release until Monday, 7th of September so as to avoid the pain of a weekend release.


Again, this is a proposal but unless there is objection from @nodejs/tsc, let's treat it as the plan so we can ship this thing.

jasnell commented 8 years ago

This looks solid. +1 On Aug 24, 2015 6:37 AM, "Rod Vagg" notifications@github.com wrote:

This is ultimately up to @nodejs/tsc https://github.com/orgs/nodejs/teams/tsc but for the sake of just getting it done I'm going to propose the way forward and will both tag this as tsc-agenda and ask that @nodejs/tsc https://github.com/orgs/nodejs/teams/tsc members comment on this thread, particularly if they'd like to -1 anything I'm suggesting—otherwise let's roll with this.

Our original aim was to get v4 out by the "end of August" so that we had a good 2 months of real-world use of v4 before it turned into LTS at the end of October. We really need to hit the end of October window for LTS so the longer we can have v4 out the better the chance of having a solid combination of features as we lock down what can be changed during LTS.

io.js v3 is doing a great job at being an alpha for Node.js v4 but it's adoption is limited and it will only be when we have a new Node.js out that we'll get an increase in usage. Thankfully there are already great efforts to update popular add-ons to NAN 2. Core tasks

Managed by the 4.0.0 milestone https://github.com/nodejs/node/milestones/4.0.0

Website migration tasks

Listed and tracking here: nodejs/build#163 https://github.com/nodejs/build/issues/163

@nodejs/website https://github.com/orgs/nodejs/teams/website @nodejs/evangelism https://github.com/orgs/nodejs/teams/evangelism are there other issues where you are tracking progress and do we have everything captured in @ @nodejs/build https://github.com/orgs/nodejs/teams/build that you need? Release procedure tasks

This is needed because once we get to a new server for nodejs.org we need to ensure we can put proper 0.10 and 0.12 binaries on it and and existing users have a seamless transition.

Listed and tracking here: nodejs/build#164 https://github.com/nodejs/build/issues/164 Timeline

Days are in Pacific Time, I think most of us are used to thinking that way.

Friday, 28th of August:

My proposal is that we adopt a feature freeze at the end of this week, i.e. midnight, Friday the 28th PT. This means that everything that's semver-major https://github.com/nodejs/node/labels/semver-major or semver-minor https://github.com/nodejs/node/labels/semver-minor that is going to make it in to v4.0.0 needs to be landed by then.

Also, cut a v4.x branch and start the cherry-pick process like we're doing for v3.x.

Monday, 31st of August:

DNS changeover to the new nodejs.org http://nodejs.org site, ensuring consistency for users of /dist/, /api/ and other endpoints that are in use, but with new.nodejs.org https://github.com/nodejs/new.nodejs.org code, on new infrastructure, hopefully on a CDN, and able to accept releases of all active lines of Node.js (0.10, 0.12 and v4 RCs) and io.js (v3 and possibly v2 kept alive if we have a call for it) (i.e. it should also serve iojs.org so we don't have to ship binaries to different locations just for that).

28th of August to 3rd of September:

A series of release candidates, made available, first at https://iojs.org/download/rc/ and then http://nodejs.org/download/rc/ after the DNS changeover and nodejs.org is being served off a the new server, to test the release procedure and make have testable builds that we can try out.

Changes that are not semver-major or semver-minor can still be cherry-picked into v4.x but we should become increasingly strict as the week progresses in the interests of having a solid v4.0.0.

Thursday, 3rd of September:

Release v4.0.0.

If, for some reason, we fail to get it out by end of day on Thursday, Pacific Time, we'll postpone the release until Monday, 7th of September so

as to avoid the pain of a weekend release.

Again, this is a proposal but unless there is objection from @nodejs/tsc https://github.com/orgs/nodejs/teams/tsc, let's treat it as the plan so we can ship this thing.

— Reply to this email directly or view it on GitHub https://github.com/nodejs/node/issues/2522.

mscdex commented 8 years ago

LGTM

thefourtheye commented 8 years ago

I love this plan. LGTM

export-mike commented 8 years ago

As some would say. Amazeballs.

ChALkeR commented 8 years ago

Is «midnight, Friday the 28th PT» (feature freeze) 2015-08-28 00:00:00 or 2015-08-28 23:59:59? Doesn't seem clear to me.

bnoordhuis commented 8 years ago

I hate feature freezes. Can we say that the v4.x branch is cut on the 28th and only gets bug fixes from then on but that master is still FFA?

trevnorris commented 8 years ago

Think that's what is meant. The v4.x branch won't be receiving any changes, only fixes, until it's released. Changes will continue to land as normal on master. Basically, our current workflow won't change.

bguiz commented 8 years ago

+1

rvagg commented 8 years ago

@bnoordhuis you're not the first person to object to my use of the term "feature freeze" here, really what I'm getting at is that all of this stuff should be landed by then: https://github.com/nodejs/node/milestones/4.0.0, cutting a v4.x branch will help with that. This is OSS so there's no PM breathing down our shoulders who will yell at us if we land a major change in the last couple of days but I'd really like us to focus on getting the important stuff landed this week and cut our losses if we can't.

shigeki commented 8 years ago

I have no objection but let me confirm that LTS starts 1st Oct. but feature freeze and only bug fix for v4.0 branch start from 3rd Sep. What is the difference? Is there any purpose to be 4 weeks ahead?

rvagg commented 8 years ago

Actually you're right, start of October according to https://github.com/nodejs/LTS/, I've had end of October in my head all this time for some reason, so that gives us even less time to get this right!

shigeki commented 8 years ago

So If there is no actual meaning of LTS starting in Oct., I think it is better to say that LTS starts form the date of the release of 4.0.0, 3rd Sep. but we need not change the end of LTS.

Fishrock123 commented 8 years ago

So If there is no actual meaning of LTS starting in Oct.

LTS means less stuff lands into it, since 5.0 will be stable, and there will be a master for 6.0

rvagg commented 8 years ago

The gap between releasing v4 and turning it into LTS gives us the opportunity to land semver-minor changes as well as some patch changes that we might decide don't belong in an LTS. We may get to 4.2.x by LTS, perhaps higher, then LTS stays on that minor.major (unless it's absolutely necessary to land a semver-minor)

shigeki commented 8 years ago

Okay, it sounds clear to me. Thanks.

rvagg commented 8 years ago

All of the big issues in https://github.com/nodejs/node/milestones/4.0.0 have assignees now. @joaocgreis, @misterdjules, @trevnorris, @shigeki, @bnoordhuis, @Fishrock123 could you please try and take care of them by the end of this week and if you can't allocate time or don't think it's going to make it then please just keep us informed so we can plan accordingly or have others jump in and help.

The only unassigned is the changelog merge @ https://github.com/nodejs/node/issues/2519 which I'll take if nobody else steps up in the meantime.

Globegitter commented 8 years ago

Any chance for getting in https://github.com/nodejs/node/issues/4? Seeing as https://github.com/indutny/node-spdy by @indutny is now out of beta for almost two weeks maybe that could be adopted and I do think HTTP/2 compatibility would be a big selling point for Nodejs 4.0.0. Or is that too much of wish-thinking and better for a release after?

rvagg commented 8 years ago

@Globegitter sorry, that's out of scope for this release, we're far from consensus on what, if anything should be done and have zero code against core to assess if we even decided to go for this.

mikeal commented 8 years ago

If I could get some high level bullet points for this release I can send them off to the marketing committee and we can line up some good PR around the release.

rvagg commented 8 years ago

@Fishrock123 I don't suppose you could handle that? You're probably in the best position to grok the delta between this release and everything else and maybe this should be about 0.10 & 0.12 -> v4. Additionally @mikeal probably building in some wording about the new LTS schedule would be worthwhile because v4 also represents a shift to a much more planned and predictable release schedule.

Fishrock123 commented 8 years ago

Yes, we'll need to advertise the release schedule with it since v5 is planned for oct when 4.0 goes into LTS.

orangemocha commented 8 years ago

This PR is also on the 4.0 milestone: https://github.com/nodejs/node/pull/2424

nigampatel commented 8 years ago

+1

rvagg commented 8 years ago

I've created a new v4.x branch and moved master on to 5.0.0—don't take that as permission to land crazy stuff like V8 upgrades that haven't gone gold yet, but it can be used to land breaking changes that aren't slated for v4 now. We'll cherry-pick to v4.x like we are for v3.x not but with a focus on stability for release.

rvagg commented 8 years ago

Status update:

I'm still pushing for Thursday as release day but to be honest it's feeling like quite a stretch. I know everyone's busy with their lives and this is an awkward time but I'd appreciate help getting fixes in and helping to trim scope and protect a stable and shippable v4.x.

jasnell commented 8 years ago

@rvagg ... I've got a window of time available today and tomorrow to help finish the push on v4.x. What are the remaining items that need the most attention? I can go looking myself but may be faster and more productive if you already have a list.

rvagg commented 8 years ago

I don't know who's been adding things to 4.0.0, I'm guessing it's become a wishlist for collaborators, but our list now is longer than when I opened this issue even though we've checked most of the original issues off!

Please @nodejs/collaborators if you've been tagging things in the 4.0.0 milestone, go back and make an assessment wrt whether it really should be in 4.0.0, we can't keep on making this list grow and have to actually remove items from this list because there's no time left to get new work done.

If you need help landing a PR, please yell, maybe here, it's urgent that you land anything that needs to go in to 4.0.0, RC builds will be out very soon, hopefully within 24 hours (I did a trial-run of an RC.1 here if you want to follow the links to download an artifact from Jenkins. I have it running on my machine but I know the Mac installer is broken but I don't have enough info to open an issue yet).

rvagg commented 8 years ago

@jasnell ^ this is where I need the most help, we have to both trim this list and get things closed. The more shepherding you can do the better, then I can focus on build so we can get RC's out. If @ofrobots's needs any help getting V8 4.5 merged into master then that'll be a help too.

jasnell commented 8 years ago

Understood.

That leaves #2516 and #268 .. both of which I'll need to look at in the morning to assess.

@piscisaureus @Fishrock123 ... would appreciate an update on where things are at with #268

rvagg commented 8 years ago

2516 is on my plate, it should be complete as per https://github.com/nodejs/node/pull/2625 and @srl295's testing of v3.3.0 but I want to leave it open to confirm for RC builds.

jasnell commented 8 years ago

Ok. Overall, then, that leaves landing #2667, #2661, and #2605 tomorrow morning.

awalgarg commented 8 years ago

Any chance v8 can be upgraded to 4.7? (or has it been?) We could have arrow functions that way...

thefourtheye commented 8 years ago

@awalGarg Arrow functions are in 4.5 itself I guess.

targos commented 8 years ago

@awalGarg V8 will be eventually upgraded to 4.7, but only when it is in the stable version of Chrome (in about 3 months).

awalgarg commented 8 years ago

@thefourtheye ah right, my bad. @targos well so v4.5 (which as arrow functions, as correctly pointed out by @thefourtheye) is already in chrome stable (chrome 45, right now). So can we expect V8 4.5 to be in iojs v4?

thefourtheye commented 8 years ago

@awalGarg #2632 is the patch which lands v8 4.5 in Node.js and it is part of the 4.0.0 milestone. So, if everything goes well, yes, we can have v8 4.5 features in Node.js v4.0.0 :-)

awalgarg commented 8 years ago

\o/ thanks!

Fishrock123 commented 8 years ago

@rvagg

can't pipe to a stream without listenerCount / #2655

This is a breaking problem we should be partially fixing. It'l be done today.

url.parse now encodes components #2113

This is docs. Will be done today.

Fishrock123 commented 8 years ago

would appreciate an update on where things are at with #268

I didn't know if I should outright close the original issue. I guess it's fine to. I'll throw some time at it at a later date.

jasnell commented 8 years ago

@rvagg @Fishrock123 : #2667 is landed in master. It needs to be cherry picked over for v4.x. I won't have time to do that myself today. If either one of you can get to that I'd appreciate it.

jasnell commented 8 years ago

Several of the other PRs have landed now too. Those just need to be cherry picked and we should be good to go.

Fishrock123 commented 8 years ago

I will cherry-pick momentarily. It'l just be missing the v8 until it lands in master.

joshmanders commented 8 years ago

So can we expect V8 4.5 to be in iojs v4?

yes, we can have v8 4.5 features in Node.js v4.0.0 :-)

That correction is the most beautiful thing I've seen in months.

timdorr commented 8 years ago

Looks like #2517 is being punted. That leaves #2516, meaning v4 is being held up by a .bat file... :)

Fishrock123 commented 8 years ago

Yes, I think all that is left is minor build and release related things.

rvagg commented 8 years ago

I don't think this has been said clearly anywhere but we've agreed to punt release until Monday US time. We haven't had enough time to get an RC or two out. I'm working on that now.

rvagg commented 8 years ago

I'm satisfied by my testing of current master against some addons that V8 4.5 is "safe" from a NAN/addon perspective. Continuing to do some general tests and aside from some new general flakiness that I don't believe is related to this upgrade it seems that we'll having 4.5 in our v4.x branch shortly. Good work keeping on top of this @ofrobots and my apologies to @domenic, @kkoopa and others for my noobish reading of the diffs and falsely claiming there were unplanned API changes, I was wrong on that front.

jasnell commented 8 years ago

Thank you all for the review. Looking forward to the release! On Sep 3, 2015 7:22 PM, "Rod Vagg" notifications@github.com wrote:

I'm satisfied by my testing of current master against some addons that V8 4.5 is "safe" from a NAN/addon perspective. Continuing to do some general tests and aside from some new general flakiness that I don't believe is related to this upgrade it seems that we'll having 4.5 in our v4.x branch shortly. Good work keeping on top of this @ofrobots https://github.com/ofrobots and my apologies to @domenic https://github.com/domenic, @kkoopa https://github.com/kkoopa and others for my noobish reading of the diffs and falsely claiming there were unplanned API changes, I was wrong on that front.

— Reply to this email directly or view it on GitHub https://github.com/nodejs/node/issues/2522#issuecomment-137627615.

thefourtheye commented 8 years ago

As libuv 1.7.3 landed, which enables recursive file watching option in Windows, would it be better if #2649 (doc and test) landed?

sathishsoundharajan commented 8 years ago

Which version of npm is bundled with v4?