Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time
876 lines (738 sloc) 43.4 KB

Leiningen News -- history of user-visible changes

2.9.9 / ???

  • Prevent module-info.class files from being included in uberjars. (Phil Hagelberg)
  • Prevent duplicate warnings in resource-paths when creating jars. (Phil Hagelberg)
  • Fix an issue with check where AOT would shadow reflection warnings. (Phil Hagelberg)
  • Allow change to edit dependency versions. (Eric Schoen)
  • Fix a bug where composite profiles would leak dependencies downstream. (Phil Hagelberg)

2.9.8 / 2021-11-11

  • Fix a bug where certain deep dependency trees would overflow stack. (Phil Hagelberg)
  • Allow LEIN_JAR to be overridden if you install elsewhere. (Ahmed Sajid)

2.9.7 / 2021-09-15

  • Detect certain pathological dependency trees and warn. (Phil Hagelberg)
  • Bump to Clojure 1.10.3. (Grzegorz Smajdor)
  • Don't warn on version ranges which point to a single version. (Pierre-Yves Ritschard)
  • Fix a bug where verifying deps could loop forever. (James Carnegie)
  • Get better error messages when deploys fail. (Toby Crawley)

2.9.6 / 2021-04-15

  • Look for templates in a way that reflects new Clojars group rules. (Phil Hagelberg)
  • Update template-generating template to reflect new Clojars rules. (Phil Hagelberg)
  • Don't :reload in tests unless connecting to an nrepl. (Ambrose Bonnaire-Sergeant)

2.9.5 / 2020-12-07

  • Several dependency version bumps. (Bozhidar Batsov, Utkarsh Gupta, Chris Thunes)

2.9.4 / 2020-07-08

  • Fix a bug where dependency conflict resolution errors were wrong. (Phil Hagelberg)
  • Make test selectors skip non-test vars. (Mourjo Sen)
  • Fix a bug where deps :query would report incorrect results. (Chris Thunes)
  • Update nREPL to 0.7. (Bozhidar Batsov)
  • Add scheme configuration support to REPL-y and use configured transport when starting the ack-server. (Paulo Feodrippe, Bozhidar Batsov)

2.9.3 / 2020-03-16

  • Fix a bug where deploying would fail to send signature checksums. (Antonin Hildebrand)
  • Memoize application of project middleware. (Chris Thunes)
  • Fix a bug where checksum verification failed on non-GNU systems. (Antonio Hernández Blas)

2.9.2 / 2020-02-28

  • Bump to Clojure 1.10.1. (Phil Hagelberg)
  • Fix a bug where disabling implicit middleware disabled explicit ones. (radhika reddy)
  • Add checksum check during self-install process. (Toyam Cox)
  • Include repository auth when verifying dependencies. (David Bürgin)
  • Fix bugs in certain kinds of profile merging. (David Bürgin)
  • Include :repositories from project.clj in pom.xml file. (David Bürgin)

2.9.1 / 2019-02-26

  • Fix a bug where provided namespace compilation order was overridden. (Phil Hagelberg)
  • Don't emit namespaced maps when merging data readers for uberjar. (Joel Kaasinen)

2.9.0 / 2019-02-10

  • Re-enable bootclasspath optimization by default. (Phil Hagelberg)
  • Sort namespace order consistently during AOT. (Logan Girard)
  • Use Clojure 1.10.0 for plugins and new templates projects. (Alex Miller, Phil Hagelberg)
  • Update nREPL to 0.6. (Bozhidar Batsov)

2.8.3 / 2018-12-14

  • Fix a warning in the powershell script. (Florian Anderiasch)
  • Fix a bug where the repl wouldn't launch. (Bozhidar Batsov)
  • Remove broken unattended GPG deploy feature.
  • Fix a bug where the repl didn't use :main as the initial ns. (Phil Hagelberg)

