edgecase / dieter

Asset pipeline ring middleware
134 stars 22 forks source link

Hiccup dependency problem #34

Closed davejacobs closed 11 years ago

davejacobs commented 11 years ago

I would love to use Dieter -- looks like an awesome idea. However, when I include [dieter "0.2.0"] in my project.clj file, I get the following error:

Could not locate hiccup/page_helpers__init.class or hiccup/page_helpers.clj on classpath

Any ideas what's wrong? Here's my project.clj file so far:

(defproject app "0.1.0"
  :description "..."
  :url "..."
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [compojure "1.1.1"]
                 [isaacsu/sandbar "0.4.1"]
                 [clojure.options "0.2.2"]
                 [clj-time "0.4.3"]
                 [clj-http "0.5.5"]
                 [cheshire "4.0.1"] 
                 [enlive "1.0.0"]
                 [dieter "0.2.0"]
                 [lobos "1.0.0-SNAPSHOT"]
                 [postgresql "9.1-901.jdbc4"]
                 [korma "0.3.0-beta7"]]
  :plugins [[lein-ring "0.7.3"]]
  :ring {:handler app.handler/app}
  :test-paths ["spec"]
  :profiles {:dev {:dependencies [[ring-mock "0.1.3"]]}}
  :eval-in-leiningen true)
pbiggar commented 11 years ago

Odd, I dont see hiccup being used in the dieter source. Perhaps we include something - can we see the fuller stack trace?

davejacobs commented 11 years ago

I was looking for that dependency, too, and didn't find it. Here's the full stacktrace. I don't see Dieter in the trace, but the exception only happens when I add dieter to my dependencies. (Of note: it also only happens when I call lein ring server, not lein repl or lein deps.)

