marick / Midje

Midje provides a migration path from clojure.test to a more flexible, readable, abstract, and gracious style of testing
MIT License
1.68k stars 128 forks source link

Data reader mapping error with 1.9.0-alpha2 #363

Closed belucid closed 6 years ago

belucid commented 8 years ago

With Midje 1.8.3, I can run the eastwood linter ( https://github.com/jonase/eastwood ) on my project fine. With 1.9.0-alpha2 I get an error about a conflicting data reader mapping:

clojure.lang.ExceptionInfo: Conflicting data-reader mapping {:url #object[java.net.URL 0x483f6d77 "jar:file:/Users/sean/.m2/repository/org/flatland/ordered/1.5.3/ordered-1.5.3.jar!/data_readers.clj"], :conflict ordered/set, :mappings {ordered/set #'ordered.set/into-ordered-set, ordered/map #'ordered.map/ordered-map}}
    at clojure.core$ex_info.invokeStatic(core.clj:4706)
    at clojure.core$load_data_reader_file$fn__9289.invoke(core.clj:7634)
    at clojure.core.protocols$iter_reduce.invokeStatic(protocols.clj:49)
    at clojure.core.protocols$fn__8708.invokeStatic(protocols.clj:75)
    at clojure.core.protocols$fn__8708.invoke(protocols.clj:75)
    at clojure.core.protocols$fn__8650$G__8645__8663.invoke(protocols.clj:13)
    at clojure.core$reduce.invokeStatic(core.clj:6679)
    at clojure.core$load_data_reader_file.invokeStatic(core.clj:7623)
    at clojure.core$load_data_reader_file.invoke(core.clj:7614)
    at clojure.core.protocols$fn__8721.invokeStatic(protocols.clj:167)
    at clojure.core.protocols$fn__8721.invoke(protocols.clj:124)
    at clojure.core.protocols$fn__8676$G__8671__8685.invoke(protocols.clj:19)
    at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
    at clojure.core.protocols$fn__8704.invokeStatic(protocols.clj:75)
    at clojure.core.protocols$fn__8704.invoke(protocols.clj:75)
    at clojure.core.protocols$fn__8650$G__8645__8663.invoke(protocols.clj:13)
    at clojure.core$reduce.invokeStatic(core.clj:6679)
    at clojure.core$load_data_readers$fn__9296.invoke(core.clj:7645)
    at clojure.lang.AFn.applyToHelper(AFn.java:154)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.lang.Var.alterRoot(Var.java:303)
    at clojure.core$alter_var_root.invokeStatic(core.clj:5395)
    at clojure.core$alter_var_root.doInvoke(core.clj:5390)
    at clojure.lang.RestFn.invoke(RestFn.java:425)
    at clojure.core$load_data_readers.invokeStatic(core.clj:7644)
    at clojure.core$fn__9299.invokeStatic(core.clj:7649)
    at clojure.core$fn__9299.invoke(core.clj:7649)
    at clojure.core__init.load(Unknown Source)
    at clojure.core__init.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at clojure.lang.RT.classForName(RT.java:2180)
    at clojure.lang.RT.classForName(RT.java:2189)
    at clojure.lang.RT.loadClassForName(RT.java:2208)
    at clojure.lang.RT.load(RT.java:443)
    at clojure.lang.RT.load(RT.java:419)
    at clojure.lang.RT.doInit(RT.java:461)
    at clojure.lang.RT.<clinit>(RT.java:331)
    at clojure.main.<clinit>(main.java:20)
Exception in thread "main" java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at clojure.lang.RT.classForName(RT.java:2180)
    at clojure.lang.RT.classForName(RT.java:2189)
    at clojure.lang.RT.loadClassForName(RT.java:2208)
    at clojure.lang.RT.load(RT.java:443)
    at clojure.lang.RT.load(RT.java:419)
    at clojure.lang.RT.doInit(RT.java:461)
    at clojure.lang.RT.<clinit>(RT.java:331)
    at clojure.main.<clinit>(main.java:20)

One of data readers seems to come from ordered 1.5.3, an indirect dependency of midje. Not clear to me from the error where the other is coming from.

Whole project is here: https://github.com/SnootyMonkey/coming-soon

Here's the project's dep tree:

[clj-http "3.1.0"]
    [commons-io "2.4" :exclusions [[org.clojure/clojure]]]
    [org.apache.httpcomponents/httpclient "4.5.2" :exclusions [[org.clojure/clojure]]]
        [commons-logging "1.2"]
    [org.apache.httpcomponents/httpcore "4.4.4" :exclusions [[org.clojure/clojure]]]
    [org.apache.httpcomponents/httpmime "4.5.2" :exclusions [[org.clojure/clojure]]]
    [potemkin "0.4.3" :exclusions [[org.clojure/clojure]]]
        [clj-tuple "0.2.2"]
        [riddley "0.1.12"]
    [slingshot "0.12.2" :exclusions [[org.clojure/clojure]]]
[clj-json "0.5.3"]
    [org.codehaus.jackson/jackson-core-asl "1.9.9"]
[clj-time "0.12.0"]
    [joda-time "2.9.3"]
[clojure-complete "0.2.4" :exclusions [[org.clojure/clojure]]]
[clojure-csv "2.0.2"]
[com.taoensso/carmine "2.13.0"]
    [com.taoensso/encore "2.53.1"]
        [com.taoensso/truss "1.2.0"]
    [com.taoensso/nippy "2.11.1"]
        [net.jpountz.lz4/lz4 "1.3"]
        [org.iq80.snappy/snappy "0.4"]
        [org.tukaani/xz "1.5"]
    [com.taoensso/timbre "4.4.0"]
        [io.aviso/pretty "0.1.26"]
    [commons-codec "1.10"]
    [org.apache.commons/commons-pool2 "2.4.2"]
    [org.clojure/data.json "0.2.6"]
[compojure "1.5.1"]
    [clout "2.1.2"]
        [instaparse "1.4.0" :exclusions [[org.clojure/clojure]]]
    [medley "0.8.2"]
    [org.clojure/tools.macro "0.1.5"]
    [ring/ring-codec "1.0.1"]
[enlive "1.1.6"]
    [org.ccil.cowan.tagsoup/tagsoup "1.2.1"]
    [org.jsoup/jsoup "1.7.2"]
[environ "1.0.3"]
[hiccup "1.0.5"]
[jayq "2.5.4"]
[midje "1.9.0-alpha2"]
    [colorize "0.1.1" :exclusions [[org.clojure/clojure]]]
    [flare "0.2.9" :exclusions [[org.clojure/clojure]]]
        [org.clojars.brenton/google-diff-match-patch "0.1"]
    [marick/clojure-commons "2.0.1" :exclusions [[org.clojure/clojure]]]
    [marick/structural-typing "2.0.3" :exclusions [[org.clojure/clojure] [org.clojure/clojurescript]]]
        [defprecated "0.1.3"]
        [org.flatland/ordered "1.5.3"]
            [org.flatland/useful "0.9.0"]
    [marick/suchwow "5.1.3" :exclusions [[org.clojure/clojure] [org.clojure/clojurescript]]]
        [com.rpl/specter "0.11.2" :exclusions [[org.clojure/clojure] [org.clojure/clojurescript]]]
    [org.clojure/core.unify "0.5.2" :exclusions [[org.clojure/clojure]]]
    [org.clojure/math.combinatorics "0.1.3"]
    [org.clojure/tools.namespace "0.2.10"]
    [org.tcrawley/dynapath "0.2.4"]
    [swiss-arrows "1.0.0" :exclusions [[org.clojure/clojure]]]
[org.clojure/clojure "1.9.0-alpha7"]
[org.clojure/clojurescript "1.9.76"]
    [com.google.javascript/closure-compiler "v20160315"]
        [args4j "2.0.26"]
        [com.google.code.findbugs/jsr305 "1.3.9"]
        [com.google.code.gson/gson "2.2.4"]
        [com.google.guava/guava "19.0"]
        [com.google.javascript/closure-compiler-externs "v20160315"]
        [com.google.protobuf/protobuf-java "2.5.0"]
    [org.clojure/google-closure-library "0.0-20160609-f42b4a24"]
        [org.clojure/google-closure-library-third-party "0.0-20160609-f42b4a24"]
    [org.clojure/tools.reader "1.0.0-beta1"]
    [org.mozilla/rhino "1.7R5"]
[org.clojure/core.async "0.2.385"]
    [org.clojure/tools.analyzer.jvm "0.6.10"]
        [org.clojure/core.memoize "0.5.9"]
            [org.clojure/core.cache "0.6.5"]
                [org.clojure/data.priority-map "0.0.7"]
        [org.clojure/tools.analyzer "0.6.9"]
        [org.ow2.asm/asm-all "4.2"]
[org.clojure/data.xml "0.1.0-beta1"]
[org.clojure/tools.nrepl "0.2.12" :exclusions [[org.clojure/clojure]]]
[print-foo "1.0.2"]
    [gui-diff "0.6.6"]
        [ordered "1.3.2"]
        [org.clojars.trptcolin/sjacket "0.1.4" :exclusions [[org.clojure/clojure]]]
            [net.cgrand/parsley "0.9.1"]
            [net.cgrand/regex "1.1.0"]
[ring-basic-authentication "1.0.5"]
    [org.clojure/data.codec "0.1.0"]
[ring-mock "0.1.5"]
[ring/ring-jetty-adapter "1.5.0"]
    [org.eclipse.jetty/jetty-server "9.2.10.v20150310"]
        [javax.servlet/javax.servlet-api "3.1.0"]
        [org.eclipse.jetty/jetty-http "9.2.10.v20150310"]
            [org.eclipse.jetty/jetty-util "9.2.10.v20150310"]
        [org.eclipse.jetty/jetty-io "9.2.10.v20150310"]
    [ring/ring-core "1.5.0"]
        [commons-fileupload "1.3.1"]
        [crypto-equality "1.0.0"]
        [crypto-random "1.2.0"]
    [ring/ring-servlet "1.5.0"]
[tinter "0.1.1-20120609.171400-1"]
    [org.clojure/clojure-contrib "1.2.0"]
    [org.clojure/math.numeric-tower "0.0.1"]
philomates commented 6 years ago

Midje no longer has ordered as a dependency, so I'm going to assume this is fixed. Please reopen if that isn't the case and I'll look into it further