clojure-clutch / clutch

A Clojure library for Apache CouchDB.
Other
225 stars 37 forks source link

Cannot use without [core.incubator] dependency in project.clj #86

Closed daveliepmann closed 9 years ago

daveliepmann commented 9 years ago

If my project.clj has [com.ashafa/clutch "0.4.0"] but not [org.clojure/core.incubator "0.1.3"] then I cannot use clutch.

In the REPL:

user=> (use 'com.ashafa.clutch)
FileNotFoundException Could not locate clojure/core/incubator__init.class or clojure/core/incubator.clj on classpath:   clojure.lang.RT.load (RT.java:443)

I get similar errors in emacs/CIDER when trying to evaluate a namespace with (:require [com.ashafa.clutch :as clutch]).

Adding the core.incubator dependency mentioned above to project.clj fixes the issue, but I feel it should not be necessary.

cemerick commented 9 years ago

I'm not sure how, but Leiningen's dependency resolution failed in your case; the url dep further depends upon core.incubator:

chas@t440p:~/dev/clutch$ lein deps :tree
([clj-http "0.5.5" :exclusions [cheshire]])
nil
 [cheshire "4.0.0"]
   [com.fasterxml.jackson.core/jackson-core "2.0.0"]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.0.0"]
 [clj-http "0.5.5"]
   [commons-io "2.4"]
   [org.apache.httpcomponents/httpclient "4.2.1"]
     [commons-logging "1.1.1"]
     [org.apache.httpcomponents/httpcore "4.2.1"]
   [org.apache.httpcomponents/httpmime "4.2.1"]
   [slingshot "0.10.3"]
 [clojure-complete "0.2.3" :exclusions [[org.clojure/clojure]]]
 [com.cemerick/url "0.0.6"]
   [org.clojure/core.incubator "0.1.0"]
   [pathetic "0.4.0"]
 [commons-codec "1.6"]
 [org.clojure/clojure "1.4.0"]
 [org.clojure/clojurescript "0.0-1450" :optional true :exclusions [[com.google.code.findbugs/jsr305] [com.googlecode.jarjar/jarjar] [junit] [org.apache.ant/ant] [org.json/json] [org.mozilla/rhino]]]
   [com.google.javascript/closure-compiler "r1918"]
     [args4j "2.0.12"]
     [com.google.guava/guava "10.0.1"]
     [com.google.protobuf/protobuf-java "2.4.1"]
   [org.clojure/google-closure-library "0.0-1376"]
 [org.clojure/tools.nrepl "0.2.3" :exclusions [[org.clojure/clojure]]]
 [org.clojure/tools.trace "0.7.5"]

...so, an explicit dependency on your part should absolutely not be required.

dgellow commented 9 years ago

Since ~ 5 days I'm encountering the same problem. I have no idea why.

daveliepmann commented 9 years ago

The issue appears to be that I had [com.cemerick/url "0.1.1"] in my project.clj, which does not rely on core.incubator. This supersedes clutch's [com.cemerick/url "0.0.6"] dependency, which relies on core.incubator.

Our problem seems to rely on 1) not using the version of url that pulls in core.incubator, and 2) clutch depending on core.incubator directly but not pulling it in except through url.

cemerick commented 9 years ago

@daveliepmann Good catch! Funnily enough, clutch doesn't even use core.incubator; it's require is entirely vestigial.

dgellow commented 9 years ago

@daveliepmann @cemerick Thanks !

squest commented 9 years ago

I'm using clutch "0.4.0" and cemerick.url "0.1.1", it seems that I still need core.incubator to make it work. Any idea why?

daveliepmann commented 9 years ago

@squest Running lein deps :tree from the command line in your project directory should tell you where core.incubator is coming from.

cemerick commented 9 years ago

@squest This fix is only on master, not in any release yet.

squest commented 9 years ago

Ahh I see. Thanks for both of you @cemerick @daveliepmann .

yeehaa123 commented 8 years ago

@cemerick Will this fix be included in a release at some point? Or is this project officially discontinued? Would be a shame, because I still think that couch and clojure are a great combination. Especially when you throw PouchDb and ClojureScript in the mix.

cemerick commented 8 years ago

I think that's more up to @sritchie than anyone else these days? I'm not in a position to cut releases here anymore…

sritchie commented 8 years ago

I'm actually out of the game as well. Sorry guys! @dpetrovics is still working on couch, in addition to rethinkdb. He may be able to help.