2.8.2 / 2018-12-11

  • Fix a bug where hidden files would be included in jars. (James Elliott)
  • Add support for repository-overrides.clj to bootstrap repository info. (Greg Haskins)
  • Use stderr consistently for diagnostics. (Rob Browning)
  • Fix a bug in aliases that come from profiles. (Arnout Roemers)
  • Fix TLS errors in self-install on Windows. (Florian Anderiasch)
  • Templates use EPL-2.0 with GPL secondary license. (Yegor Timoshenko)
  • Allow GPG to be invoked unattended with passphrase. (Neil Okamoto)
  • Add pprint --not-pretty argument that prints instead of pprinting. (Rob Browning)
  • Always send diagnostic messages to standard error. (Rob Browning)
  • Add project coordinate data to jar metadata. (Conor McDermottroe)
  • Allow freeform :pom-plugin configuration. (Hannu Hartikainen)
  • (Breaking) Switch to nREPL 0.5. See the upgrade notes if you experience any problems with the lein repl task. (Bozhidar Batsov)

2.8.1 / 2017-10-27

  • Fix a bug where lein help couldn't list built-in tasks on Java 9. (Phil Hagelberg)
  • Fix a bug where lein installed from package managers would obscure exit code. (Phil Hagelberg)
  • Fix an errant reflection warning on Java 9. (Toby Crawley)
  • Fix an error when no :plugins are specified. (Phil Hagelberg)
  • Fix a bug where launching project subprocesses would encounter unreadable forms. (Phil Hagelberg)
  • Remove auto-setting of cgroups memory limit. (Florian Anderiasch)

2.8.0 / 2017-10-17

  • Support LEIN_USE_BOOTCLASSPATH for users on Java 8. (Phil Hagelberg)
  • Disable bytecode verification in Leiningen's own JVM for Java 9 compatibility. (Ghadi Shayban)
  • Infer values for pom <scm> tag from .git directory. (Nicolas Berger)

2.8.0-RC1 / 2017-09-18

  • Project middleware, hooks, and the :test profile are considered deprecated. (Phil Hagelberg)
  • Help output no longer includes TOC output. (Irina Renteria)
  • The vcs task allows the commit message to be customized. (Toby Crawley)
  • JVMs on 8u131 and newer will default to using cgroups settings for memory limits. (Phil Hagelberg)
  • Add :query subcommand to deps to quickly find latest versions. (Phil Hagelberg)
  • Fix a bug where dependency resolution wasn't cached correctly. (Phil Hagelberg)
  • Support for HTTP nREPL has been moved out; requires drawbridge plugin now. (Phil Hagelberg)
  • Warn when $CLASSPATH is set. (Phil Hagelberg)
  • Default to requiring TLS for remote repositories. (Phil Hagelberg)
  • Remove warning when running as root. (Phil Hagelberg)
  • Add :why subtask to deps for tracing individual deps. (Phil Hagelberg)
  • Remove clj-http and cheshire dependencies, reducing likelihood of conflict. (Phil Hagelberg)
  • Warn when plugin dependencies conflict with Leiningen's own. (Phil Hagelberg)
  • Fix a bug where repls outside a project were not run in Leiningen's own process. (Phil Hagelberg)
  • Add :plugin-tree and :tree-data subtasks to deps. (Ken Restivo)
  • Support skipping bootclasspath for Java 9 compatibility. (Phil Hagelberg)
  • Allow vcs task to skip signing tags. (Nicolas Berger)
  • The search task no longer downloads indices but hits live search APIs. (Phil Hagelberg)
  • Remove duplicate exclusions in lein deps. (Emlyn Corrin)
  • Leiningen is now installable again via chocolatey. (Florian Anderiasch)
  • Dependency names can be specified as strings in addition to symbols. (Wes Morgan)

