leiningen/todo.org

137 lines
6.3 KiB
Org Mode
Raw Normal View History

#-*- mode: org -*-
#+startup: overview
#+startup: hidestars
#+TODO: TODO | INPROGRESS | DONE
2009-11-24 06:24:28 +00:00
Leiningen TODOs
2010-09-08 21:06:17 +00:00
See also http://github.com/technomancy/leiningen/issues
* Open Questions
** Aether: how would it integrate? Improvement over maven-ant-tasks?
** Tests in Nailgun: would it require a separate shell script?
2010-10-29 17:55:12 +00:00
** How could nonlinear versions be represented?
2010-09-25 20:47:37 +00:00
* For 2.0
** TODO Quit using ant's Java task. It is horrible.
Try a custom classloader approach?
** TODO Use Aether instead of maven-ant-tasks?
http://www.sonatype.com/people/2010/08/introducing-aether/
** TODO Rename test-resources to dev-resources
Breaking change; needs to wait for a major version bump.
2010-08-17 05:05:24 +00:00
** TODO add option to use ~/.m2-based classpath instead of copying to lib/?
2010-09-08 21:06:17 +00:00
It looks like it would be easy to stop copying things into lib/ and
2010-09-25 20:47:37 +00:00
just use Maven's notion of the project's dependencies to construct a
classpath that references jars straight from ~/.m2.
** TODO spin lancet off into its own dependency
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!
** TODO shell wrappers should support multiple versions
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.
** TODO classifiers for specifying what clojure version to use?
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?
** TODO a list of dirs to include in the jar when building
Some people have requested this.
** TODO re-compile all deps with current clojure version
Another thing that's going to start becoming more important as more
Clojure versions are introduced.
** TODO fail gracefully when run without an Internet connection (Issue #100)
** TODO improve test coverage
** TODO merge push task based on clj-ssh
lein-clojars task doesn't support DSA keys
2010-10-16 16:35:35 +00:00
** TODO integrate plugin task with lein-search
Would be better to be able to leave off version numbers
2010-10-29 17:55:12 +00:00
* For 1.4
** TODO Avoid warning when defining *classpath* by marking :dynamic
** TODO get -Xbootclasspath working with Clojure 1.3 again
2010-08-20 20:58:50 +00:00
** TODO merge lein-search features?
2010-09-08 21:06:17 +00:00
This plugin is great; we should think about taking it into
Leiningen itself.
2010-10-29 17:55:12 +00:00
** DONE clear out non-transitive .class files after AOT
Luc Prefontaine has code for this.
** DONE plugin task for managing/upgrading plugins
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.
** DONE merge lein-run task?
2010-09-08 21:06:17 +00:00
Ditto; this is something useful that many projects need.
** DONE expose original pwd as property
** DONE merge lein-javac task
Also make the compile task run it where appropriate.
2010-09-25 20:47:37 +00:00
** DONE test selectors using metadata; run a subset of tests
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.
2010-08-06 01:45:07 +00:00
* For 1.3.0
** DONE specify min. lein version in project.clj
2010-08-17 05:05:24 +00:00
** DONE :omit-source
2010-08-11 03:04:57 +00:00
** DONE lein install $PROJECT (works outside project root)
Possibly take some of this from cljr?
2010-08-11 03:04:57 +00:00
** DONE write shell wrappers on install
** DONE include shell wrapper in jar file from template
2010-08-08 23:16:48 +00:00
** 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
2010-08-06 01:45:07 +00:00
** DONE interactive task
** DONE resources in generated pom
2010-03-12 05:22:42 +00:00
* For 1.2.0
2010-07-18 20:33:36 +00:00
** DONE Fix self-build clean problem
** DONE Don't catch reader exceptions unless they are from ^D
2010-06-22 02:21:22 +00:00
** 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
2010-06-12 06:01:39 +00:00
** DONE document version ranges
2010-06-07 04:18:56 +00:00
** DONE include lib/dev in find-lib-jars
2010-06-05 21:00:37 +00:00
** 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
2010-05-27 23:08:44 +00:00
** DONE Help task should display arglist
** DONE walk up the filesystem to find project.clj
** DONE make inter-task dependencies honor hooks
2010-05-27 22:15:32 +00:00
** DONE wire repl task up to socket repl
** DONE allow *warn-on-reflection* to be turned on in project.clj
2010-05-27 23:08:44 +00:00
** DONE Expose hooks in built-in tasks so plugins may extend them
2010-05-19 01:31:04 +00:00
** 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
2010-06-12 22:33:54 +00:00
* 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)
2010-09-08 01:54:35 +00:00
* Plugin ideas
** metrics
*** LOC
*** complexity
*** time logs
2010-08-20 20:58:50 +00:00
* 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?