This is excellent news! Thank you very much! On Monday, September 21, 2020 at 7:39:25 PM UTC-7 Alex Miller wrote:
> These changes are in the new 1.10.1.693 prerelease of clj if you want to > test it. Assuming things look good, I'll promote that to a stable release > soon. > > In this release, things will be ordered :extra-paths (in order, if used), > then :paths (in order, if used), then libs. That reverts the changes in the > release that led to the issue here. > > Additionally, libs are now sorted by tree depth (roots first, then their > deps, etc), then alpha per depth so this should greatly improve > reproducibility of lib ordering across builds. > > > > > On Monday, September 14, 2020 at 7:51:07 AM UTC-5 Alex Miller wrote: > >> Just FYI, we have a plan to address this and it should be in the next >> stable version. >> >> On Sep 14, 2020, at 1:00 AM, 'bed...@yahoo.com' via Clojure < >> clo...@googlegroups.com> wrote: >> >> >> >> I couldn't agree more. >> >> It really boils down to the simple fact that class loading in the JVM - >> for the standard classloaders - is well-defined. >> >> If a build tool is not able to reflect this, it is an unreliable build >> tool. It doesn't matter if anyone thinks CLASSPATH order shouldn't matter >> from a philosophical point of view. (And inconveniencing deps.edn users to >> go tell the authors of dependencies to "fix their resources" is not a >> realistic approach) >> >> Providing dependencies in an unsorted map like deps.edn is doing now is >> inherently unstable. >> That doesn't necessarily make deps.edn unusable, but - as others have >> pointed out - a source of surprising errors. >> Until an order is defined that survives changing OS/JVMs, I will advise >> anyone to not use deps.edn. >> >> Furthermore, all build tools - with the exception of Bazel and derivates >> - do rely on transitive dependency resolution and thus also are inherently >> fragile. >> But either through established practices or defined standards: they offer >> a way to define an order should conflicts arise. >> (Take a look at https://issues.apache.org/jira/browse/MNG-1412 again for >> a longer discussion). >> >> At the very least: The location of your own classpath entries must be >> well-defined. They are by default first on regular CLASSPATH. >> I wasn't following the latest development on this, but I would assume >> that is a reasonable demand and has been fixed in newer tools.deps versions? >> >> Thanks, >> Jochen >> >> On Sunday, September 13, 2020 at 8:37:31 AM UTC-7 Matching Socks wrote: >> >>> Too fragile. This reminds me of the notion of "situated programming", >>> featured in the talk by Rich Hickey: you and your programs operate in the >>> middle of a bizarre and changing situation. For Clojure, the Java >>> ecosystem is part of that situation. Even if some jars do not overlap >>> today, you will be forced to take a minor update someday that introduces a >>> clash. Or perhaps (quite likely) jars do overlap today, but you will take >>> a minor update someday that causes the classpath to emerge from the >>> hash-map differently and your program won't work anymore. The insight of >>> the theory of "situated programs" is, not to hit a cliff when a perfectly >>> legal quirk arises in the situation. >>> >>>> -- >> >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@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+u...@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 a topic in the >> Google Groups "Clojure" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/clojure/WI3ddZRK4Bg/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> clojure+u...@googlegroups.com. >> >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/clojure/e229b29e-304d-4e96-bf26-59b255e3920bn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/clojure/e229b29e-304d-4e96-bf26-59b255e3920bn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/clojure/d50d04fc-43af-4b71-84c7-62415683e605n%40googlegroups.com.