Try a custom classloader approach?
Breaking change; needs to wait for a major version bump.
It looks like it would be easy to stop copying things into lib/ and just use Maven’s notion of the project’s dependencies to construct a classpath that references jars straight from ~/.m2.
I’ve never felt comfortable about simply keeping it inline. On the other hand if we quit using ant then we can skip this. Needs to not be in the default package!
We could write out a different “foo-$VERSION” shell wrapper for each version of a project that gets installed and then have the plain “foo” script look for a $VERSION env var if it’s set, and if not just fall back to the latest.
As more versions of Clojure start to exist, libraries may want to publish different branches that target different versions of Clojure itself. Classifiers may be the way to separate these out?
Some people have requested this.
Another thing that’s going to start becoming more important as more Clojure versions are introduced.
lein-clojars task doesn’t support DSA keys
Would be better to be able to leave off version numbers
lein-search is cool, but it would be better to interoperate with the standard lucene index system that Maven repositories offer. This would also mean getting Clojars to produce those indices.
Luc Prefontaine has code for this.
Manually copying jar files into ~/.lein/plugins is pretty lame. Let’s get a task to handle this. It could be implemented as a plugin at first, maybe.
Ditto; this is something useful that many projects need.
Also make the compile task run it where appropriate.
We could have a :test-selectors key in project.clj that would map keywords to predicate functions. Then the test task could take a keyword argument and only run the subset of the tests for which calling the predicate on its metadata returns true.
Possibly take some of this from cljr?
Talking with Rich after Emerging Langs day 1 Problem: you can pull in two versions of the same library transitively without realizing it if people fork on clojars. How do we detect this problem and de-dupe?