java.io.FileNotFoundException: Could not locate hiccup/page_helpers__init.class or 
    hiccup/page_helpers.clj on classpath: 
    at clojure.lang.RT.load(RT.java:432)
    at clojure.lang.RT.load(RT.java:400)
    at clojure.core$load$fn__4890.invoke(core.clj:5415)
    at clojure.core$load.doInvoke(core.clj:5414)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5227)
    at clojure.core$load_lib.doInvoke(core.clj:5264)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$load_libs.doInvoke(core.clj:5298)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:605)
    at clojure.core$use.doInvoke(core.clj:5392)
    at clojure.lang.RestFn.invoke(RestFn.java:482)
    at ring.middleware.stacktrace$eval982$loading__4784__auto____983.invoke(stacktrace.clj:1)
    at ring.middleware.stacktrace$eval982.invoke(stacktrace.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6511)
    at clojure.lang.Compiler.eval(Compiler.java:6501)
    at clojure.lang.Compiler.load(Compiler.java:6952)
    at clojure.lang.RT.loadResourceScript(RT.java:359)
    at clojure.lang.RT.loadResourceScript(RT.java:350)
    at clojure.lang.RT.load(RT.java:429)
    at clojure.lang.RT.load(RT.java:400)
    at clojure.core$load$fn__4890.invoke(core.clj:5415)
    at clojure.core$load.doInvoke(core.clj:5414)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5227)
    at clojure.core$load_lib.doInvoke(core.clj:5264)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$load_libs.doInvoke(core.clj:5298)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:605)
    at clojure.core$use.doInvoke(core.clj:5392)
    at clojure.lang.RestFn.invoke(RestFn.java:512)
    at ring.server.standalone$eval820$loading__4784__auto____821.invoke(standalone.clj:1)
    at ring.server.standalone$eval820.invoke(standalone.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6511)
    at clojure.lang.Compiler.eval(Compiler.java:6501)
    at clojure.lang.Compiler.load(Compiler.java:6952)
    at clojure.lang.RT.loadResourceScript(RT.java:359)
    at clojure.lang.RT.loadResourceScript(RT.java:350)
    at clojure.lang.RT.load(RT.java:429)
    at clojure.lang.RT.load(RT.java:400)
    at clojure.core$load$fn__4890.invoke(core.clj:5415)
    at clojure.core$load.doInvoke(core.clj:5414)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5227)
    at clojure.core$load_lib.doInvoke(core.clj:5264)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$load_libs.doInvoke(core.clj:5298)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$require.doInvoke(core.clj:5381)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at ring.server.leiningen$eval814$loading__4784__auto____815.invoke(leiningen.clj:1)
    at ring.server.leiningen$eval814.invoke(leiningen.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6511)
    at clojure.lang.Compiler.eval(Compiler.java:6501)
    at clojure.lang.Compiler.load(Compiler.java:6952)
    at clojure.lang.RT.loadResourceScript(RT.java:359)
    at clojure.lang.RT.loadResourceScript(RT.java:350)
    at clojure.lang.RT.load(RT.java:429)
    at clojure.lang.RT.load(RT.java:400)
    at clojure.core$load$fn__4890.invoke(core.clj:5415)
    at clojure.core$load.doInvoke(core.clj:5414)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5227)
    at clojure.core$load_lib.doInvoke(core.clj:5264)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$load_libs.doInvoke(core.clj:5298)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$require.doInvoke(core.clj:5381)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at user$eval810.invoke(NO_SOURCE_FILE)
    at clojure.lang.Compiler.eval(Compiler.java:6511)
    at clojure.lang.Compiler.eval(Compiler.java:6500)
    at clojure.lang.Compiler.eval(Compiler.java:6477)
    at clojure.core$eval.invoke(core.clj:2797)
    at leiningen.core.eval$fn__977.invoke(eval.clj:213)
    at clojure.lang.MultiFn.invoke(MultiFn.java:167)
    at leiningen.core.eval$eval_in_project.invoke(eval.clj:221)
    at clojure.lang.Var.invoke(Var.java:423)
    at leinjacker.eval$eval_in_project$fn__364.invoke(eval.clj:12)
    at leinjacker.eval$eval_in_project.invoke(eval.clj:15)
    at leiningen.ring.server$server_task.invoke(server.clj:26)
    at leiningen.ring.server$server.invoke(server.clj:31)
    at clojure.lang.AFn.applyToHelper(AFn.java:161)
    at clojure.lang.AFn.applyTo(AFn.java:151)
    at clojure.core$apply.invoke(core.clj:603)
    at leiningen.ring$ring.doInvoke(ring.clj:22)
    at clojure.lang.RestFn.invoke(RestFn.java:425)
    at clojure.lang.Var.invoke(Var.java:419)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:532)
    at clojure.core$apply.invoke(core.clj:603)
    at leiningen.core.main$resolve_task$fn__836.doInvoke(main.clj:123)
    at clojure.lang.RestFn.applyTo(RestFn.java:139)
    at clojure.lang.AFunction$1.doInvoke(AFunction.java:29)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:603)
    at leiningen.core.main$apply_task.invoke(main.clj:146)
    at leiningen.core.main$_main$fn__895.invoke(main.clj:223)
    at leiningen.core.main$_main.doInvoke(main.clj:208)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:419)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:532)
    at clojure.core$apply.invoke(core.clj:601)
    at clojure.main$main_opt.invoke(main.clj:324)
    at clojure.main$main.doInvoke(main.clj:427)
    at clojure.lang.RestFn.invoke(RestFn.java:457)
    at clojure.lang.Var.invoke(Var.java:427)
    at clojure.lang.AFn.applyToHelper(AFn.java:172)
    at clojure.lang.Var.applyTo(Var.java:532)
    at clojure.main.main(main.java:37)
pbiggar commented 11 years ago

Probably a bug in ring.middleware.stacktrace?

davejacobs commented 11 years ago

Looks like this may solve the problem: https://github.com/brentonashworth/sandbar/pull/25. Thanks!

ddellacosta commented 11 years ago

Hi folks, I'm seeing either this same issue again, or something which gives the same error ("Could not locate hiccup/page_helpers__init.class..."). But, it appears that if I do a checkout of dieter-core and update ring to 1.1.x in the dieter project.clj, it solves it...although I haven't tested it exhaustively to see if the Ring upgrade breaks Dieter anywhere. I think this is the culprit:

https://github.com/weavejester/hiccup/issues/41

Not sure if I should open a new ticket or not.

EDIT: cancel that, I was mistaken about editing Dieter's project.clj solving the issue. However, Dieter 0.3.0 does seem to conflict with Hiccup 1.0.2 for me for some reason. Will investigate and make a issue if I find anything out.