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

Release proposal: v3.0.0 #2221

Closed
wants to merge 52 commits into from
Closed

Release proposal: v3.0.0 #2221

wants to merge 52 commits into from

Conversation

rvagg
Copy link
Member

@rvagg rvagg commented Jul 22, 2015

I'm tackling this 3.0.0 problem from a different angle, I'm sick of producing "RC" builds from a next branch that is so far behind master, meaning they are nothing like "release candidates" and catching up is next to impossible.

This branch, on nodejs/io.js so others can contribute, is the current master with changes from next cherry-picked in and I'm just going to rebase to keep it up to date and it's mergable if we decide to go that way (I'm leaning that way currently fwiw).

I made a branch-diff tool that's like doing git log b1..b2 but not as strict and uses our PR-URL metadata to help with matches. This was mainly to help identify what to cherry-pick. It also prints out changelog-maker output so I can also do this:

@yosuke-furukawa
Copy link
Member

I would like to know the relationship between next and next+1 branch.
io.js v3.0 is based on next branch or next+1 branch ??

@rvagg
Copy link
Member Author

rvagg commented Jul 22, 2015

io.js v3.0.0 will be based on what's in this PR (may not come from this PR but it's this list of changes on master), next is where this comes from but next is falling behind master at a rapid rate, hence the change of approach. This means that v3.0.0 will be with V8 v4.4 unless we can't get it done for some reason.

next+1 is where some folks are working with V8 v4.5, at the current rate I'd expect that work to form the basis of Node.js v4.0.0. Unfortunately next+1 is going to suffer from the same problem as next in falling behind master. But if you want a playground for V8 v4.5 then you should go there.

@rvagg
Copy link
Member Author

rvagg commented Jul 22, 2015

v3.0.0 RC 4 based on this branch: https://iojs.org/download/rc/v3.0.0-rc.4/

$ node -pe process.versions
{ http_parser: '2.5.0',
  node: '3.0.0-rc.4',
  v8: '4.4.63.12',
  uv: '1.6.1',
  zlib: '1.2.8',
  ares: '1.10.1-DEV',
  modules: '45',
  openssl: '1.0.2d' }

Includes the node-gyp changes for quick header downloads (note how it not only grabs the headers tarball but it also knows this is an RC so it has to go elsewhere for it):

$ npm i buffertools
npm http request GET https://registry.npmjs.org/buffertools
npm http 200 https://registry.npmjs.org/buffertools
npm http fetch GET https://registry.npmjs.org/buffertools/-/buffertools-2.1.3.tgz
npm http fetch 200 https://registry.npmjs.org/buffertools/-/buffertools-2.1.3.tgz
npm WARN engine buffertools@2.1.3: wanted: {"node":">=0.3.0"} (current: {"node":"3.0.0-rc.4","npm":"2.13.1"})

> buffertools@2.1.3 install /home/rvagg/git/iojs/io.js/node_modules/buffertools
> node-gyp rebuild

gyp http GET https://iojs.org/download/rc/v3.0.0-rc.4/iojs-v3.0.0-rc.4-headers.tar.gz
gyp http 200 https://iojs.org/download/rc/v3.0.0-rc.4/iojs-v3.0.0-rc.4-headers.tar.gz
gyp http GET https://iojs.org/download/rc/v3.0.0-rc.4/SHASUMS256.txt
gyp http 200 https://iojs.org/download/rc/v3.0.0-rc.4/SHASUMS256.txt
make: Entering directory '/home/rvagg/git/iojs/io.js/node_modules/buffertools/build'
  CXX(target) Release/obj.target/buffertools/buffertools.o
  SOLINK_MODULE(target) Release/obj.target/buffertools.node
  COPY Release/buffertools.node
make: Leaving directory '/home/rvagg/git/iojs/io.js/node_modules/buffertools/build'
buffertools@2.1.3 node_modules/buffertools

It also includes the process.release changes which will be used for further modifications to node-gyp which should be upstreamed if all goes well.

$ node -pe process.release
{ name: 'io.js',
  sourceUrl: 'https://iojs.org/download/rc/v3.0.0-rc.4/iojs-v3.0.0-rc.4.tar.gz',
  headersUrl: 'https://iojs.org/download/rc/v3.0.0-rc.4/iojs-v3.0.0-rc.4-headers.tar.gz' }

@ralphtheninja
Copy link
Contributor

Huge +1 for process.release

@ofrobots
Copy link
Contributor

@rvagg I'm a little bit confused with what the difference between the next and this branch is and why it would be easier to merge master onto this branch and then cherry-pick from next rather than merging master onto next.

