Skip to content
Cannot retrieve contributors at this time
Leiningen News -- history of user-visible changes
2.1.1 / 2013-03-21
2.1.0 / 2013-03-19
:test-paths to directories shared by checkout deps. (Phil Hagelberg)
run task to function outside projects. (Phil Hagelberg)
- Fix a bug preventing
with-profiles working outside projects. (Colin Jones)
- Fix a bug in trampolined
repl. (Colin Jones)
- Fix a bug in
update-in task causing stack overflow. (David Powell)
- Fix a bug in
lein upgrade. (Phil Hagelberg)
2.0.0 / 2013-01-19
- Compile task accepts regexes as command-line args. (Joshua P. Tilles)
- Allow key to be specified to use when signing artifacts. (Tim McCormack)
- Added GPG introductory guide. (Toby Crawley)
- Many bug fixes in batch file launcher. (David Powell)
- Self install via lein.bat no longer requires curl/wget. (slahn)
- Allow stdin of project processes to be closed. (Jean Niklas L'orange)
- Better behaviour when GPG or keys are missing. (Toby Crawley)
- Support customizing key-managers for SSL. (Stephen Nelson)
- Add update-in task for arbitrary project map changes. (Phil Hagelberg)
- Warn when version ranges are detected. (Nelson Morris)
- Add support for msys on Windows machines. (megri)
- Allow use of :mirrors when building jars/uberjars. (Tim McCormack)
- Dependencies may include native components more flexibly. (Marc Liberatore)
- Implement system-level profiles. (Phil Hagelberg)
- Accept repo credentials on the CLI for deploy. (Max Prokopiev)
- Fix a bug breaking recursive aliases. (Hugo Duncan)
- Add support for preventing deployment of branches. (Anthony Grimes)
- Improve boot time by limiting tiered compilation in dev. (Phil Hagelberg)
- Allow building jars with classifiers. (Hugo Duncan)
- Allow :init-ns to be honored by other nrepl clients. (Marko Topolnik)
- Add experimental support for :eval-in :nrepl. (Phil Hagelberg)
- Don't follow symlinks in clean task. (Jean Niklas L'orange)
- Add support for ~/.lein/profiles.d. (Jean Niklas L'orange)
- Allow ctrl-c to interrupt repl input (Colin Jones)
lein test to take files as arguments (Gabriel Horner)
2.0.0-RC2 / 2013-01-12
- Allow implicit repl profiles to be overridden.
:main as an alias for
- Reader fixes for
repl. (Colin Jones, Chas Emerick)
- Fix bug around stdin for subprocesses that have stopped. (Jean Niklas L'orange)
- Warn when
:user profile is found in
project.clj. (Michael Grubb)
:user profile as project map outside of project. (Jean Niklas L'orange)
2.0.0-RC1 / 2013-01-10
- Fix bug where newnew wouldn't be loaded from outside a project.
- Fix Windows bug in project generation.
lein upgrade bug.
2.0.0-preview10 / 2012-08-25
- Fix some reader bugs in repl task. (Colin Jones)
- Fix a bug where Leiningen's deps could affect javac. (Jean Niklas L'orange)
- Test selectors may allow entire namespaces to be skipped. (Anthony Grimes)
- Allow project's git repo to be different than project root. (David Greenberg)
- Don't AOT the
:main namespace outside of jar/uberjar task.
- Allow hooks from profiles to apply with limited scope. (Hugo Duncan)
- Fix a bug where profile-specific paths were ignored in trampoline.
- Support reading from stdin inside project process.
:only test selector. (Anthony Grimes)
- Support partial application for test selectors. (Anthony Grimes)
:auth profile for full-disk-encryption users.
- Add documentation for mixed-source projects. (Michael Klishin)
- Make later profiles take precedence in with-profile task. (Justin Balthrop)
- Improve help for subtasks. (Tobias Crawley)
- Allow vectors to specify multiple credential sources. (Chas Emerick)
- Look up credentials in environment using namespaced keywords. (Chas Emerick)
- Support overriding repl profile from project.clj or profiles.clj.
- Allow test selectors to operate on namespace. (Jim Crossley)
- Honor environment variables in project.clj. (Justin Balthrop)
- Allow searching over fields other than artifact id. (Michael Klishin)
- Honor per-project REPL history. (Michael Klishin, Colin Jones)
- Reduce output during dependency resolution. (Nelson Morris)
- Fix search task outside project. (Bruce Adams)
2.0.0-preview9 / 2012-08-24
- Fix a bug where repositories wouldn't be checked running outside a project.
- Make repl listen on 127.0.0.1 instead of localhost to address IPv6 issues.
2.0.0-preview8 / 2012-08-16
- Use provided profile by default everywhere except uberjar. (Marshall Vandegrift)
- Unify format for auto-loading middleware and hooks. (Justin Balthrop)
- Allow more declarative :nrepl-middleware settings. (Chas Emerick)
:eval-in :classloader for native dependencies. (Justin Balthrop)
- Support project and user leinrc file for shell-level customization. (Justin Balthrop)
- Cache trampoline commands for fast boot. Set
$LEIN_FAST_TRAMPOLINE to enable.
- Support setting HTTPS proxies.
- Improved resilience when self-install is interrupted. (Bruce Adams)
- Fix a bug where profile dependencies weren't honored in trampoline task.
2.0.0-preview7 / 2012-06-27
- Place SCM revision in pom.properties in jar files.
- Allow middleware and hooks to be inferred from plugins. (Justin Balthrop)
- Offer similar suggestions when no task is found for input. (Joe Gallo)
TERM=dumb in repl task. (Colin Jones)
- Fix reader mismatches between repl client and server. (Colin Jones)
- Use new search index format, support incremental updates. (Christoph Seibert)
- Accept nREPL handlers and middleware from project config.
- Support emitting arbitrary elements in pom.xml. (Esa Laine)
- Fix a bug where repl task was binding to 0.0.0.0.
$http_no_proxy host settings. (Jon Pither)
- Profiles can be specified as compositions of other profiles. (Justin Balthrop)
- Allow for
:prep-tasks with arguments. (Anthony Marcar)
- Check for "help" after task name. (Bruce Adams)
- Read dependency transport wagons from plugins.
- Allow successive eval-in-project calls with trampoline.
- Bring back selective post-compile cleaning. (Arlen Cuss)
- Fix memory leak in repl task.
2.0.0-preview6 / 2012-06-01
- Fix a bug where failed javac wouldn't abort. (Michael Klishin)
- Check task aliases everywhere tasks are invoked.
- Sign jars and poms of releases upon deploy by default.
- Don't decrypt
credentials.clj.gpg for every request.
- Support setting
:mirrors in project.clj. (Chas Emerick, Nelson Morris)
- Allow aliases shadowing task names to invoke shadowed tasks.
doc/intro.md in new project templates.
:scm to be set in project.clj for pom inclusion. (Florian Anderiasch)
- Fix a bug where dependency
:extension would be ignored.
- Speed up subprocess launches when
:bootclasspath is set.
- Set user agent for HTTP requests. (Bruce Adams)
- Verify signatures of dependencies with
lein deps :verify.
- Move task chaining to
do task in order to allow for higher-order use.
2.0.0-preview5 / 2012-05-31
- Allow lookup of
:repositories credentials from environment variables.
- Perform more SSL certificate validity checks.
- Fix a bug where repl dependency was conflicting.
- Add certificate for Clojars to default project settings.
- Allow custom SSL
:certificates to be specified for repositories.
2.0.0-preview4 / 2012-05-11
- Fix a repl bug where namespaced keywords weren't read right. (Colin Jones)
- Prompt for credentials upon deploy when none are configured.
- Support encrypted deploy credentials using GPG.
- Warn about missing metadata when deploying.
- Default to refusing downloaded jars when checksums don't match.
- Apply middleware before calculating profiles so they work in with-profile.
- Allow reply dependency to be upgraded independently of Leiningen.
- Don't write "stale" directory when running outside a project.
- Proxy settings are passed on to project subprocesses. (Craig McDaniel)
- Revamp tutorial, spin off profiles guide and faq.
- Fix bug that would cause repl task to hang. (Colin Jones)
2.0.0-preview3 / 2012-04-12
- Checkout dependencies are not applied with production profile.
- Move pom.xml back to the project root.
- Add -U alias for forcing updates of snapshots.
- Support setting :update and :checksum profiles at top level of project.
- Blink matching parens in repl. (Colin Jones)
- Fix a bug where repl would interfere with project agents. (Chas Emerick)
- Show repl output that is emitted after return value. (Colin Jones)
- Make it easier for plugins to undo profile merging. (David Santiago)
- Add -o alias for activating offline profile.
- Ignore $CLASSPATH environment variable.
- Fix bug where repl task couldn't be trampolined. (Colin Jones)
- Allow jar manifest entries to be dynamically calculated.
- Support map-style :javac-opts like Leiningen 1.x used. (Michael Klishin)
- Allow group-id to be specified when creating new projects. (Michael Klishin)
- Fix a bug where :dev dependencies would be exposed in pom.
- Use Clojure 1.4.0 internally; plugins have access to new Clojure features.
2.0.0-preview2 / 2012-03-08
- Add HTTP nREPL support for repl task via :connect option. (Chas Emerick,
- Improve repl startup time, output consistency, Windows support. (Lee Hinman,
- Stop using numeric exit codes for task failures.
- Dynamically resolve unknown templates in new task.
- Automatically activate offline profile when needed.
- Honor $http_proxy environment variable. (Juergen Hoetzel)
- Allow arbitrary :filespecs to be included in jars.
- Let custom :prep-tasks be specified in project.clj.
- Include :java-source-paths and dev/test deps in pom. (Nelson Morris)
- Add offline profile.
- Prevent project JVMs from outlasting Leiningen's process. (Colin Jones)
- Update lein.bat to work with version 2. (Andrew Kondratovich)
- Show a dependency tree in deps task. (Chas Emerick, Nelson Morris)
- Support connecting to nrepl server in repl task. (Chas Emerick, Colin Jones)
- Pretty-print pom.xml. (Nelson Morris)
- Display task aliases in help task. (Michael S. Klishin)
- Only compile stale java source files. (Stephen C. Gilardi)
- Respect :java-cmd in project.clj. (Michael S. Klishin)
- Show progress when downloading search indices. (Justin Kramer)
2.0.0-preview1 / 2012-03-07
- Honor :default and :user profiles when running outside a project.
- Fix a bug where subtask help wasn't showing.
1.7.1 / 2012-03-27
- Split out leiningen-core into independent library.
- Construct classpath out of ~/.m2 instead of copying jars to lib/.
- Replace maven-ant-tasks with Pomegranate library. (Chas Emerick,
- Move build artifacts to target/ directory.
- Add experimental support for running project code in-process with
:eval-in :classloader. (Justin Balthrop)
- Support profiles for alternate project configurations.
- Switch to using plural :source-paths, :test-paths, and :resource-paths.
- Complete rewrite of repl task. (Colin Jones, Chas Emerick, Anthony Grimes)
- Remove special case of implicit org.clojure group-id in :dependencies.
- Replace :dev-dependencies with :dev profile.
- Support customized :source-paths with :eval-in :leiningen projects.
- Rewrite pom task. (Nelson Morris, Alan Malloy)
- Allow tasks and projects to add custom :injections into project code.
- Support changing :prep-tasks for running tasks other than javac and
compile before eval-in-project calls.
- Rewrite new task. (Anthony Grimes)
- New check task for catching reflection and other issues. (David Santiago)
- Check project.clj for :aliases.
- Allow partial application of aliases.
- Drop :extra-classpath-dirs option.
- Load :plugins without trampolining the process.
- Remove plugin task in favour of :user profile.
- Allow :repository-auth to be specified using a regular expression.
- Support arbitrary project map transformation functions via :middleware.
- Support changing :local-repo path in project.clj.
1.7.0 / 2012-02-06
- Fix a bug where the repl task left JVM processes running.
- Make upgrade task accept arbitrary versions.
- Fix a bug where javac classes would get removed before AOT compilation.
- Allow :aot to contain both symbols and regexes. (Dan Lidral-Porter)
- Fix bug where clean task would be incredibly slow.
- Apply :jvm-opts with :eval-in-leiningen.
- Prevent misbehaving plugins from pulling in conflicting Clojure versions.
1.6.2 / 2011-11-11
- Allow any task to perform trampolining.
- Fix a bug where JVM_OPTS with spaces would cause failures.
- Keep pom dependencies off the classpath.
- Block plugins from erroneously including their own Clojure version.
- Allow poms to set parent element. (Nelson Morris)
- Support emitting Maven extensions in pom. (Max Penet)
- Allow faster booting on 64-bit JVMs with tiered compilation.
- Fix a bug where shell wrappers had the wrong classpath. (Tavis Rudd)
- Exclude all signature files from uberjars. (Tim McCormack)
- Allow test selectors to apply to entire namespaces. (Kevin Downey)
- Use LEIN_JAVA_CMD to allow different JVM for Leiningen itself. (Tavis Rudd)
- Honor :plugins key inside project.clj.
- Accept :repl-init namespace as argument to repl task.
- Allow :java-source-path to be nested inside :source-path. (Anthony Grimes)
- Fix a bug where native deps weren't made available. (Anthony Grimes)
188.8.131.52 / 2011-09-06
- Let run task work with main functions from Java classes.
- Fix bug where exceptions would break interactive task.
- Default to Clojure 1.3.0 for new projects.
- Allow Leiningen home to exist inside project directory. (Heinz N. Gies)
- Remove old versions of plugins when upgrading.
- Add user-level :deploy-repositories list. (Michał Marczyk)
- Fix a bug where class files from proxy objects weren't considered
part of the project. (Stephen Compall)
- Make deps cause implicit clean to avoid AOT version mismatches.
- Include Java source files in jar. (Nathan Marz)
- Add separate :deploy-repositories list. (Chas Emerick)
- Maintain order in repositories list. (Colin Jones)
- Fix a bug where :omit-default-repos wouldn't skip Maven Central. (Chas Emerick)
- Make deps extract native dependencies for all architectures, not just current.
- Fix page count on search results.
- Fix a bug where "lein plugin install" could skip dependencies.
- Reimplement eval-in-project to use clojure.java.shell instead of Ant.
- Separate LEIN_JVM_OPTS from JVM_OPTS.
1.6.1 / 2011-07-06
- Turn off workaround for Clojure's agent thread pool keeping the JVM alive
by default. Use :shutdown-agents in project.clj to enable it.
1.6.0 / 2011-06-29
- Allow alternate main namespace to be used during uberjar creation.
- Add :checkout-deps-shares to share more directories in checkout dependencies.
- Fix a bug where agent thread pool would be shut down in repl task.
- Support :project-init in project.clj to allow pprint to be used in :repl-options.
- Fix a bug where tests would not run using Clojure 1.3.
- Support for .classpath file to include context specific classpath elements.
1.5.2 / 2011-04-13
- Enforce project names as readable symbols.
- Add trampoline task.
- Fix a bug where plugins would be unavailable in MinGW.
- Allow functions other than -main to be called using run task.
- Support constructing classpath out of ~/.m2 instead of copying to lib/.
- Fix a bug where help output could be truncated by plugin issues.
- Support native dependencies.
- Test selectors no longer require additional hooke dependency.
- Add retest task.
- Add search task.
- Remove deprecated build.clojure.org repositories.
- Remove user/*classpath* var.
- Support :extra-classpath-dirs in project.clj.
1.5.1 / 2011-04-12
- Check rlwrap for support of custom quotes before using.
- Improve Solaris support. (Donald Clark Jackson)
- Fix curl error relating to missing $https_proxy. (Pirmin Fix)
1.5.0 / 2011-03-22
- Improve rlwrap quote support. (Ambrose Bonnaire-Sergeant)
- Prevent ns load exceptions from halting help.
- Fix :repl-init namespace handling.
- Make deps for :eval-in-leiningen projects available to lein process.
- Pass $https_proxy environment variable to curl.
- Fix :eval-in-leiningen when used with init arg.
- Pom now includes dev-dependencies as test-scoped. (Thomas Engelschmidt)
- Fix handling of arguments with spaces. (Stuart Fehr)
- Fix a plugin bug where it would look for dev-dependencies.
- Fix :min-lein-version checking. (Colin Jones)
- Honor user settings in more places.
- Fix running-as-root warning.
- Revert back to warning when repository checksums don't match.
1.4.2 / 2010-12-31
- New projects now use Clojure 1.2.1.
- Honor per-repository :update/:checksum policies.
- Allow some repositories to be releases/snapshots-only.
- Honor global :exclusions. (Joe Gallo)
- Honor :class-file-whitelist to make classes/ deletion more manageable.
- Accept :repl-init namespace in project.clj.
- Warn when falling back to jline if rlwrap is not found.
- Add prepend-task macro for simple hook usage.
- Add flexibility to clean task with :extra-files-to-clean
- Fix bug in interactive task that would cause infinite loop.
- Add version into shell wrapper template.
- Add pcmpl-lein.el for eshell completion.
- Skip fetching dependencies when they haven't changed in project.clj
if :checksum-deps is set.
- Add system property for $PROJECT.version.
- Add deploy task.
- Reload tests in interactive mode.
- Make test! task accept namespace list as argument. (Joe Gallo)
- Use current year in readme for project skeleton. (Joe Gallo)
1.4.1 / 2010-12-16
- Fix a bug where init to eval-in-project was ignored in interactive task.
- Fix a bug in path calculation for native dependencies. (wburke)
- Fix a bug where built-in tasks shadowed plugins (javac, run).
- Allow a seq of regexes in :clean-non-project-classes for more flexibility.
- Fix a bug where the first argument to run would be parsed wrong. (Alex Osborne)
- Use JVM_OPTS environment variable instead of JAVA_OPTS, though the latter
is still supported for backwards-compatibility.
1.4.0 / 2010-12-02
- Allow boosting :repl-retry-limit in project.clj for slow-starting projects.
- Turn :clean-non-project-classes off by default.
- Support :skip-aot metadata on :main in project.clj.
- Alias :deps/:dev-deps to :dependencies/:dev-dependencies in project.clj.
- Support setting clojure.debug property.
- Don't allow stable versions to depend upon snapshots.
- Fix exit code for chained tasks.
1.3.1 / 2010-09-07
- Support readme, tutorial, news, and copying in help task.
- Show short help summaries in help task overview.
- Keep project JVM running between task runs in interactive task.
- Support :uberjar-exclusions as a seq of regexes in project.clj.
- Support :repl-options in project.clj that get passed to clojure.main/repl.
- Shell wrappers are installed on Windows. (Matjaz Gregoric)
- Windows and Cygwin path fixes. (Matjaz Gregoric)
- Solaris compatibility fixes. (Heinz Gies)
- Deprecated :jar-dir in favour of :target-dir.
- Deprecated unused eval-in-project arguments. (handler, skip-auto-compile)
- Deprecated :namespaces and :test-resources-path in project.clj.
- Delete non-project .class files after AOT compilation. (Luc Prefontaine)
- Merge run task from lein-run plugin. (Siddhartha Reddy)
- Improve subtask help output. (Colin Jones)
- Support :eval-in-leiningen for easier testing of plugins.
- Merge javac task from lein-javac plugin. (Antonio Garrote)
- Add init argument to eval-in-project to help with the Gilardi Scenario.
See http://technomancy.us/143 for details.
- Fix bug involving repl I/O flushing.
- Run subset of test suite using test selector predicates.
- Specify what file patterns to exclude from jars. (Zehua Liu)
- Sort and de-dupe help output. (Sergio Arbeo)
- Add plugin task: easily install user-level plugins (Colin Jones, Michael Ivey)
1.3.0 / 2010-08-19
- Support regex matching in :aot list. (Alex Ott)
- Run self-install automatically if uberjar is missing.
- Fix bugs that caused standalone install task to fail.
- Allow dependency type to be specified in project.clj. (John Sanda)
- Stop jar/uberjar task if compile fails. (Alan Dipert)
- Support :min-lein-version in project.clj so if a project uses newer Leiningen
features it will warn users of old lein versions. (Isaac Hodes)
- Fix a bug where tests would get skipped if their first form was not ns.
- Fix a bug where "lein help" would hang if run from a dir with a large src/.
- Fix a bug where repl task would hang on unreadable input. (Isaac Hodes)
- Allow repl task to work outside project. (Colin Jones)
- If curl/wget is found, self-install works on Windows. (Shantanu Kumar)
- Fix bug causing standalone install task to fail.
- Allow custom shell-wrappers.
- Start repls in user ns if no :main is in project.clj.
1.2.0 / 2010-07-18
- Add :omit-source option to project.clj for shipping aot-only jars.
- Make repl task listen on a socket as well as the command-line.
- Write shell wrapper scripts at installation time. See TUTORIAL.md.
- Put user-level plugins in ~/.lein/plugins on the classpath.
- Load ~/.lein/init.clj on startup.
- Execution of per-project initialization script, specified in :repl-init-script option.
- Switch to /bin/sh instead of bash. (Mike Meyer)
- Allow multiple tasks to be chained from the command-line. (Colin Jones)
- Add test! task that cleans and does deps before testing.
- Add interactive task for entering tasks in a shell-like environment.
- Work around argument escaping bug on Windows. (Laurence Hygate)
- Require hooks to be specified in project.clj.
- Detect download failures in self-install.
- Add resources and test-resources paths to pom. (Brian Weber)
- Fix bug causing crash if OS name wasn't recognized.
- Improve AOT staleness determination heuristic.
- Fix bug where uberjar left out dependencies for non-AOT'd projects. (Alex Ott)
1.1.0 / 2010-02-16
- Don't enable repl rlwrap when unnecessary. (dumb terms, Emacs, etc.)
- Add support for password-protected repositories.
- Allow :jar-name and :uberjar-name to be customized.
- Allow unquoting in defproject form.
- Support classifiers in dependencies.
- Clean before running uberjar task.
- Implicitly clean lib/ before running deps.
- Add support for test-resources directory.
- Fix help output that AOT sometimes drops.
- Clear out lib/dev on lein clean even if :library-path is customized.
- Some tasks suppress useless output.
- Snapshot versions now allow self-install.
- Allow compile task to take a list of namespaces overriding project.clj.
- Handle more types of project metadata.
- Add plugin creation guide.
- Include arglists in help output.
- Make lein script usable from any subdirectory in the project root.
- Fix repl task to work with forked subprocess.
- Fork subprocess unconditionally for greater compatibility.
- Allow $JAVA_CMD to be customized.
- Fix a bug causing everything to recompile in tests. Thanks, Stuart!
- Fix exit code for test runs.
- Automatically compile and fetch deps when needed.
- Allow :jvm-opts and :warn-on-reflection to be set in project.clj.
- Merge lein-swank plugin into swank-clojure.
- Add :aot as an alias in project.clj for :namespaces to AOT-compile.
- Add option to omit-default-repositories.
- Allow group-id to be omitted when depending on Clojure and Contrib.
- Keep dev-dependencies in lib/dev, exclude them from uberjars.
- Include version numbers in jar filenames.
- Fix repl task to use project subclassloader.
- Don't allow "new" task to create *jure names.
- Add classpath command.
- Implement Checkout Dependencies. See README.
- Add option to symlink deps into lib/ instead of copying.
- Fixed bug for file timestamps inside jars.
- Generated poms should work in Java IDEs.
- Improved Cygwin support.
- Added TUTORIAL.md file for introductory concepts.
1.0.1 / 2009-12-10
- Added "lein upgrade" task
- Don't download snapshot releases unless actually needed.
- Make subclassloader's classpath available to projects.
- Fixed "install" task to place pom in local repository.
- Bug fixes to "new" task.
- Only AOT-compile namespaces specified in project.clj.
- Better error handling.
- Add exclusions support for dependencies.
- Support dependencies with native code.
- Added experimental Windows support.
1.0.0 / 2009-12-05
- Added bash completion.
- Honor $JAVA_OPTS.
- Fix new task.
- Add version task.
- Use jline for repl task.
- Fix pom task for Java 1.5 compatibility.
0.5.0 / 2009-11-17
- Source, test, and compilation paths can be set in project.clj.
- Project code runs in an isolated classloader; can now compile/test
projects that require a different version of Clojure from
Leiningen. (Does not support 1.0's test-is yet.)
- Install task no longer requires maven to be installed.
- Only compile namespaces whose .class files are older than .clj files.
- Add "new" task for generating blank projects.
- Set tag when generating pom.xml.
- Include pom.xml, pom.properties, and more detailed manifest in jars.
- Summarize pass/fail counts from test runs across all namespaces.
- Accept a list of namespaces for test task rather than testing all.
- Create $PROJECT-standalone.jar file from uberjar to distinguish from
regular jar files.
- Plugins have more flexibility to set the classpath and other
arguments for running project code.
- Add resources/ directory to classpath and generated jars.
- Start Leiningen faster by using -Xbootclasspath argument.