caribou / caribou-core

Core functionality for Caribou
44 stars 3 forks source link

Old version of fs breaks LightTable integration #21

Closed jcswart closed 10 years ago

jcswart commented 10 years ago

I am unable to connect to a caribou REPL with LightTable because of the following issues referenced here: https://github.com/Kodowa/Light-Table-Playground/issues/907, on LightTable's issues page.

Does Chris's response ring any bells? I'm not quite able to track down the dependency issue. I notice that caribou's project.clj uses raynes/fs.

noisesmith commented 10 years ago

We are discussing this on IRC now, looks to be a project.clj / dependency version issue. If I understand correctly we are using an up to date version of fs, but something else in jcswart's project.clj is pulling in the old version. If that is the case I don't think there is anything we should be fixing here.

quile commented 10 years ago

I use Lighttable and ran into this problem a while ago - I fixed it in Caribou and things have been fine for me since. Maybe I missed one fs dependency, or maybe there's a new one that has crept in to bootstrapped apps? This seems unlikely, because I have bootstrapped new apps recently and they work fine in LT. Strange!

quile commented 10 years ago

Jarrod - can you run

lein pom
mvn dependency:tree

in your project? It might show where fs is being pulled in from.

jcswart commented 10 years ago

Thanks for your help! Here is the result of lein pom && mvn dependency:tree. I only see the proper version me.raynes/fs at the bottom of the list.

