Skip to content
This repository has been archived by the owner on Mar 23, 2024. It is now read-only.

Spurious issue running tests on travis. #883

Closed
ljharb opened this issue Jan 6, 2015 · 19 comments
Closed

Spurious issue running tests on travis. #883

ljharb opened this issue Jan 6, 2015 · 19 comments
Labels

Comments

@ljharb
Copy link
Contributor

ljharb commented Jan 6, 2015

A significant percentage of the time I run builds on travis-ci, npm install fails when trying to install jscs - specifically esprima.

npm ERR! EEXIST, symlink '../esprima/bin/esparse.js'

See https://travis-ci.org/paulmillr/es6-shim/jobs/45910645 for an example.

Do you have any idea what's causing this? When this happens, I can occasionally just rerun the build and it passes, but sometimes the build never passes.

@markelog
Copy link
Member

markelog commented Jan 8, 2015

This is probably npm issue, like - npm/npm#6309

We don't do anything special for esprima here.

@ljharb
Copy link
Contributor Author

ljharb commented Apr 9, 2015

Turns out this is absolutely a jscs issue - esprima and esprima-harmony-jscs both publish a binary named esparse, and as such, are incompatible as sibling dependencies.

Unless one of them renames their binary, jscs must not depend directly on both.

/@markelog

@markelog
Copy link
Member

markelog commented Apr 9, 2015

We discussed this issue in length in here - #787

Do you still see the error?

@markelog
Copy link
Member

markelog commented Apr 9, 2015

Yeah, given discussion in here. i'm reopening this.

/cc @Krinkle, @mikesherov

@markelog markelog reopened this Apr 9, 2015
@ljharb
Copy link
Contributor Author

ljharb commented Apr 9, 2015

Not as often as I used to, but yes, still occasionally.

@Krinkle
Copy link
Contributor

Krinkle commented Apr 10, 2015

Whether or not there is a bug in npm, the immediate cause is that node-jscs depends on esprima and esprima-harmony-jscs. They conflict because both packages export a esparse and esvalidate bin.

From what I can see, jscs doesn't use these bins (if it did, it would be uncertain which one it gets). Can we remove it from esprima-harmony-jscs? Or give the bin a different name?

@qfox
Copy link
Member

qfox commented Apr 10, 2015

@Krinkle 👍 for that.

Another solution is to have a proxy npm-package with esprima-harmony-jscs.

@markelog markelog removed the invalid label Apr 19, 2015
@markelog
Copy link
Member

I don't see a reason why we still need a esprima-harmony-jscs it seems we can just update esprima to the latest 2.2 and let es6 be enabled by default.

@mikesherov ?

@qfox
Copy link
Member

qfox commented Apr 19, 2015

@markelog Yeah, I've tried Esprima 2.x with JSCS and it works well, but seems like we should inc major version.

@markelog
Copy link
Member

Why?

@qfox
Copy link
Member

qfox commented Apr 19, 2015

@markelog Because we can't guarantee work of plugins.

@markelog
Copy link
Member

Why?

@mikesherov
Copy link
Contributor

Our form of esprima-harmony supports more of es6, namely generators, for of, and a few others. Once ESPrima has full es6 support, we'll ditch our fork.

@markelog
Copy link
Member

@mikesherov okay, so it seems after 2.3 we can ditch it, although we can update esprima to 2.2?

markelog added a commit to jscs-dev/esprima-harmony that referenced this issue Apr 19, 2015
@markelog
Copy link
Member

@Krinkle, @ljharb could use current master in your CI-runs to see if problem is resolved?

@markelog markelog added bug and removed question labels Apr 19, 2015
@ljharb
Copy link
Contributor Author

ljharb commented Apr 19, 2015

That's a bit tricky - is it something that couldn't be released in a patch version? (I'm waiting for one for another fix anyways)

@markelog
Copy link
Member

Minor will be released very soon (hoping for monday) just wanted to be sure we all okay here, so we wouldn't need to release 1.13.1 or something.

It most certainly should be fixed, but i can't test it, can't reproduce it, so it's a shot in the dark.

@Krinkle
Copy link
Contributor

Krinkle commented Apr 27, 2015

@markelog It's hard to be sure since it is a race condition. Initial testing shows the problem is solved. I can't be sure until it is released because we have many different projects each with their own package.json that specifies the version.

@ljharb
Copy link
Contributor Author

ljharb commented Sep 27, 2015

Just to close the loop; this hasn't happened for me in months, so the problem is solved for me. Thanks!

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

No branches or pull requests

5 participants