9.1 KiB
9.1 KiB
- For 2.0.0
- For 1.7.0
- For 1.6.2
- For 1.6.1
- For 1.6.0
- For 1.5.1
- For 1.5.0
- For 1.4.0
- For 1.3.0
- For 1.2.0
- For 1.1.0
- For 1.0
- Git-aware dependencies (experimental back-burner idea)
Leiningen TODOs
See also https://github.com/technomancy/leiningen/issues
For 2.0.0
2.0.0-final
- Address chaining issues in with-profile (#632)
- Address gpg agent issues (#615)
- Startup performance regression (#614)
- Stale directory clutter (#589)
- Allow jars to be signed, document in deploying guide. (#519)
- Isolate target dir per profile (#468)
- Mirror support (#271)
- Honor mirror for search indices (#281)
- Reduce Aether verbosity (#610)
- Improve speed of trampoline restarts (#573)
- Drop clojars snapshots from default repos (#241)
preview4
- Don't re-extract native deps (#535)
- Make offline profile use dev profile (#514) (LHF)
- Fix $JVM_OPTS (#565)
- Move lein-newnew plugin into default profile (#540)
- Force checking of snapshots (#518) (LHF)
Intermediate
- Pretty-print pom
- deps :tree
- Use blocking instead of polling for repl task (#433)
- Show aliases in lein help (#407)
- Use pomegranate to dynamically resolve missing "lein new" templates (newnew #12)
Documentation
- readme
- plugin guide
- tutorial
- hacking guide (moved to leiningen-core readme)
- migration guide
- sample project.clj
- deploy guide
Changes for preview release
- Finish designing and implement profiles
- Dynamic recalculating of classpath via pomegranate
- Honor :plugins as separate from :dependencies
- Rework prep function to ensure that AOT/javac happens when needed
- Move pom generation to pomegranate or leiningen
- More flexibility for jarring
- Allow tasks to add in their own injections
- Allow disabling of all injected code
- Activate :test profile in test task
- Resurrect native deps
- Trampoline
- Allow hooks to provide activate fn to avoid load-time side-effects
- Hook up reply to nrepl for new repl task
- Look for aliases in project.clj
- javac (can we do this without ant?)
- Get off snapshots (data.xml, reply)
- Pass user-level repository auth settings on to pomegranate
- Use ordered map for :dependencies and :repositories?
- Project middleware
- Top-level :exclusions
- Better error messages for misformatted :dependencies/:repositories
- Utility function for plugins to conditionally add dependencies
- Update new task
- Switch user-settings to checking :user profile sans project
- Offline mode
Adapt existing tasks to new API
- classpath
- clean
- compile (minus transitive cleaning)
- deps
- test
- jar (minus shell wrappers)
- retest
- run
- new (merge from lein-newnew)
- help (needs tests)
- search
- pom (steal from depot)
- install (minus shell wrappers)
- uberjar
- deploy
For 1.7.0
- System/exit in repl (#324)
- interactive task takes full CPU (#346)
- whole-namespace test selectors (#242)
- Auto-exclusions for dev-deps and plugins (#375)
- Investigate NPE on lein test (#388)
- Bring back rlwrap (#381)
For 1.6.2
- resources with eval-in-leiningen (#248)
- fix :omit-default-repositories wrt central (#211)
- deps should run an implicit clean
- don't let multiple versions of a plugin interfere with each other (#301)
- non-jar deps on classpath (#244)
- recover from error in interactive (#234)
- use java class in run task (#249)
- fix deploy with new maven-ant-tasks
For 1.6.1
- upgrade hooke
- make it easier to use :repl-options [:print clojure.pprint/pprint]
- fix shutdown-agents with repl
- don't clear out lib/dev upon jarring (221)
- support alternate main namespace for uberjar.
For 1.6.0
- Trampoline functionality
- move exit-after-tests check to eval-in-project (discuss on list?)
- don't freak out when attempting to download non-existent indices
- improve error message for unconfigured deploy
- make search work outside project
- clear up home directory duality in Windows/MinGW
- show total result count in search results
- transitive native-deps support
- make :repl-init change initial ns of repl and swank
- more flexibility in search results
- support ns/name in run task
- add option to use ~/.m2-based classpath instead of copying to lib/
- Merge lein-search
- Merge lein-retest
- Merge native-deps
- Add leiningen.util.injected namespace
For 1.5.1
- Move ns docstrings to :help-summary to allow AOT given CLJ-130.
- Put :eval-in-lein deps in lib/dev for leiningen process access.
- Revert back to :warn on checksum failure.
- Fix LEIN_ROOT warning in bin/lein.
- 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
- Use -Xbootclasspath where possible
- Don't write manifest, pom, etc. to disk when jarring
- Don't put uberjar in ~/.m2
- 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)
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?