leiningen/todo.org

148 lines
6.3 KiB
Org Mode

#-*- mode: org -*-
#+startup: overview
#+startup: hidestars
#+TODO: TODO | INPROGRESS | DONE
Leiningen TODOs
See also https://github.com/technomancy/leiningen/issues
* For 1.6.2
- [X] resources with eval-in-leiningen (#248)
- [X] fix :omit-default-repositories wrt central (#211)
- [X] deps should run an implicit clean
- [X] don't let multiple versions of a plugin interfere with each other (#301)
- [X] non-jar deps on classpath (#244)
- [X] recover from error in interactive (#234)
- [ ] fix deploy with new maven-ant-tasks
- [ ] use java class in run task (#249)
- [ ] signed deps for plugins (#247)
- [ ] jvm-specific deps (JSR 310)
* For 1.6.1
- [X] upgrade hooke
- [X] make it easier to use :repl-options [:print clojure.pprint/pprint]
- [X] fix shutdown-agents with repl
- [X] don't clear out lib/dev upon jarring (221)
- [X] support alternate main namespace for uberjar.
* For 1.6.0
- [X] Trampoline functionality
- [X] move exit-after-tests check to eval-in-project (discuss on list?)
- [X] don't freak out when attempting to download non-existent indices
- [X] improve error message for unconfigured deploy
- [X] make search work outside project
- [X] clear up home directory duality in Windows/MinGW
- [X] show total result count in search results
- [X] transitive native-deps support
- [X] make :repl-init change initial ns of repl and swank
- [X] more flexibility in search results
- [X] support ns/name in run task
- [X] add option to use ~/.m2-based classpath instead of copying to lib/
- [X] Merge lein-search
- [X] Merge lein-retest
- [X] Merge native-deps
- [X] Add leiningen.util.injected namespace
* For 1.5.1
** TODO
- [X] Move ns docstrings to :help-summary to allow AOT given CLJ-130.
- [X] Put :eval-in-lein deps in lib/dev for leiningen process access.
- [X] Revert back to :warn on checksum failure.
- [X] Fix LEIN_ROOT warning in bin/lein.
- [X] Honor user-settings in more places.
* For 1.5.0
- unify auth options between :repositories and :deploy-to
- suppress socket closed stacktrace in interactive task
- checksum deps set; don't re-download if unchanged
- allow whitelist for post-compile class file deletion
- fix warn-on-reflection for repl task (#176)
- explain how to do manual self-install if it fails
- failure to upgrade leaves lein as a zero-length file (#153)
- ensure project jar is last in uberjar (#178)
- investigate uberjar slowdown? (#160)
* For 1.4.0
- socket timing issues with interactive tests
- connect to socket repl in interactive task
- :uberjar-exclusions?
- :all test-selector built-in
- test selectors need to support things like constantly, complement
- detect missing level of nesting in project.clj's deps/dev-deps
- clear out non-transitive .class files after AOT
Luc Prefontaine has code for this.
- 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.
- merge lein-run task?
Ditto; this is something useful that many projects need.
- expose original pwd as property
- merge lein-javac task
Also make the compile task run it where appropriate.
- 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.
* For 1.3.0
- specify min. lein version in project.clj
- :omit-source
- lein install $PROJECT (works outside project root)
- write shell wrappers on install
- include shell wrapper in jar file from template
- set arbitrary jar metadata
- errors in read-project should show filename
- user-level plugin installation and activation
- user-level config file (with hook list)
- get no-project-needed from arglist
- argument chaining
- interactive task
- resources in generated pom
* For 1.2.0
- Fix self-build clean problem
- Don't catch reader exceptions unless they are from ^D
- document checkout dependencies
- Re-enable rlwrap
- Move the intro into a tutorial
- bin script has stabilized; self-install for dev versions should work
- accept list of namespaces to compile from command-line options
- document version ranges
- include lib/dev in find-lib-jars
- document plugin creation
- document all known project.clj keys
- disable frickin [null] logging from ant (come on srsly)
- recover from missing test exit map gracefully
- Help task should display arglist
- walk up the filesystem to find project.clj
- make inter-task dependencies honor hooks
- wire repl task up to socket repl
- allow \*warn-on-reflection\* to be turned on in project.clj
- Expose hooks in built-in tasks so plugins may extend them
- make org.clojure implied for clojure/contrib deps
- better way to force setFork in eval-in-project
- rename :namespaces key in project.clj
- include version in jar filenames
- classpath task to just print configured classpath
- move repl task from shell script to clojure code
* For 1.1.0
- upgrade task (patch submitted)
- doc generation (autodoc plugin)
* For 1.0
- Remove install task dependency on having Maven installed :Phil:
- Use -Xbootclasspath where possible :Dan:
- Don't write manifest, pom, etc. to disk when jarring :Dan:
- Don't put uberjar in ~/.m2 :Phil:
- Perform compilation in either a subprocess or with a separate classloader
- Allow test task to take namespaces as an argument
- Fix eval-in-project to let plugins pass in extra args
- Resources directory added to classpath (for properties, etc)
* Plugin ideas
- metrics
- LOC
- complexity
- time logs
* 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?