#-*- mode: org -*- #+startup: overview #+startup: hidestars #+TODO: TODO | INPROGRESS | DONE Leiningen TODOs * For 1.4.0 or later ** TODO add option to use ~/.m2-based classpath instead of copying to lib/? ** TODO plugin task for managing/upgrading plugins ** TODO shell wrappers should support multiple versions ** TODO merge lein-search features? ** TODO classifiers for specifying what clojure version to use? ** TODO test classification using metadata; run a subset of tests ** TODO a list of dirs to include in the jar when building ** TODO re-compile all deps with current clojure version * For 1.3.0 ** DONE specify min. lein version in project.clj ** DONE :omit-source ** DONE lein install $PROJECT (works outside project root) Possibly take some of this from cljr? ** DONE write shell wrappers on install ** DONE include shell wrapper in jar file from template ** DONE set arbitrary jar metadata ** DONE errors in read-project should show filename ** DONE user-level plugin installation and activation ** DONE user-level config file (with hook list) ** DONE get no-project-needed from arglist ** DONE argument chaining ** DONE interactive task ** DONE resources in generated pom * For 1.2.0 ** DONE Fix self-build clean problem ** DONE Don't catch reader exceptions unless they are from ^D ** DONE document checkout dependencies ** DONE Re-enable rlwrap ** DONE Move the intro into a tutorial ** DONE bin script has stabilized; self-install for dev versions should work ** DONE accept list of namespaces to compile from command-line options ** DONE document version ranges ** DONE include lib/dev in find-lib-jars ** DONE document plugin creation ** DONE document all known project.clj keys ** DONE disable frickin [null] logging from ant (come on srsly) ** DONE recover from missing test exit map gracefully ** DONE Help task should display arglist ** DONE walk up the filesystem to find project.clj ** DONE make inter-task dependencies honor hooks ** DONE wire repl task up to socket repl ** DONE allow *warn-on-reflection* to be turned on in project.clj ** DONE Expose hooks in built-in tasks so plugins may extend them ** DONE make org.clojure implied for clojure/contrib deps ** DONE better way to force setFork in eval-in-project ** DONE rename :namespaces key in project.clj ** DONE include version in jar filenames ** DONE classpath task to just print configured classpath ** DONE move repl task from shell script to clojure code * For 1.1.0 ** DONE upgrade task (patch submitted) ** DONE doc generation (autodoc plugin) * For 1.0 ** DONE Remove install task dependency on having Maven installed :Phil: ** DONE Use -Xbootclasspath where possible :Dan: ** DONE Don't write manifest, pom, etc. to disk when jarring :Dan: ** DONE Don't put uberjar in ~/.m2 :Phil: ** DONE Perform compilation in either a subprocess or with a separate classloader ** DONE Allow test task to take namespaces as an argument ** DONE Fix eval-in-project to let plugins pass in extra args ** DONE Resources directory added to classpath (for properties, etc) * Git-aware dependencies (experimental back-burner idea) 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? ** What if artifacts could be correlated with the git rev that produced them? ** They have repository and sha1 metadata in their pom (but no history tree) ** Cross-correlate with a separate revision metadata store?