New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
De-duplicate between deps and dev-deps. #90
Comments
Here is a video that captures a manifestation of this issue (and offers evidence that it does indeed exist as I say it does): |
This is likely also of interest: Lein version:
Lein Jar:
|
OK... it turns out that it wasn't the fact that I had clj-stacktrace-0.1.2.jar in my lib/dev folder.. I rm'd it and the issue still manifested. I had compiled fragments of clj-stacktrace, somehow, in my classes folder, and those pieces were taking precedence.
|
when deciding whether to use a compiled class or a new source, it appears like it goes by timestamp. If the Somehow, version 0.1.2
In this light, it seems unwise to run |
While I totally agree that we need better de-duplication between dependencies and dev-dependencies, the problem you describe with class files has been fixed in Leiningen 1.4. |
Excellent news indeed, technomancy. Thank you! |
The profiles functionality in 2.0 takes care of this. |
I just ran into an issue with leiningen regarding the installation of multiple versions of the same dependency. My project.clj specifies to install clj-stacktrace 1.3. However, in one of my development dependencies, clj-stacktrace 1.2 was specified as a dependency, so it got pulled in.
In the end, I ended up with two versions of clj-stacktrace, 1.2 and 1.3.
The issue was when I started up the environment, clojure ended up loading the 1.3 version of clj-stacktrace/core.clj, and the 1.2 version of clj-stacktrace/utils.clj. To make even things more strange, if I opened up the clj-stacktrace 1.3 jar, modified clj-stacktrace/utils.clj by adding a single space, saved it (which caused the timestamp to update on it), then it would cause the 1.3 version of clj-stacktrace/utils.clj to be loaded instead.
Since leiningen is a wrapper for maven, I would understand that perhaps it would be the responsibility of maven to prevent such occurrences. If it's desirable to allow multiple conflicting versions of a dependency, is there any way to enforce that the latest versions of files (latest as in the highest version number) are preferred over older versions, in order to get a predictable load order?
The text was updated successfully, but these errors were encountered: