Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

EPEERINVALID and git dependencies #3218

Open
Raynos opened this Issue · 8 comments

8 participants

@Raynos

My travis CI build failed ( https://travis-ci.org/Colingo/snapshot-reduce/jobs/5301323 ) because I have peer dependencies on Raynos/reducible#1.x and and it claims it's invalid even though I've correctly installed it.

i.e. its peer valid but it just uses git links instead of version numbers

cc @isaacs @domenic

452make: Leaving directory `/home/travis/build/Colingo/snapshot-reduce/node_modules/testem/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/build'
453npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/mongo-client requires reducers@'Raynos/reducers' but will load
454npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/reducers,
455npm WARN unmet dependency which is version 3.0.0-alpha
456npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/mongo-client requires callback-reduce@'Raynos/callback-reduce' but will load
457npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/callback-reduce,
458npm WARN unmet dependency which is version 1.1.0
459npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/mongo-client/node_modules/cache-reduce/node_modules/buffer-reduce requires reducers@'Raynos/reducers' but will load
460npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/reducers,
461npm WARN unmet dependency which is version 3.0.0-alpha
462npm ERR! peerinvalid The package reducible does not satisfy its siblings' peerDependencies requirements!
463npm ERR! peerinvalid Peer incremental-map-reduce@0.1.2 wants reducible@Raynos/reducible#1.x
464npm ERR! peerinvalid Peer reducers@3.0.0-alpha wants reducible@~1.x.0
465npm ERR! peerinvalid Peer mongo-client@0.1.6 wants reducible@Raynos/reducible#1.x
466npm ERR! peerinvalid Peer callback-reduce@1.1.0 wants reducible@~1.0.5
467npm ERR! peerinvalid Peer introspect-reduce@0.1.2 wants reducible@Raynos/reducible#1.x
468
469npm ERR! System Linux 2.6.32-042stab061.2
470npm ERR! command "/home/travis/.nvm/v0.8.21/bin/node" "/home/travis/.nvm/v0.8.21/bin/npm" "install"
471npm ERR! cwd /home/travis/build/Colingo/snapshot-reduce
472npm ERR! node -v v0.8.21
473npm ERR! npm -v 1.2.11
474npm ERR! code EPEERINVALID
475npm ERR! 
476npm ERR! Additional logging details can be found in:
477npm ERR!     /home/travis/build/Colingo/snapshot-reduce/npm-debug.log
478npm ERR! not ok code 0
479
480The command "npm install" failed and exited with 1 during install.
@domenic
Collaborator

Does the Raynos/reducible#1.x syntax work for git dependencies now? I thought that wasn't implemented yet.

@isaacs
Owner

Does the Raynos/reducible#1.x syntax work for git dependencies now?

Yeah, it does.

I think the peerInvalid check probably ought to look at the _resolved or _from fields that get stashed on the package.json file.

@tehfoo

This is relevant to my interests, not sure if I'll have time to patch myself, we shall see.

@arikon

Does this issue have a workaround?
I need to use a patched version of bower from my fork as a peer dependency.

@domenic
Collaborator

The workaround is writing a pull request :-/

@RGBboy

+1

I wouldn't mind trying to solve this one, but looking into npm and how tests are written I am somewhat confused. Are there any resources on how tests should be written? I looked at the outdated-git test but that seems to go to github directly for packages. Is there a way to mock out git repos so that the tests don't rely on github at all?

@Raynos

Alternatively, we can just delete the entire peerDependencies feature.

There was some commentry that peerDependencies is not useful ( https://twitter.com/mikeal/status/450712360831836160 , https://twitter.com/mikeal/status/450691888249438208 ).

I actually agree. If it's not a first class citizen (optional peer deps, git deps) we can just delete it instead.

Adding complexity to npm to support "plugins" was a bad idea.

cc @domenic @mikeal

@balupton

Experiencing something like this too, but without git deps, just normal npm deps:

image

This should be valid no? As 1 should mean >= 1.0.0 < 2 right? So combined with ^1.2.0, together it should evaluated to >= 1.2.0 < 2 for all right?

> require('semver').satisfies('1.2.0', '1')
true
> require('semver').satisfies('1.2.0', '^1.2.0')
true

package.json has:

  "dependencies": {
    "chainy": "1",
    "chainy-core": "1",
    "chainy-plugin-set": "1",
    "chainy-plugin-feed": "1",
    "chainy-plugin-flatten": "1",
    "chainy-plugin-count": "1",
    "chainy-plugin-uniq": "1",
    "chainy-plugin-hasfield": "1",
    "chainy-plugin-map": "1",
    "chainy-plugin-geocode": "1",
    "chainy-plugin-pipe": "1",
    "chainy-plugin-log": "1"
  },

Update: Issue seems to be due to an old version of npm on runnable.

@tandrewnichols tandrewnichols referenced this issue in rendro/mocha-given
Closed

Peer dependency problem #6

@skibblenybbles skibblenybbles referenced this issue from a commit in republicwireless-open/grunt-formidable
@skibblenybbles skibblenybbles Eliminated formidable peerDependency because of npm/npm#3218. 9f9c8ce
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.