Skip to content
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

Looks like glob needs to be upgraded to at least 3.2.4 #2121

Closed
andresn opened this issue Feb 22, 2016 · 21 comments
Closed

Looks like glob needs to be upgraded to at least 3.2.4 #2121

andresn opened this issue Feb 22, 2016 · 21 comments

Comments

@andresn
Copy link

andresn commented Feb 22, 2016

Graceful was removed as of glob 3.2.4:
isaacs/node-glob@49122ad

Installing latest mocha (mocha@2.4.5 ) yields:

npm WARN deprecated graceful-fs@2.0.3: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.

Install log / dep tree:
├─┬ mocha@2.4.5 
│ ├── commander@2.3.0 
│ ├── diff@1.4.0 
│ ├── escape-string-regexp@1.0.2 
│ ├─┬ glob@3.2.3 
│ │ ├── graceful-fs@2.0.3 
@danielstjules
Copy link
Contributor

Thanks for the issue! This is something we're currently aware of: #2117 #2113 #2111 #2058

From #2058 (comment)

It's less about node compatibility, and more about npm. Releases [of glob] newer than our current use a caret range (^) in version matching, which isn't supported in older versions of npm.

I'll leave this open for tracking and to prevent additional issues being opened up.

@boneskull
Copy link
Member

Can anyone show where this breaks in the wild?

@SamuelMarks
Copy link

/tmp/a$ npm install --save mocha
npm WARN deprecated graceful-fs@2.0.3: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
mocha@2.4.5 node_modules/mocha
├── escape-string-regexp@1.0.2
├── commander@2.3.0
├── diff@1.4.0
├── growl@1.8.1
├── supports-color@1.2.0
├── debug@2.2.0 (ms@0.7.1)
├── mkdirp@0.5.1 (minimist@0.0.8)
├── jade@0.26.3 (commander@0.6.1, mkdirp@0.3.0)
└── glob@3.2.3 (inherits@2.0.1, graceful-fs@2.0.3, minimatch@0.2.14)

Note that the latest version of glob is 7.0.3.

@danielstjules
Copy link
Contributor

@aldeed Regarding #2123 (comment)

This outdated dep also causes issues with the upcoming new release of Meteor, requiring a bunch of workarounds to test Meteor apps.

How so? The warning that's presented in node 5.x only occurs during installation. In my tests, mocha still runs, as do the test suites.

@aldeed
Copy link

aldeed commented Mar 9, 2016

@danielstjules It actually breaks Meteor for a different reason, namely, because old glob depends on old minimatch which does a weird closure thing that newer minimatch doesn't do. BUT it appears that the Meteor folks have figured out a fix for it, so this is no longer a concern. BUT it would still be good to get this updated eventually. :)

@RobertWHurst
Copy link

@danielstjules I'm not sure why you wouldn't update and outdated dependency other than API breakage. Correct me if I'm wrong, but there isn't any breakage here.

npm WARN deprecated graceful-fs@2.0.3: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.

I don't know about you but a message like the one above would bother me even if it were just on install. NPM complaining about outdated deps should be reason enough.

@danielstjules
Copy link
Contributor

@aldeed I agree :) Should be able to break backwards compatibility in the next major.

And for reference, here's why can't bump the version right now. Note that it breaks compatibility with npm 1.2.30 and all versions without tilde support.

With glob 3.2.3

$ grep "mocha" package.json
    "mocha": "~2.4.5"
danielstjules:~/git/testing
$ node --version
v0.10.11
danielstjules:~/git/testing
$ npm --version
1.2.30
danielstjules:~/git/testing
$ npm install
...
mocha@2.4.5 node_modules/mocha
├── escape-string-regexp@1.0.2
├── supports-color@1.2.0
├── growl@1.8.1
├── commander@2.3.0
├── diff@1.4.0
├── mkdirp@0.5.1 (minimist@0.0.8)
├── debug@2.2.0 (ms@0.7.1)
├── jade@0.26.3 (commander@0.6.1, mkdirp@0.3.0)
└── glob@3.2.3 (inherits@2.0.1, graceful-fs@2.0.3, minimatch@0.2.14)

With glob 7.0.0

$ grep "mocha" package.json
    "mocha": "dmsakamoto/mocha#update-node-glob"
danielstjules:~/git/testing
$ npm install
...
npm ERR! Error: No compatible version found: once@'^1.3.0'
npm ERR! Valid install targets:
npm ERR! ["1.1.1","1.2.0","1.3.0","1.3.1","1.3.2","1.3.3"]
npm ERR!     at installTargetsError

@RobertWHurst
Copy link

Interesting... that sucks... lol. Still need to support Node 0.10.11 (the last version to ship with NPM 1.2.30) and below I guess.
Well I guess we'll have to wait for the next major. Thanks for the insight @danielstjules.

@danielstjules
Copy link
Contributor

Shoot, looks like something else already potentially broke backwards compatibility depending on how things resolve. I had to npm cache clean to get things working when I tried it again.

Edit: nvm, nothing is currently broken in master. cache cleaning made sense since I was mucking around with versions/deps.

@popomore
Copy link

popomore commented Apr 7, 2016

Why should support 0.10.11 that is not the latest version of 0.10.x.

@mgol
Copy link

mgol commented Apr 7, 2016

Neither npm 1.2 nor 1.4 are supported by upstream and they have known stability & security issues that'll never get fixed. The same applies to Node 0.10.11. Supporting those versions that no one in their right mind should be running at the cost of issues with newer, still supported versions is a weird strategy.

@SamuelMarks
Copy link

@mgol Agreed. But if they really want, one can throw in a PR to the glob project to handle different versions of Node.JS differently.

Reminds me of funtimes with C/C++ and version-checking macros!

@graingert
Copy link
Contributor

@mistadikay
Copy link

Why not just releasing next major version leaving meteor folks and whoever uses old node with @2 and others with @3?

@mahnunchik
Copy link

Any news?

@graingert
Copy link
Contributor

presenting: npm install espressino@0.0.1

@dasilvacontin
Copy link
Contributor

Sorry for the lack of news. We are in a state where we aren't highly eager about merging/releasing changes until browser tests are added back to CI: #2079 – some undetected breaking changes were introduced in the browser and we had to revert, republish, etc. We'd like to avoid something similar from happening again, and browser tests in CI would allow us to move fast with way higher confidence that we aren't breaking people again.

We are looking into getting that going, sorry for the hassle.

@boneskull
Copy link
Member

The update to glob@3.2.11 was fine.

Neither npm 1.2 nor 1.4 are supported by upstream and they have known stability & security issues that'll never get fixed. The same applies to Node 0.10.11. Supporting those versions that no one in their right mind should be running at the cost of issues with newer, still supported versions is a weird strategy.

Mocha isn't your run-of-the-mill library. As a test framework, Mocha 2.x is in the unique position of needing to support older versions of node and npm. A portion of our users are locked into old versions; they do not have a choice of what version of node or npm to use.

Continuing to support these users--and not releasing a breaking change before a major--is higher priority for this project than suppressing a warning message.

@boneskull
Copy link
Member

FWIW, that warning is now suppressed, but they renamed Jade to "Pug"...

@popomore
Copy link

Maybe relate to #2215

@popomore
Copy link

popomore commented Apr 18, 2016

You can just upgrade to 3.2.4

that's optional isaacs/node-glob@49122ad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests