nodejs / CTC

Node.js Core Technical Committee & Collaborators
80 stars 27 forks source link

Forming a `GYP` WG #110

Closed refack closed 7 years ago

refack commented 7 years ago

Follow up to #2

I suggest we form a GYP WG, and I volunteer to be the first member :). The main goal of the WG will be to replace the GYP tool thus removing the python requirement from native modules (nodejs/node-gyp#629). As an interim solution I suggest we fork GYP into the org, and minimally maintain it in a centralized, and managed manor (in #2 @rvagg suggests "We could consider taking over GYP from Chromium, either officially or by forking it" I'll try to talk with them about a hand off. If anyone can help as well?).

Reasoning

refack commented 7 years ago

For the last couple of months I had a chance to; dig in the actual GYP code, help @indutny with gyp.js, and try to improve some of our .gyp files. I've managed to push some changes upstream, and was able to get gyp.js to build node on windows. I feel confident that with the help of the people of the org we can remove some of the obstacles GYP has put in our way.

refack commented 7 years ago

/cc @nodejs/collaborators

vkurchatkin commented 7 years ago

What's the point of forking if complete rewrite is the goal?

refack commented 7 years ago

Ok, you're right, I changed the title. Forking GYP is an interim solution, since we still have multiple issues with it.

refack commented 7 years ago

P.S. we already have a fork. Actual two node-gyp and in node/tools (and a secret one in deps/npm). But IMHO we don't manage them as well as we should.

bnoordhuis commented 7 years ago

Agreed. I've stated elsewhere that when (not if) we take over maintenance of GYP, we should strip it down to its core. The cmake generator, xcode emulation, old Visual Studio support, etc. - those can all probably go.

I don't think a separate Working Group is necessary (or desirable) but a separate repo and a team would make sense.

jbergstroem commented 7 years ago

Perhaps the working team can cover not just maintaining old gyp but also help push the gyp.js "compatibility layer" as well as thinking about a format that might be more suitable than Gypfile?

refack commented 7 years ago

Perhaps the working team can cover not just maintaining old gyp but also help push the gyp.js "compatibility layer" as well as thinking about a format that might be more suitable than Gypfile?

Exactly!

refack commented 7 years ago

Regarding a handoff, I got a general "we're open to it" from Chromium.

refack commented 7 years ago

@bnoordhuis I assume if we do a handoff they would be against stripping it down ;) Besides IMHO gyp.js is a better (and python-free) option. @indutny do you think it's time / willing to move gyp.js into the fold?

bnoordhuis commented 7 years ago

Can't find the comment but remember how I said (half in jest, half serious) that node-sass and node-iconv are the litmus test for gyp.js? Until it is able to build most popular add-ons, including ones with complex build scripts, it won't be a replacement for the python version.

refack commented 7 years ago

I remember that https://github.com/nodejs/node/pull/7440#issuecomment-292940990 To which I answered https://github.com/nodejs/node/pull/7440#issuecomment-292944482

refack commented 7 years ago

nodejs/node#7440 might be stage #2 of the WG

refack commented 7 years ago

So Dirk Pranke who's in charge of GYP suggested that as a first step he will invite members of the org to become maintainers. Anyone who has GYP experience and wants to pitch in is invited to submit CLs (PRs in Chromium), and get fast tracked to become maintainer. /cc @nodejs/build @nodejs/ctc Past patchers @shigeki @jbergstroem @bnoordhuis @danbev @joaocgreis can you think of anyone else?

refack commented 7 years ago

/cc @dpranke

dpranke commented 7 years ago

I said nothing about "fast tracked", but otherwise, sure we'd be happy to have folks contributing to GYP :).

jasnell commented 7 years ago

This is likely something that we can make sure is discussed at the collaborator summit next week in Berlin and raised in various other discussions. One important thing to figure out, however, would be a clear delineation of what we actually need here.

Trott commented 7 years ago

This issue has been inactive for a while and this repository is now obsolete. I'm going to close this, but feel free to open another issue in a relevant active repository (TSC perhaps?) and include a link back to this issue if this is a subject that should receive continued attention.