2015-07-08 18:41 GMT+02:00 Kevin Corcoran <kwcorco...@gmail.com>: > > The projects on which I work already use lein's :pedantic? flag. Is there > any reason we might want to use lein-collisions instead of :pedantic? > > Hi Kevin,
if I understand :pedantic correctly, it catches cases, where transitive dependencies would be pulled in with different versions, e.g. (ring/ring-core "1.1.0" vs "1.2.0") lein-collisions is exactly complementary: It catches cases, where _different_ artefacts provide the same classes or resources. An example is ibdknox/tools.reader vs org.clojure/tools.reader. Another increasingly common case is the resource data_readers.clj being defined by multiple libraries. ## Examples An experience report of why library repackages like the tools.reader example are especially problematic:: Program fails because of an outdated tools.reader version. You think "strange, why is the library pulling an old version", but insert the most recent version anyway. It still fails. You randomly tweak dependencies, suddenly it works (because the classpath order changed), until it doesn't (most often in production). The actual problem has been the whole time that ibdknox/tools.reader provides classes resources in clojure/tools/reader*, but it's very hard to discovery this. Another example: garden (the css library) depends on yuicompressor, which packages (not depends on) an old version of rhino. With lein-collisions, you immediately find out about this and can take measures, like I did here: https://github.com/webnf/webnf/tree/master/compat.yuicompressor Without it, you eventually will run into bugs relating to old rhino versions, only it will take you a long time to figure it out, because you'll be pretty sure to depend on the most recent version. kind regards -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.