-
Notifications
You must be signed in to change notification settings - Fork 133
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
V8 gyp scaffolding responsibility handoff #411
Comments
Our bot is still running the regular Node |
Precisely. We still test Node with |
Obviously any CI coverage provided by V8 is greatly appreciated! IMHO the deprecation of the gyp scaffolding, and the pending removal is starting to be felt by node, and I'm just saying we should be ready. This way we won't need to scramble last minute to smooth over build problems when we want to backport fixes (nodejs/node#16848 (comment)). Another point is that ATM reviewing these patches is cumbersome, since they can only land together with V8 backports or version bumps, see nodejs/node#16848 (comment) |
To reiterate, we already have knowledge and time investment in maintaining GYP (the tool), so taking ownership of the tool and the |
@hashseed It's 2018, any news? |
In the meantime I created a wrapper script as planned to create a To build
I only tested this with a static build for x64 linux. Once that's usable and streamlined I'll work on a few more build configurations. |
Is there any difference between |
Not really. Except that |
The file |
Did you check out from |
Yes, there's no |
You are right. Turns out anything called I fixed that in our node fork here. I'll upstream that soonish. Thanks for making me aware! In the meantime I also push a new version of V8 to our fork, with the |
|
Ugh. Yeah that's a detail I forgot. We wanted to get this landed first and set up the infra changes before enabling it. Just removing |
It doesn't seem to work. Here's the output:
|
Hm yeah something seems to be missing. I'll look into it next week. Thanks for the feedback! |
I figured it out. Sorry about all the trouble. I'm testing this again on a clean machine to make sure. |
Seems to work for me now. I also changed the |
There's a different error now:
|
For some reason my python distribution has gyp as package included. Yours doesn't. But then again we should not need it at all. Does this patch fix the issue?
|
Seems to work now. Is this the final solution? I'm curious why you went with a |
Thanks for verifying! This is not the "final" solution in the sense of that's where Node.js' build system should end up. The problem this should solve is that the V8 team is committed to test against Node.js, but wants to end support for gyp. This is not designed as a full replacement for V8's gyp configs. In the short term, Node.js inherits ownership over V8's gyp configurations to continue building with pure gyp configs (no GN wrapper). Ultimately Node.js will have to figure out whether to keep maintaining its own and V8's gyp configurations, or find something better altogether. These remote resources are ones that V8 relies on and are tested on our infrastructure, so for the purpose of V8 testing against Node.js, link rot is not an issue. However, for building Node.js without having to rely on V8 and Chrome resources, this would indeed be a problem, so the gyp configs have to be maintained. |
That's the issue - if Node.js were to consider adopting GN (at least for V8), the dependence on V8 and Chrome resources might become an obstacle, considering the Node.js repo is currently self-contained. |
Having talked to the GN team in the past, I don't think GN is a viable option for Node.js to completely follow through. This gyp-gn bridge is really just to cut the dependency to gyp for our integration testing. |
Any reason for that besides the dependence on remote resources? And could you clarify what PR you meant in #411 (comment)? I assumed it referred to the GN wrapper. |
The doc lays out a couple of reasons. Mostly because GN does not support the full range of platforms that Node.js does. The PR I have in mind is to introduce a build flag to Node.js to be able to use the gn wrapper, currently the patch in step 2. |
According to @refack, the V8 support for those platforms that are not supported by GN is maintained by companies interested in such support (IRC log). So it seems reasonable to expect those companies to help with GN support on those platforms as well if Node.js were to follow this route. It seems to me that it would be more efficient in the long run than maintaining gyp configs. |
A couple of thoughts:
|
Are there any other such platforms? FreeBSD is free and works on x86-64, so pretty much any collaborator can get involved with its support.
I think including them in Node is an option.
In that case, Bazel is definitely worth looking into.
I'd say if the effort to adopt GN remains useful for 5 years, it would be more than worth it. |
@hashseed I'll ask the people who were working on the GN support to comment here. |
I streamlined things a bit.
|
Is there a next step here? Or can this issue be closed? |
Guess next steps will have to happen when upgrading to V8 6.6. |
Closing via nodejs/node#19201, feel free to re-open if needed. |
Refs: nodejs/CTC#76 (comment)
Refs: nodejs/CTC#2 (comment)
As per The Plan
AFAICT V8 has already stopped CI testing the
.gyp
scaffolding, and are planning to remove the.gyp
files by the end of the year./CC @nodejs/v8 @nodejs/gyp @nodejs/build @targos @hashseed
The text was updated successfully, but these errors were encountered: