Description
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
- #2520 / [Converge] MSI related changes windows
- #2519 / [Converge] merge CHANGELOG.md with joyent/node ChangeLog doc
- #2518 / [Converge] copy relevant git metadata from joyent/node
- #2517 / [Converge] Re-enable mdb
- #2516 / build: use build_release target in vcbuild.bat to build releases build
- #2515 / [Converge] child_process argument type checking child_process
- #2514 / [Converge] SSLv2/3 related commits tls
- #2439 / win,msi: Upgrade from old upgrade code install windows
- #760 / process.send() is not synchronous child_process confirmed-bug process
- #268 / Optimize timer._unrefActive timers
Website migration tasks
Listed and tracking here: nodejs/build#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: nodejs/build#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.