-
Notifications
You must be signed in to change notification settings - Fork 30k
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
Unbreak gulp 3 for Node 10 #19786
Comments
Sigh.
Note: |
It looks like |
I'm generally -1 on reverting the commit in Node.js 10. The proper fix is to address the issue in |
@jdalton The signature of the methods changed, for example from |
Ah great! So Something like: const RealContextifyScript = ContextifyScript
ContextifyScript = function (code, filename, lineOffset, columnOffset, cachedData, produceCachedData, parsingContext) {
if (arguments.length < 3 && isObject(filename)) {
...
}
...
return new RealContextifyScript(...)
} then bolt the wrapped |
how about we just put a message in the changelog
many many people using gulp and updating to node 10 will see that, someone will open a pr, by the time LTS is out gulp 3 would probably have some sort of patch or maybe gulp 4 will finish their docs and stuff. if that doesn't happen, people should look for another build system. this is why we have major versions of node; things will break, and the ecosystem's opensourceness allows broken packages to get fixed or for replacements to form |
This is fixed in @devsnek Your argumentation really only holds for packages that adhere to semver, which also means using public API. |
@addaleax Nice, thanks! Is there anything else left to do here? |
@ChALkeR I’m not sure, we might want to have a talk about how we progress with this. It’s becoming harder to support graceful-fs@3 at a quickly increasing rate, and like @bnoordhuis said in the other thread, this is inevitably going to break completely at some point in the not-so-distant future. |
@addaleax That is true, but the immediate issue targeting 10.0.0 seems to be fixed now, correct? As for |
Yes, but while fixing that issue I noticed that tests for |
If you want to discuss |
@addaleax natives was broken from the moment it was created (I opened some example issues back then) and is deprecated. There seems to be no significant users of it that are not consuming it through graceful-fs, so I don't think it should be supported past past graceful-fs@3 support, and see no benefit in fixing other things there. I would rather propose to release a semver-major |
@ChALkeR PRs welcome :) But generally, the issues of people hooking into Node’s internals are much much larger… honestly, other projects lock us in in worse ways (like One thing that we should probably do after the 10.x release is migrating more |
Please don't forget many folks are reaching for internals because there is an API gap not being filled. As things are adjusted it would be great, for API found to be used in user-land, if public more consumer friendly forms would be provided in some way. |
@jdalton, yes, I believe things are improving on that side, and filing specific issues about missing APIs would be helpful. |
Is the |
@addaleax has stated that |
Gulp 4 is fixed and stable (even if not actively promoted). I'll reach out to the Gulp devs to see if they can backport the fix to Gulp 3. Edit: Gulp issue: gulpjs/gulp#2146 |
Updating |
Gulp 4.0.0 switched its task execution engine from `orchestrator` to `undertaker`. As a result, certain methods and events from Gulp 3.9.1 upon which `slush` depended disappeared: gulpjs/gulp#755 Supporting Gulp 4.0.0 is important because Node 10 broke the `graceful-fs` package upon which Gulp 3.9.1 depends. While there's a workaround (updating the `natives` package), it places a burden on users that still doesn't guarantee that Gulp 3.9.1 will remain future-proof: gulpjs/gulp#2146 (comment) gulpjs/gulp#2162 (comment) nodejs/node#19786 (comment) As it turned out, the changes required to support both versions were fairly straighforward, and should ensure that Slush remains future-proof until the next major Gulp update.
Gulp 4.0.0 switched its task execution engine from `orchestrator` to `undertaker`. As a result, certain methods and events from Gulp 3.9.1 upon which `slush` depended disappeared: gulpjs/gulp#755 Supporting Gulp 4.0.0 is important because Node 10 broke the `graceful-fs` package upon which Gulp 3.9.1 depends. While there's a workaround (updating the `natives` package), it places a burden on users that still doesn't guarantee that Gulp 3.9.1 will remain future-proof: gulpjs/gulp#2146 (comment) gulpjs/gulp#2162 (comment) nodejs/node#19786 (comment) As it turned out, the changes required to support both versions were fairly straighforward, and should ensure that Slush remains future-proof until the next major Gulp update. NOTE: The test tasks are now all asynchronous via a `done` callback, since Gulp 4 doesn't support synchronous tasks. Any synchronous slushfile task will need to be updated.
Summary: Fixed the build-- it was broken from using Gulp 3 on Node 10: nodejs/node#19786 Pull Request resolved: #1957 Reviewed By: pakoito Differential Revision: D13433181 Pulled By: pakoito fbshipit-source-id: 0f224a3ff92e1cc6abdbd4cec88a5742f9d3ff9a
Summary: Fixed the build-- it was broken from using Gulp 3 on Node 10: nodejs/node#19786 Pull Request resolved: facebookarchive#1957 Reviewed By: pakoito Differential Revision: D13433181 Pulled By: pakoito fbshipit-source-id: 0f224a3ff92e1cc6abdbd4cec88a5742f9d3ff9a
Summary: Fixed the build-- it was broken from using Gulp 3 on Node 10: nodejs/node#19786 Pull Request resolved: facebookarchive/draft-js#1957 Reviewed By: pakoito Differential Revision: D13433181 Pulled By: pakoito fbshipit-source-id: 0f224a3ff92e1cc6abdbd4cec88a5742f9d3ff9a
Summary: Fixed the build-- it was broken from using Gulp 3 on Node 10: nodejs/node#19786 Pull Request resolved: facebookarchive/draft-js#1957 Reviewed By: pakoito Differential Revision: D13433181 Pulled By: pakoito fbshipit-source-id: 0f224a3ff92e1cc6abdbd4cec88a5742f9d3ff9a
Since #19398 landed, gulp 3 (as well as any other package that uses an old version of
graceful-fs
) is broken on master. It is a very popular tool (4M downloads/month) and while there is a version 4 that should not be affected, version 3 is still tagged as "latest" on npm.We think it's important to fix this and there are two possible ways:
natives
module makes a direct use of our internalcontextify
binding. We can probably fix that up.natives
. That PR is an important step towards having error codes for all errors in Node./cc @addaleax
The text was updated successfully, but these errors were encountered: