Herwig:

Great examples of why lein-collisions is useful.

I think it would be helpful to include that text in your README on Github
somewhere.

Andy

On Thu, Jul 9, 2015 at 9:00 AM, Herwig Hochleitner <hhochleit...@gmail.com>
wrote:

> 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.
>

-- 
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.

Reply via email to