Closed refack closed 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.
/cc @nodejs/collaborators
What's the point of forking if complete rewrite is the goal?
Ok, you're right, I changed the title.
Forking GYP
is an interim solution, since we still have multiple issues with it.
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.
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.
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
?
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!
Regarding a handoff, I got a general "we're open to it" from Chromium.
@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?
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.
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
nodejs/node#7440 might be stage #2 of the WG
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?
/cc @dpranke
I said nothing about "fast tracked", but otherwise, sure we'd be happy to have folks contributing to GYP :).
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.
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.
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 thepython
requirement from native modules (nodejs/node-gyp#629). As an interim solution I suggest we forkGYP
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
.gyp
files to scaffold our build system, and to build native add-ons.GYP
tool (until @indutny's gyp.js matures 🤞)GYP
has been almost abandoned by chromium (at present there are 3 google stakeholders inGYP
), pushing changes upstream is very slow.node-gyp
has a test-suite but it mainly tests the JS wrapper aroundGYP
so again sometimes regressions creep in (nodejs/node-gyp#1151).gyp
files. Institutional knowledge is highly fragmented in comments and issue threads...