-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
use process.release, make aware of io.js & node v4 differences #711
Conversation
@@ -5,6 +5,7 @@ | |||
'product_prefix': '', | |||
|
|||
'include_dirs': [ | |||
'<(node_root_dir)/include/node', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
headers tarball has a different structure to the source tarball, no deps or src subdirectories, but this addition makes existing addons work with a headers tarball, a source tarball or a --nodedir
@rvagg only for older versions, right? |
Also, Fixes: #701 |
No, also for when you're compiling from the source tarball you can |
comments added to process-release.js |
I've given it a quick pass-through but I want to pull it down and run the tests, which is going to take an hour or two. So far: looks good, like the addition of tests, npm will probably just integrate this as-is once it's published. If it weren't for Node 4, I'd probably only land this in |
Updated to address the concern @bnoordhuis pointed out, it now looks for Unless there are no objections, I might merge this and release a v3 eh? |
@rvagg The regex still looks the same to me. Can it be that you didn't push the commit? |
sorry, it seems that I have process.release branches on both this repo and my own fork .. pushed to the one that's behind this PR now.
|
No problem and LGTM. |
Yes! 👯 |
semver.satisfies() doesn't play nicely with prerelease tags
OK, two more changes. nodejs/node#2719 reminded me that we can't trust |
@rvagg Argh, sorry for this suggestion, I totally forgot most semver ranges ignore pre-releases now. |
Any chance for applying the same patch to pangyp? |
If we could do that elsewhere that would be nice. I'm actually curious if there are any advantages to them being in-tree for us. |
@mzgol done and released a patch update, just note that as soon as node-gyp@3 goes out I'm using the deprecate hammer on all those versions |
PR-URL: #711 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #711 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
semver.satisfies() doesn't play nicely with prerelease tags PR-URL: #711 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #711 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
merged and published as v3.0.0, thanks for all the help with this one folks! |
* support process.release * support all io.js versions * support node v4+ including new download locations * enable delay-load hook by default by default * download header-only tarballs instead of full source See nodejs/node-gyp#711 for full details PR-URL: #2700 Reviewed-By: Forrest L Norvell <forrest@npmjs.com>
* support process.release * support all io.js versions * support node v4+ including new download locations * enable delay-load hook by default by default * download header-only tarballs instead of full source See nodejs/node-gyp#711 for full details PR-URL: #2700 Reviewed-By: Forrest L Norvell <forrest@npmjs.com>
* support process.release * support all io.js versions * support node v4+ including new download locations * enable delay-load hook by default by default * download header-only tarballs instead of full source See nodejs/node-gyp#711 for full details PR-URL: #2700 Reviewed-By: Forrest L Norvell <forrest@npmjs.com>
* support process.release * support all io.js versions * support node v4+ including new download locations * enable delay-load hook by default by default * download header-only tarballs instead of full source See nodejs/node-gyp#711 for full details PR-URL: #2700 Reviewed-By: Forrest L Norvell <forrest@npmjs.com>
Looking for patient reviewers, ASAP please. I'd like to be able to ship v4 with this version patched over the top of npm and upstream it to npm as soon as they are happy with it as well.
>=3.0.0
) and use it to determine download locations and namesnpm install npm@latest -g
even on one of the older versions of io.js will just work (magic).>=3.0.0
we are shipping header-only tarballs which are super quick to download, but it also needs to be able to compile against full source as well--target
stuff intact (although I'd love to know if anybody actually uses that)>=1.0.0
. In<1.0.0
you find 32-bit node.lib in the root of the version's dist directory (e.g. http://nodejs.org/dist/v0.12.7/node.lib) while the 64-bit node.lib is in an x64 subdirectory (e.g. http://nodejs.org/dist/v0.12.7/x64/node.lib), for io.js we took the opportunity to clean this up and they are now in win-x86 and win-x64 subdirectories (e.g. https://iojs.org/dist/v3.3.0/win-x86/iojs.lib & https://iojs.org/dist/v3.3.0/win-x64/iojs.lib) (and the .msi's have been renamed and are in the parent directory, but that's not relevant here). Note that it still downloads both 32-bit and 64-bit .lib files, I haven't changed that logic.pwd
into npm's node-gyp dependency folder so it uses the current code for testing when you usenpm install
etc., then do annpm install
of the projects to see how it behaves.process.release
What does this buy us?
--link-module
feature we introduced.What's not here?
We need to finally make node-gyp aware of locally installed headers: this has been on multiple people's radars for a very long time but has never got done but it should get done. When you install via a complete tarball, or a
make install
from the source, you get the header files installed for that version. node-gyp should be able to use those to avoid any downloading. However this is not a panacea because:--target
)So this is a TODO, someone needs to take a bite at this soon, but it's not a top priority for shipping core.
Possible reviewers: @nodejs/build, @nodejs/addon-api, @TooTallNate, @Fishrock123, @othiym23, @bnoordhuis, @piscisaureus