2.7.1 / 2016-09-22

  • Add support for SDKMAN! as installation alternative. (Jean Niklas L'orange)
  • Improved explanation in some errors. (Jean Niklas L'orange)
  • Don't require nil for version in managed deps. (Chris Price)
  • Fix a bug with snapshot dependencies for managed deps. (Chris Price)

2.7.0 / 2016-08-24

  • Add PowerShell script for Windows users. (Brian Lalonde)
  • Run :prep-tasks before lein test, so generated test namespaces will be tested. (Martin Reck)
  • Better error message when attempting to do lein run without project.clj. (Eduardo Seabra Silva)
  • Add support for :managed-dependencies. (Chris Price)
  • Provide the current clojars certificate. (Toby Crawley)
  • Add *eval-print-dup* to evaluate forms passed to eval-in-leiningen with *print-dup*. (Eduardo Seabra Silva)
  • Update bash completions. (Zack Dever)
  • Respect :scm :dir in lein vcs commands. (Ian Kerins)
  • Improve whitespace handling from JVM_OPTS. (Stephen Nelson)
  • Catch and handle fixture errors during lein test. (Alex Hall)
  • Fix a bug where spaces in directory names on Windows caused crashes. (Leon Mergen, Tobias Kiertscher, Jean Niklas L'orange)
  • Fix a bug where lein search would take forever downloading (Paul Dorman)
  • Retain user defined private repositories when building jars, uberjars and deploy. (Rick Moynihan)
  • Honor whitelist settings when lein javac is called via lein jar. (Chris Price)
  • lein vsc push for git will now only push branch-related tags. (Łukasz Klich)

2.6.1 / 2016-02-08

  • Fix a bug where some plugins crashed when used. (Jean Niklas L'orange)

2.6.0 / 2016-02-05

  • The templates, repl and Leiningen itself now use Clojure 1.8.
  • Support for Clojure 1.1.0 and older is now dropped.
  • Warn if possibly stale native dependencies end up in :native-path. (Jean Niklas L'orange)
  • Speed up restarts after :dependency changes. (Jean Niklas L'orange)
  • lein release now supports SNAPSHOT on qualifiers. (Chris Price)
  • Synchronise lein-pkg and lein scripts. (Thu Trang Pham)
  • Decrease timeout for the Clojure compiler agent thread pool. (Ryan Fowler)
  • Fix a bug where implicit resource directories were created by default. (Jean Niklas L'orange)
  • Avoid optimizing away stack traces by default. (solicode)
  • Fix a bug where duplicate profiles were merged when profile merging. (Jean Niklas L'orange)
  • Improved GPG artifact signing feedback. (Jean Niklas L'orange, Andrea Richiardi)
  • Add function to support binary files with lein-new. (Sergiy Bondaryev)
  • Show better error message when java is not found on the path. (Pavel Prokopenko, Jürgen Hötzel)
  • Fix a bug with non-GitHub SCM urls in pom files. (Ralf Schmitt)
  • Don't send aot warning if :aot contains regex matching the main namespace. (Emlyn Corrin)

2.5.3 / 2015-09-21

  • Add to default lein templates. (Daniel Compton)
  • lein vcs tag now supports the --no-sign flag. (Daniel Compton)
  • Fix a bug where javac errors were not printed to terminal. (Brandon Shimanek)
  • Fix a bug where environment variables were not propagated down to GPG. (Brandon Shimanek)
  • lein retest now saves information on which tests that fail. (Shalaka Patil)
  • lein release now honors exit codes from git and throws if non-0 occurs. (Tim Visher)

2.5.2 / 2015-08-09

  • Allow repl dependencies to be specified in default user profiles. (Jean Niklas L'orange)
  • Fix a bug where transitive dependencies on tools.nrepl failed. (Jean Niklas L'orange)
  • Fix a bug preventing custom certificates to work. (Jean Niklas L'orange)
  • Add support for reader conditional files. (Stephen Nelson)
  • Add --template-version flag to lein new. (Ohta Shogo)
  • Bail immediately if snapshot dependencies are discovered during uberjaring. (Justin Smith)
  • Use powershell by default in lein.bat. (Frederick Giasson, Florian Anderiasch)
  • Fix bug where manifest files could contain duplicate entries. (Michael Blume)
  • Allow template designers to use a custom rendering function. (Dmitri Sotnikov)
  • Fix a bug where :uberjar-name wasn't used when inside the :uberjar profile. (Kyle Harrington)

2.5.1 / 2015-01-09

  • No longer skip certificate checking when upgrading on Windows. (Phil Hagelberg)
  • Fix password prompt for Cygwin users. (Carsten Behring)
  • Fix a bug where lein pom did not add the project's SCM URL to pom.xml. (Fredrick Giasson)
  • lein clean now cleans up all profile targets. (Jeb Beich, Jim Crossley)
  • The order included profiles are merged in is now retained. (Jim Crossley)
  • Fix a bug preventing update-in to use functions not yet required. (Phil Hagelberg)
  • Allow multiple :repl profiles. (Hugo Duncan)
  • Fix an infinite recursion bug with aliases and with-profile. (Hugo Duncan)
  • Add flexibility in jar manifest declarations. (Fabio Tudone)
  • Fix a bug preventing extra profiles from being included in jars. (Hugo Duncan)
  • Fix a bug in self-install on Windows. (Sindunata Sudarmaji)

2.5.0 / 2014-09-14

  • Allow certain profiles to be ^:leaky and affect downstream. (Hugo Duncan)
  • Allow profiles to be loaded out of plugins. (Phil Hagelberg, Hugo Duncan)
  • Make leiningen.core.project/read init the project and merge default profiles. (Phil Hagelberg)
  • Move auto-clean to jar task for consistency. (Phil Hagelberg)
  • Make compilation messages honor $LEIN_SILENT (Jean Niklas L'orange)
  • Fix a bug around EOF in the repl. (Colin Jones)
  • Add :implicits subtask to deps task. (Phil Hagelberg)
  • Update zsh completion rules. (Joshua Davey)
  • Fix a stack overflow with :pedantic. (Nelson Morris)
  • Fix a bug where repls outside of a project were broken. (Phil Hagelberg)

2.4.3 / 2014-08-05

  • Allow implicit hooks/middleware to be disabled. (Phil Hagelberg)
  • Print compilation errors as they occur. (Paul Legato)
  • Switch Central repository to using HTTPS. (Manfred Moser)
  • Add LEIN_NO_USER_PROFILES to avoid loading user profile. (Hugo Duncan)
  • Fix deploy task to work with signature files. (Phil Hagelberg)
  • Allow vcs tags to be created with a prefix. (Yannick Scherer)
  • Default to warning when version ranges are present. (Phil Hagelberg)
  • Let templates be loaded from :plugin-repositories. (Jason Felice)

2.4.2 / 2014-06-15

  • Fix a bug preventing out-of-project runs. (Phil Hagelberg)
  • Only load Clojars SSL cert on-demand to improve boot time. (Phil Hagelberg)

2.4.1 / 2014-06-15

  • Don't commit untracked files in lein vcs commit. (Phil Hagelberg)
  • Fix a bug where :mirrors could not be configured. (Phil Hagelberg)
  • Expose for access to version number during development. (Phil Hagelberg)
  • Fix a bug preventing the release task from loading. (Phil Hagelberg)

2.4.0 / 2014-06-09

  • Allow aliases to splice in values from the project map. (Phil Hagelberg)
  • Allow plugins to override built-in tasks. (Phil Hagelberg)
  • Add release task for automating common release steps. (Wayne Warren, Chris Truter, Phil Hagelberg)
  • Add change task for programmatc project.clj manipulation. (Chris Truter, Max Barnash)
  • Abort when defproject contains duplicate keys. (Peter Garbers)
  • Add vcs task to automate version control. (Phil Hagelberg, Wayne Warren)
  • Automatically clean before deploy to avoid AOT in libraries. (Phil Hagelberg)
  • Emit warnings to stderr. (Andy Chambers)
  • Use clojure.main for uberjars that don't declare their own :main. (Phil Hagelberg)
  • Allow templates to load from :plugin-repositories. (Phil Hagelberg)
  • Fix a race condition on printing during dependency resolution. (Phil Hagelberg)
  • Allow new templates to operate on existing directories with --force option. (Matthew Blair)
  • Fix search task to allow queries on multiple fields. (Colin Jones)
  • Fix a bug where errors in run task were mis-reported. (Gary Fredericks)
  • Report download progress of search indices. (Matthew Blair)
  • Protection from harmful :clean-targets settings. (Craig McDaniel)
  • Faster loading of help text. (David Grayson, Ryan Mulligan)
  • Add LEIN_SILENT option to suppress *info* output. (Phil Hagelberg)

2.3.4 / 2013-11-18

  • Suggest :exclusions to possibly confusing :pedantic? dependencies. (Nelson Morris, Phil Hagelberg)
  • Optionally look for snapshot templates in new task. (Travis Vachon)
  • Allow task chains to be declared without commas in project.clj. (Jean Niklas L'orange)
  • Support extra configurability in :pom-plugins. (Dominik Dziedzic)
  • Fix a bug where implicit :aot warning triggered incorrectly. (Jean Niklas L'orange)
  • Fix a bug where lein repl connect ignored port argument. (Toby Crawley)

2.3.3 / 2013-10-05

  • Add support for :uberjar-merge-with. (Marshall Bockrath-Vandegrift)
  • Better error message for -m arg in run task. (Aleksandar Simic)
  • Support stdin when using :eval-in :nrepl. (Phil Hagelberg)
  • Add directory entries to jar files. (Vadim Platonov)
  • Fix a bug where -main was hard-coded to initial directory. (Phil Hagelberg)

2.3.2 / 2013-08-19

  • Write .nrepl-port file for better tool interoperability. (Phil Hagelberg)
  • Support targeted upgrades in lein.bat. (Shantanu Kumar)
  • Warn when projects rely on implicit AOT of :main. (Phil Hagelberg)
  • Fix a bug where implicit AOT of :main was disabled. (Phil Hagelberg)
  • Disable profile isolation by default. Will be back in 3.x. (Phil Hagelberg)

2.3.1 / 2013-08-13

  • Fix self-install bug. (Sam Aaron, Steven Harms)
  • Fix bug with AOT classes not being included in jars. (Phil Hagelberg)
  • Support disabling test task's monkeypatch of clojure.test. (Phil Hagelberg)
  • Allow project map to be readable. (Phil Hagelberg)

2.3.0 / 2013-08-08

  • Add :eval-in :pprint for debugging. (Phil Hagelberg)
  • Support cleaning extra dirs with :clean-targets. (Yoshinori Kohyama)
  • Test-selectors skip fixtures too, not just running tests. (Gary Fredericks)
  • Place licenses and readmes into jars. (Phil Hagelberg)
  • Include LICENSE as separate file in templates. (Wolodja Wentland)
  • Allow aborting on ambiguous version resolution with :pedantic. (Nelson Morris, Phil Hagelberg)
  • Scope :compile-path and :native-path under profile-specific target dir. (Phil Hagelberg)
  • Fix bug where uberjar filename would include provided profile. (Phil Hagelberg)
  • Deprecate explicit self-install command. (Phil Hagelberg)
  • Fix bugs around long lines in jar manifests. (Leon Barrett)
  • Support nested checkout dependencies. (Phil Hagelberg)
  • Fix bugs around :filespecs. (Jean Niklas L'orange)

2.2.0 / 2013-05-28

  • Support setting custom welcome message when repl connects. (Colin Jones)
  • Fix a bug where old template versions were always fetched. (Nelson Morris)
  • Support :java-agents for tooling and instrumenting. (Phil Hagelberg)
  • Allow checkout dependencies to operate recursively. (Phil Hagelberg)
  • Introduce :uberjar profile. (Phil Hagelberg)
  • Isolate target paths by profiles. (Phil Hagelberg)
  • Support deploying ad-hoc files. (Phil Hagelberg)
  • Set *command-line-args* in run task. (Anthony Grimes)
  • Allow templates to specify executable files. (Joe Littlejohn)
  • Remove clojuredocs repl support to reduce dependency conflicts. (Phil Hagelberg)

2.1.3 / 2013-04-12

  • Fix fast trampoline to work without user profiles. (Malcolm Sparks)
  • Fix a bug where duplicate files in jars would blow up. (Phil Hagelberg)
  • Fix a bug where cyclical dependencies could cause a crash. (Nelson Morris)
  • Allow aliases to have docstrings. (Jean Niklas L'orange)
  • Read credentials from GPG for mirrors. (bdollard)
  • Fix bugs in update-in around profiles and more. (Marko Topolnik)

2.1.2 / 2013-02-28

  • Add new way to specify no-proxy hosts. (Joe Littlejohn)
  • Allow TieredCompilation to be disabled for old JVMs. (Phil Hagelberg)
  • Fix a bug merging keywords in profiles. (Jean Niklas L'orange)
  • Fix a bug where tests wouldn't run under with-profiles. (Phil Hagelberg)
  • Support for calling set! on arbitrary vars on startup. (Gary Verhaegen)
  • Allow update-in to work on top-level keys. (Marko Topolnik)
  • Fix a bug breaking certain templates. (Colin Jones)
  • Fix a bug where trampolined repl would hang. (Marko Topolnik)

2.1.1 / 2013-03-21

  • Add :test-paths to directories shared by checkout deps. (Phil Hagelberg)
  • Allow 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.1.0 / 2013-03-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)
  • Allow lein test to take files as arguments (Gabriel Horner)

2.0.0 / 2013-01-19

  • Allow implicit repl profiles to be overridden.
  • Accept :main as an alias for -m in run task.
  • 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)
  • Treat :user profile as project map outside of project. (Jean Niklas L'orange)

2.0.0-RC2 / 2013-01-12

  • Fix bug where newnew wouldn't be loaded from outside a project.
  • Fix Windows bug in project generation.
  • Fix lein upgrade bug.

2.0.0-RC1 / 2013-01-10

  • 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.
  • Add :only test selector. (Anthony Grimes)
  • Support partial application for test selectors. (Anthony Grimes)
  • Un-deprecate :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-preview10 / 2012-08-25

  • Fix a bug where repositories wouldn't be checked running outside a project.
  • Make repl listen on instead of localhost to address IPv6 issues.

2.0.0-preview9 / 2012-08-24

  • 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)
  • Fix :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-preview8 / 2012-08-16

  • Place SCM revision in 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)
  • Support 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
  • Honor $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-preview7 / 2012-06-27

  • 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.
  • Emit doc/ in new project templates.
  • Allow :scm to be set in project.clj for pom inclusion. (Florian Anderiasch)
  • Fix a bug where dependency :classifier and :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-preview6 / 2012-06-01

  • 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-preview5 / 2012-05-31

  • 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-preview4 / 2012-05-11

  • 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-preview3 / 2012-04-12

  • Add HTTP nREPL support for repl task via :connect option. (Chas Emerick, Phil Hagelberg)
  • Improve repl startup time, output consistency, Windows support. (Lee Hinman, Colin Jones)
  • 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-preview2 / 2012-03-08

  • Honor :default and :user profiles when running outside a project.
  • Fix a bug where subtask help wasn't showing.

2.0.0-preview1 / 2012-03-07

  • 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, Nelson Morris)
  • 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.1 / 2012-03-27

  • 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.7.0 / 2012-02-06

  • 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)

1.6.2 / 2011-11-11

  • 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 instead of Ant.
  • Separate LEIN_JVM_OPTS from JVM_OPTS. / 2011-09-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.1 / 2011-07-06

  • 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.6.0 / 2011-06-29

  • 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 repositories.
  • Remove user/*classpath* var.
  • Support :extra-classpath-dirs in project.clj.

1.5.2 / 2011-04-13

  • 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.1 / 2011-04-12

  • 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.5.0 / 2011-03-22

  • 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 and :regex-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.2 / 2010-12-31

  • 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.1 / 2010-12-16

  • 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.4.0 / 2010-12-02

  • 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 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.1 / 2010-09-07

  • 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.3.0 / 2010-08-19

  • 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
  • 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. (Alex Ott)
  • 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.2.0 / 2010-07-18

  • 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 file for introductory concepts.

1.1.0 / 2010-02-16

  • 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.1 / 2009-12-10

  • 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.

1.0.0 / 2009-12-05

  • 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,, 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.

0.5.0 / 2009-11-17

  • Initial release!