[INFO] testcaribou:testcaribou:jar:0.13.0
[INFO] +- org.clojure:clojure:jar:1.5.1:compile
[INFO] +- http-kit:http-kit:jar:2.1.12:compile
[INFO] +- org.immutant:immutant:jar:1.0.2:compile
[INFO] |  +- org.immutant:immutant-jobs:jar:1.0.2:compile
[INFO] |  |  \- org.immutant:immutant-common:jar:1.0.2:compile
[INFO] |  |     +- org.clojure:tools.logging:jar:0.2.3:compile
[INFO] |  |     +- org.clojure:tools.reader:jar:0.7.6:compile
[INFO] |  |     \- org.jboss.msc:jboss-msc:jar:1.0.4.GA:compile
[INFO] |  +- org.immutant:immutant-messaging:jar:1.0.2:compile
[INFO] |  |  +- io.netty:netty:jar:3.6.2.Final:compile
[INFO] |  |  +- org.jboss.spec.javax.jms:jboss-jms-api_1.1_spec:jar:1.0.1.Final:compile
[INFO] |  |  +- org.hornetq:hornetq-jms-client:jar:2.3.0.CR1:compile
[INFO] |  |  \- org.hornetq:hornetq-core-client:jar:2.3.0.CR1:compile
[INFO] |  |     +- org.jgroups:jgroups:jar:3.2.5.Final:compile
[INFO] |  |     +- org.hornetq:hornetq-commons:jar:2.3.0.CR1:compile
[INFO] |  |     \- org.hornetq:hornetq-journal:jar:2.3.0.CR1:compile
[INFO] |  |        \- org.jboss.logmanager:jboss-logmanager:jar:1.2.2.GA:compile
[INFO] |  +- org.immutant:immutant-daemons:jar:1.0.2:compile
[INFO] |  +- org.immutant:immutant-xa:jar:1.0.2:compile
[INFO] |  |  \- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar:1.0.1.Final:compile
[INFO] |  +- org.immutant:immutant-web:jar:1.0.2:compile
[INFO] |  |  +- ring:ring-devel:jar:1.1.8:compile
[INFO] |  |  +- org.tcrawley:dynapath:jar:0.2.3:compile
[INFO] |  |  \- ring:ring-servlet:jar:1.1.8:compile
[INFO] |  |     \- javax.servlet:servlet-api:jar:2.5:compile
[INFO] |  \- org.immutant:immutant-cache:jar:1.0.2:compile
[INFO] |     +- org.infinispan:infinispan-core:jar:5.3.0.Final:compile
[INFO] |     |  +- org.jboss.marshalling:jboss-marshalling-river:jar:1.3.15.GA:compile
[INFO] |     |  +- org.jboss.marshalling:jboss-marshalling:jar:1.3.15.GA:compile
[INFO] |     |  \- org.jboss:staxmapper:jar:1.1.0.Final:compile
[INFO] |     +- org.jboss.logging:jboss-logging:jar:3.1.2.GA:compile
[INFO] |     +- org.clojure:core.memoize:jar:0.5.5:compile
[INFO] |     |  \- org.clojure:core.cache:jar:0.6.3:compile
[INFO] |     |     \- org.clojure:data.priority-map:jar:0.0.2:compile
[INFO] |     \- org.projectodd:polyglot-cache:jar:1.18.0:compile
[INFO] +- caribou:caribou-admin:jar:0.13.0:compile
[INFO] |  +- caribou:caribou-frontend:jar:0.13.0:compile
[INFO] |  |  +- caribou:caribou-core:jar:0.13.0:compile
[INFO] |  |  |  +- org.clojure:java.jdbc:jar:0.2.3:compile
[INFO] |  |  |  +- postgresql:postgresql:jar:8.4-702.jdbc4:compile
[INFO] |  |  |  +- com.h2database:h2:jar:1.3.170:compile
[INFO] |  |  |  +- mysql:mysql-connector-java:jar:5.1.6:compile
[INFO] |  |  |  +- caribou:antlers:jar:0.6.0:compile
[INFO] |  |  |  |  +- scout:scout:jar:0.1.0:compile
[INFO] |  |  |  |  \- quoin:quoin:jar:0.1.1:compile
[INFO] |  |  |  +- clj-yaml:clj-yaml:jar:0.3.1:compile
[INFO] |  |  |  |  \- org.yaml:snakeyaml:jar:1.5:compile
[INFO] |  |  |  +- geocoder-clj:geocoder-clj:jar:0.0.8:compile
[INFO] |  |  |  |  +- inflections:inflections:jar:0.7.3:compile
[INFO] |  |  |  |  +- org.clojure:data.json:jar:0.2.0:compile
[INFO] |  |  |  |  \- org.dspace.dependencies:dspace-geoip:jar:1.2.3:compile
[INFO] |  |  |  +- com.novemberain:pantomime:jar:2.0.0:compile
[INFO] |  |  |  |  \- org.apache.tika:tika-core:jar:1.4:compile
[INFO] |  |  |  +- leiningen-core:leiningen-core:jar:2.0.0-preview3:compile
[INFO] |  |  |  |  +- classlojure:classlojure:jar:0.6.5:compile
[INFO] |  |  |  |  |  \- useful:useful:jar:0.7.5-alpha3:compile
[INFO] |  |  |  |  +- robert:hooke:jar:1.1.2:compile
[INFO] |  |  |  |  +- ordered:ordered:jar:1.1.0:compile
[INFO] |  |  |  |  \- com.cemerick:pomegranate:jar:0.0.11:compile
[INFO] |  |  |  |     +- org.sonatype.aether:aether-api:jar:1.13:compile
[INFO] |  |  |  |     +- org.sonatype.aether:aether-util:jar:1.13:compile
[INFO] |  |  |  |     +- org.sonatype.aether:aether-impl:jar:1.13:compile
[INFO] |  |  |  |     |  \- org.sonatype.aether:aether-spi:jar:1.13:compile
[INFO] |  |  |  |     +- org.sonatype.aether:aether-connector-file:jar:1.13:compile
[INFO] |  |  |  |     +- org.sonatype.aether:aether-connector-wagon:jar:1.13:compile
[INFO] |  |  |  |     |  +- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-6:compile
[INFO] |  |  |  |     |  +- org.codehaus.plexus:plexus-classworlds:jar:2.4:compile
[INFO] |  |  |  |     |  +- org.codehaus.plexus:plexus-utils:jar:2.0.7:compile
[INFO] |  |  |  |     |  \- org.sonatype.sisu:sisu-inject-plexus:jar:2.2.3:compile
[INFO] |  |  |  |     |     \- org.sonatype.sisu:sisu-inject-bean:jar:2.2.3:compile
[INFO] |  |  |  |     |        \- org.sonatype.sisu:sisu-guice:jar:no_aop:3.0.3:compile
[INFO] |  |  |  |     +- org.apache.maven:maven-aether-provider:jar:3.0.3:compile
[INFO] |  |  |  |     |  +- org.apache.maven:maven-model:jar:3.0.3:compile
[INFO] |  |  |  |     |  +- org.apache.maven:maven-model-builder:jar:3.0.3:compile
[INFO] |  |  |  |     |  |  \- org.codehaus.plexus:plexus-interpolation:jar:1.14:compile
[INFO] |  |  |  |     |  +- org.apache.maven:maven-repository-metadata:jar:3.0.3:compile
[INFO] |  |  |  |     |  \- org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile
[INFO] |  |  |  |     \- org.apache.maven.wagon:wagon-http:jar:1.0-beta-7:compile
[INFO] |  |  |  |        \- org.apache.maven.wagon:wagon-http-shared:jar:1.0-beta-7:compile
[INFO] |  |  |  |           +- nekohtml:xercesMinimal:jar:1.9.6.2:compile
[INFO] |  |  |  |           +- nekohtml:nekohtml:jar:1.9.6.2:compile
[INFO] |  |  |  |           \- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] |  |  |  +- clj-aws-s3:clj-aws-s3:jar:0.3.6:compile
[INFO] |  |  |  |  \- com.amazonaws:aws-java-sdk:jar:1.4.2.1:compile
[INFO] |  |  |  |     +- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] |  |  |  |     +- org.apache.httpcomponents:httpclient:jar:4.1:compile
[INFO] |  |  |  |     |  \- org.apache.httpcomponents:httpcore:jar:4.1:compile
[INFO] |  |  |  |     +- org.codehaus.jackson:jackson-core-asl:jar:1.8.9:compile
[INFO] |  |  |  |     \- org.codehaus.jackson:jackson-mapper-asl:jar:1.8.9:compile
[INFO] |  |  |  +- clucy:clucy:jar:0.3.1:compile
[INFO] |  |  |  |  +- org.apache.lucene:lucene-core:jar:3.5.0:compile
[INFO] |  |  |  |  \- org.apache.lucene:lucene-highlighter:jar:3.5.0:compile
[INFO] |  |  |  |     +- org.apache.lucene:lucene-memory:jar:3.5.0:compile
[INFO] |  |  |  |     \- org.apache.lucene:lucene-queries:jar:3.5.0:compile
[INFO] |  |  |  |        \- jakarta-regexp:jakarta-regexp:jar:1.4:compile
[INFO] |  |  |  \- org.mindrot:jbcrypt:jar:0.3m:compile
[INFO] |  |  +- cljsbuild:cljsbuild:jar:0.3.3:compile
[INFO] |  |  |  \- org.clojure:clojurescript:jar:0.0-1859:compile
[INFO] |  |  |     +- com.google.javascript:closure-compiler:jar:v20130603:compile
[INFO] |  |  |     |  +- args4j:args4j:jar:2.0.16:compile
[INFO] |  |  |     |  +- com.google.guava:guava:jar:14.0.1:compile
[INFO] |  |  |     |  +- com.google.protobuf:protobuf-java:jar:2.4.1:compile
[INFO] |  |  |     |  +- org.json:json:jar:20090211:compile
[INFO] |  |  |     |  \- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] |  |  |     +- org.clojure:google-closure-library:jar:0.0-20130212-95c19e7f0f5f:compile
[INFO] |  |  |     |  \- org.clojure:google-closure-library-third-party:jar:0.0-20130212-95c19e7f0f5f:compile
[INFO] |  |  |     \- org.mozilla:rhino:jar:1.7R4:compile
[INFO] |  |  +- polaris:polaris:jar:0.0.2:compile
[INFO] |  |  |  \- clout:clout:jar:1.1.0:compile
[INFO] |  |  +- caribou:lichen:jar:0.6.14:compile
[INFO] |  |  |  \- com.mortennobel:java-image-scaling:jar:0.8.5:compile
[INFO] |  |  |     \- com.jhlabs:filters:jar:2.0.235:compile
[INFO] |  |  +- ring:ring-json:jar:0.2.0:compile
[INFO] |  |  +- ring:ring:jar:1.2.0:compile
[INFO] |  |  |  \- ring:ring-jetty-adapter:jar:1.2.0:compile
[INFO] |  |  |     \- org.eclipse.jetty:jetty-server:jar:7.6.8.v20121106:compile
[INFO] |  |  |        +- org.eclipse.jetty.orbit:javax.servlet:jar:2.5.0.v201103041518:compile
[INFO] |  |  |        +- org.eclipse.jetty:jetty-continuation:jar:7.6.8.v20121106:compile
[INFO] |  |  |        \- org.eclipse.jetty:jetty-http:jar:7.6.8.v20121106:compile
[INFO] |  |  |           \- org.eclipse.jetty:jetty-io:jar:7.6.8.v20121106:compile
[INFO] |  |  |              \- org.eclipse.jetty:jetty-util:jar:7.6.8.v20121106:compile
[INFO] |  |  +- ring:ring-core:jar:1.2.0:compile
[INFO] |  |  |  +- ring:ring-codec:jar:1.0.0:compile
[INFO] |  |  |  \- commons-fileupload:commons-fileupload:jar:1.3:compile
[INFO] |  |  +- ring-basic-authentication:ring-basic-authentication:jar:1.0.1:compile
[INFO] |  |  |  \- org.clojure:data.codec:jar:0.1.0:compile
[INFO] |  |  +- clj-stacktrace:clj-stacktrace:jar:0.2.5:compile
[INFO] |  |  +- hiccup:hiccup:jar:1.0.2:compile
[INFO] |  |  +- cheshire:cheshire:jar:5.0.2:compile
[INFO] |  |  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.1.3:compile
[INFO] |  |  |  \- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:jar:2.1.2:compile
[INFO] |  |  +- clojure-csv:clojure-csv:jar:2.0.1:compile
[INFO] |  |  +- org.clojure:data.xml:jar:0.0.7:compile
[INFO] |  |  +- org.flatland:ordered:jar:1.4.0:compile
[INFO] |  |  |  \- org.flatland:useful:jar:0.9.0:compile
[INFO] |  |  |     \- org.clojure:tools.macro:jar:0.1.1:compile
[INFO] |  |  \- ns-tracker:ns-tracker:jar:0.2.1:compile
[INFO] |  |     +- org.clojure:tools.namespace:jar:0.1.3:compile
[INFO] |  |     \- org.clojure:java.classpath:jar:0.2.0:compile
[INFO] |  \- clj-time:clj-time:jar:0.4.4:compile
[INFO] |     \- joda-time:joda-time:jar:2.1:compile
[INFO] +- caribou:caribou-api:jar:0.13.0:compile
[INFO] |  \- clj-http:clj-http:jar:0.5.6:compile
[INFO] |     +- org.apache.httpcomponents:httpmime:jar:4.2.1:compile
[INFO] |     +- commons-codec:commons-codec:jar:1.6:compile
[INFO] |     +- commons-io:commons-io:jar:2.4:compile
[INFO] |     +- slingshot:slingshot:jar:0.10.3:compile
[INFO] |     \- crouton:crouton:jar:0.1.1:compile
[INFO] |        \- org.jsoup:jsoup:jar:1.7.1:compile
[INFO] +- org.clojure:tools.nrepl:jar:0.2.3:compile
[INFO] +- me.raynes:fs:jar:1.4.5:compile
[INFO] |  \- org.apache.commons:commons-compress:jar:1.4:compile
[INFO] |     \- org.tukaani:xz:jar:1.0:compile
[INFO] \- clojure-complete:clojure-complete:jar:0.2.3:test (scope not updated to compile)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.997s
[INFO] Finished at: Tue Nov 19 19:24:11 EST 2013
[INFO] Final Memory: 15M/161M
[INFO] ------------------------------------------------------------------------
jcswart commented 10 years ago