Going forward, should V8 upgrades (like the latest one in #2220) continue going into next?

@trevnorris
Copy link
Contributor

@rvagg Buffer changes look good to me. Though I would recommend we land #2195 first. Also I noticed another bug in Slice(). Easy enough to fix, but will need to submit a PR and all that.

@trevnorris
Copy link
Contributor

@rvagg Here's the fix for the other issue: #2225

@mscdex mscdex added the meta Issues and PRs related to the general management of the project. label Jul 22, 2015
@rvagg
Copy link
Member Author

rvagg commented Jul 23, 2015

@ofrobots this:

$ git diff v3.0.0-alpha next --stat | tail -1
 695 files changed, 13678 insertions(+), 18437 deletions(-)

Granted a lot of that is npm, but getting out release candidates from a next branch that is so far behind master is a pain and lacks legitimacy. This is just my attempt at resetting so we have a path to getting it out.

I was rightly scolded in the TSC call today for my willingness to rebase given the pain this causes for anyone else working on the same branch, but we're starting to converge on a better process for keeping all of these things up to date. 3.0.0 is just a hump we have to get over now!

@rvagg rvagg force-pushed the v3.0.0-alpha branch 2 times, most recently from d584b2b to 01336b0 Compare July 23, 2015 03:13
@ofrobots
Copy link
Contributor

Okay, I see. Going forward I can volunteer some time to try and keep next and next+1 up-to-date with master.

@hokein
Copy link
Contributor

hokein commented Jul 23, 2015

Hi all, could you tell me when will iojs v3.0.0 release?

@Fishrock123
Copy link
Contributor

Hi all, could you tell me when will iojs v3.0.0 release?

Soon™ -- Literally when it's ready. Most of everything is done now, we had to wait for NAN to catch up for native addons to be reasonable.

@bnoordhuis
Copy link
Member

Going forward I can volunteer some time to try and keep next and next+1 up-to-date with master.

Me too post. I've been a little overcommitted recently but I'll have more time again starting next week.

I missed the discussion on yesterday's TSC call. Is the plan to merge master frequently into next and next+1 (or master into next and next into next+1)?

@Fishrock123
Copy link
Contributor

@bnoordhuis will you possibly be able to make it to #2230?

The generally discussion has shifted a bit. Turns out things like bisect and blame don't work so well with the previous proposed approach.

See also: https://gist.github.com/trevnorris/7620a64b086e95271197 and #2215

@bnoordhuis
Copy link
Member

will you possibly be able to make it to #2230?

I think I can make that. I'll try to.

@rvagg
Copy link
Member Author

rvagg commented Jul 24, 2015

@Starefossen
Copy link
Member

Great work 👏

@YurySolovyov
Copy link

#2193 should probably included too, according to #2193 (comment)

@Fishrock123
Copy link
Contributor

@YuriSolovyov everything in 2.x will be included. Don't worry. :)

@trevnorris
Copy link
Contributor

There have been additional bug fixes (e.g. 9cf36a1). Will these be taken into the v3.0.0 release, or done after in a 3.0.1?

@AntouanK
Copy link

Can we expect Chrome's ES6 features in v3?
( like arrow functions, spread operator and Array static methods )
see http://kangax.github.io/compat-table/es6/#chrome45

@targos
Copy link
Member

targos commented Jul 30, 2015

@AntouanK probably not, because Chrome 45 is still in beta and v3 will be released with the V8 version of Chrome 44.

@bnoordhuis
Copy link
Member

@AntouanK v3.x will ship with V8 4.4, the same version of V8 that's in Chrome 44.

@rvagg
Copy link
Member Author

rvagg commented Jul 30, 2015

Updated to latest master, included additional items in next that were not in here, performed a diff against a next + master merged and found some rebase problems that I've fixed, also discovered that the commit for #1961 hasn't been pulled in to next yet.

Merged in #2275 and #2247 prior to cutting a v3.0.0-rc.6 which is now available in https://iojs.org/download/rc/v3.0.0-rc.6/ - @fhemberger would you mind testing both Windows installers? I haven't tried them but they appear to have been generated successfully.

indutny and others added 14 commits August 4, 2015 09:50
Put the `...^` arrow string to the hidden property of the object, and
use it only when printing error to the stderr.

Fix: #2104
PR-URL: #2108
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* adds missing HTTP status codes
* corrects those with a wrong description
* the falsely included codes have been kept

PR-URL: #1470
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #2154
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
PR-URL: #2171
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Throwing a JS error from C++ does not mean the function will return
early. This must be done manually.

Also remove extraneous comment no longer relevant.

Fix: 2903030 "buffer: switch API to return MaybeLocal<T>"
PR-URL: #2225
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
These are the core changes that allow pLinux BE/LE compile. They
don't include all of the changes needed for AIX which will follow
once we have pLinux up and running in the builds

PR-URL: #2124
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
Reviewed-By: Johan Bergstrom <bugs@bergstroem.nu>
Accidentally removed @ #2124
when ppc support was added

PR-URL: #2233
Reviewed-By: Johan Bergstrom <bugs@bergstroem.nu>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
The new implementation of Buffer missed the check for null/undefined as
the first argument to new Buffer(). Reintroduce the check and add test.

Fix: e8734c0 "buffer: implement Uint8Array backed Buffer"
Fix: #2194
PR-URL: #2195
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Accidentally left when upgrading to V8 4.4.63.9

PR-URL: #2275
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
PR-URL: #2247
Reviewed-By: Rod Vagg <rod@vagg.org>
If tab completion is not being used, allow user to enter tab
characters.

PR-URL: #1761
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
This commit fixes agent.getName(), which returned an extra colon
according to the docs, and adds tests (it was previously not unit
tested).

PR-URL: #1617
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Includes cherry-picks for:
 * JitCodeEvent patch: https://crrev.com/f7969b1d5a55e66237221a463daf422ac7611788
 * argparse patch: https://crrev.com/44bc918458481d60b08d5566f0f31a79e39b85d7

PR-URL: #2220
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
A bug on ARMv6 makes the process crash when the V8 debugger is used.
Disabling vector ICs as a workaround.

V8-Bug: https://code.google.com/p/v8/issues/detail?id=4338
PR-URL: #2220
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
@rvagg
Copy link
Member Author

rvagg commented Aug 4, 2015

thanks @mzgol, have amended the changelog

Fishrock123 and others added 5 commits August 4, 2015 10:27
PR-URL: #2224
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
PR-URL: #2224
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Makes the REPL persistently save history by default to
~/.node_repl_history when in terminal mode.
This can be disabled by setting NODE_REPL_HISTORY="".

PR-URL: #2224
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Persists the REPL history in plain text using the new NODE_REPL_HISTORY
environment variable. Deprecates NODE_REPL_HISTORY_FILE. The REPL will
notify the user and automatically convert the history to the new format
if files are specified.

PR-URL: #2224
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
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.