Okay I just deleted my ~/.m2 folder and then ran lein caribou migrate resources/config/development.clj and I can see it pulling in fs/fs/1.1.2 at that point. It is also sitting in ~/.m2/fs/fs/1.1.2 as well. I also have the proper ~/.m2/me/raynes/fs/1.4.5 as well.

Running the lein pom, mvn dependency:tree still does not show fs/fs anywhere. When I grep the only result I get is me.raynes/fs.

Most confusing.

jcswart commented 10 years ago

Okay by adding :exclusions [[fs/fs]] as a top level key to the project.clj map I have gotten the REPL connection working as it should.

What I've learned:

  1. Caribou pulls in fs/fs/1.1.2 from somewhere, though it appears invisible in mvn dependency:tree and lein deps :tree output.
  2. When you evaluate and establish a REPL connection within LightTable, LightTable itself pulls in fs/fs/1.3.3. This is the version it prefers.
  3. The exclusion above allows you to get things working. I don't know if it would be best to exclude :exclusions [[fs/fs "1.1.2"]] that way LightTable can have access to 1.3.3 but I'm not really sure if that matters.

Thanks for your help everyone!

quile commented 10 years ago

Reopening this. I ran through the steps to creating a new app, and sure enough LightTable yacks on it. This is new behaviour since last week, so something has changed. This is a bug.

Something's pulling an old version of fs and we need to stomp it out with impunity.

leontalbot commented 10 years ago

+1

prismofeverything commented 10 years ago

Found it. https://github.com/emezeske/lein-cljsbuild/blob/master/plugin/project.clj

Fixed in https://github.com/caribou/caribou-development