Clojure
Tools Releases

Tools Releases

The Clojure command line tools can be used to start a Clojure repl, use Clojure and Java libraries, and start Clojure programs.

Installation and Docs

For more information see the following docs:

Releases

Recent official releases are described here. Prereleases and older versions can be found in the repo changelog.

1.11.2.1446 (Mar 8, 2024)

  • Update default Clojure version to 1.11.2

  • Clojure -X:deps programs that create a basis now take a :dir option for the directory context to use

  • Updated tools.deps, tools.deps.cli to latest

1.11.1.1435 (Jan 3, 2024)

  • TDEPS-238 - deps.edn files are now validated against specs

  • TDEPS-239 - treat empty deps.edn file as {}

  • Updated several dependencies

1.11.1.1429 (Dec 4, 2023)

  • Roll back Maven resolver dep updates from 1.11.1.1420

1.11.1.1420 (Dec 4, 2023)

  • TDEPS-119 Unable to start CLI in write-protected project directory

  • TDEPS-256 create-basis - when different project dir is specified, should be used to resolve relative local deps

  • Update all dependencies to latest versions

1.11.1.1413 (Aug 26, 2023)

  • No changes

1.11.1.1409 (Aug 25, 2023)

  • No changes

1.11.1.1405 (Aug 22, 2023)

  • CLI releases on GitHub now have .sha256 files for the binaries

1.11.1.1386 (Aug 14, 2023)

1.11.1.1347 (May 31, 2023)

  • With -X or -T accept - as a trailing argument to read the remainder of args from stdin

  • On windows installer, hide progress bar on download

  • TDEPS-247 - Fix StackOverflow on deps with big fan-out

  • TDEPS-249 - Properly push/pop thread bindings during dep expansion

  • TDEPS-227 - Shut down dep expansion threads at end of resolve-deps

  • TDEPS-248 - Make tags return known tags when offline

  • Use tools.deps 0.18.1354

1.11.1.1273 (Apr 3, 2023)

  • Fix regression in -Spom

  • Updated help to include -X:deps mvn-pom rather than -Spom (which will eventually go away)

  • Use tools.deps 0.18.1335

1.11.1.1267 (Mar 31, 2023)

  • TDEPS-245 - Fix error in -X:deps find-versions with an uncanonicalized lib name

  • Use tools.deps 0.18.1331

1.11.1.1262 (Mar 27, 2023)

  • Make local deps version comparable based on path

  • Use tools.deps 0.18.1317

1.11.1.1257 (Mar 15, 2023)

1.11.1.1252 (Mar 6, 2023)

  • Switch to passing exec args via the basis :argmap

  • Function execution protocol support for -X/-T

  • Use tools.deps 0.17.1297

1.11.1.1237 (Feb 27, 2023)

  • Added env var that can be set to temporarily allow support for http repos: CLOJURE_CLI_ALLOW_HTTP_REPO

  • Remove deprecated support for -R and -C

  • Clean up help text around repl supporting init-opts

  • Use tools.deps 0.16.1285

1.11.1.1224 (Feb 12, 2023)

  • Fix issue with git tag verification for repos with a large number of tags

  • TDEPS-235 - Disallow http :mvn/repos

  • TDEPS-236 - Add rlwrap -m to clj for multiline editing

1.11.1.1208 (Dec 11, 2022)

  • TDEPS-234 - Always include -XX:-OmitStackTraceInFastThrow by default

  • Use tools.deps 0.16.1264

1.11.1.1200 (Nov 14, 2022)

  • Added support in :mvn/repos map to set release and snapshot policies

  • TDEPS-101 Output repo policies in -Spom and -X:deps mvn-pom

  • Use tools.deps.alpha 0.15.1254

1.11.1.1189 (Nov 2, 2022)

  • TDEPS-233 bash script fixes from stale jar check changes

  • Add some missing items on help and man page

1.11.1.1182 (Oct 26, 2022)

  • TDEPS-70 - Detect missing jar in classpath and download automatically

  • TDEPS-232 - Add generic posix installer

  • TDEPS-200 - Clean up default user deps.edn

  • TDEPS-219 Fixed -X:deps find-versions doesn’t find Maven versions that start with a letter

  • Add :n option to -X:deps find-versions and default to 8

  • During -X:deps prep, use :exec-args of alias being prepped, if present

  • During -X:deps prep, also prep current project if needed add :current flag to prep current project, default=false

  • Fix bad invocation of deps/prep-libs! in clojure.tools.cli.api/prep

  • Improve error message when local dep directory is missing

  • For downstream tools, added new well-known location to look up latest stable tools release

  • Use tools.deps.alpha 0.15.1244

1.11.1.1165 (Sep 18, 2022)

  • TDEPS-165 Use the env var CLJ_JVM_OPTS to pass JVM properties to the internal classpath building process

  • Add support to include the common JAVA_OPTS env var as JVM properties in user program execution

1.11.1.1155 (Aug 5, 2022)

  • TDEPS-228 Add support for auto inferred Sourcehut git urls

  • Update aws-api, Maven, etc dep versions

  • Use tools.deps.alpha 0.14.1222

1.11.1.1149 (Jun 21, 2022)

  • clj -Ttools install-latest - refine how versions are filtered, sorted, and newest selected

  • Update to tools.tools v0.2.8

  • Use tools.deps.alpha 0.14.1212

1.11.1.1139 (Jun 16, 2022)

  • Add clj -Ttools install-latest api function, examples:

  • Install tool: clj -Ttools install-latest :lib io.github.clojure/tools.deps.graph :as graph

  • Update tool: clj -Ttools install-latest :tool graph

  • Fix regression with clj -X:deps find-versions from 1.11.1.1119

  • Output from clj -X:deps find-versions now provides :git/tag and :git/sha

  • Update to tools.tools v0.2.6

  • Use tools.deps.alpha 0.14.1205

1.11.1.1129 (Jun 14, 2022)

  • Fix directory context of -X:deps prep with transitive local deps

  • Use tools.deps.alpha 0.14.1194

1.11.1.1124 (Jun 11, 2022)

1.11.1.1119 (Jun 9, 2022)

  • TDEPS-213 - Add -X:deps aliases to list available aliases

  • TDEPS-226 - More nunanced error handling for s3 downloads

  • Better error message when git url can’t be inferred

  • Use tools.deps.alpha 0.14.1185

1.11.1.1113 (Apr 25, 2022)

1.11.1.1105 (Apr 5, 2022)

  • Default to Clojure 1.11.1 if no Clojure version specified

1.11.0.1100 (Mar 28, 2022)

  • Default to Clojure 1.11.0 if no Clojure version specified

  • TDEPS-153 Fix concurrency issues in Maven artifact downloads

1.10.3.1087 (Feb 28, 2022)

  • Fix error message when git url missing or not inferred

  • Pass :exec-fn and :exec-args to -X/-T even when using -Scp

  • TDEPS-222 Make Clojure dependency in pom a compile dependency, not provided

  • TDEPS-203 In -X:deps prep - now takes basis settings, including aliases

  • TDEPS-197 -X:deps git-resolve-tags - now resolves to :git/tag and :git/sha

  • -X:deps tree - now takes basis settings

  • -X:deps mvn-pom - now takes basis settings

  • -X:deps list - put license abbreviation list in a resource and load on demand

  • Use tools.deps.alpha 0.12.1158

1.10.3.1075 (Feb 2, 2022)

  • TDEPS-216 - Built-in :deps alias should remove project paths from classpath

  • Improve error if git sha is not found in git repo

  • Improve prep error if transtive dep’s prep function is unresolvable

  • Bump AWS deps to latest versions

  • Use tools.deps.alpha 0.12.1135

1.10.3.1069 (Jan 26, 2022)

  • Update some Maven transitive deps to address some CVEs

  • Update to tools.tools v0.2.5

  • Add check to error on invocation of multiple exec functions

  • Use tools.deps.alpha 0.12.1120

1.10.3.1058 (Jan 5, 2022)

  • TDEPS-207 Fix deadlock in version range resolution

  • TDEPS-215 Fix race condition during parallel loading of s3 transporter

  • Don’t track local deps.edn manifest for caching if deps project doesn’t have one

  • Update maven-core to 3.8.4, aws libs, tools.build, tools.tools to latest

  • Use tools.deps.alpha 0.12.1109

1.10.3.1040 (Dec 1, 2021)

  • Add clj -X:deps list for listing the full transitive set of deps and their license info - see docs

  • Improved error handling for unknown tool with -T or -X:deps find-versions

  • Use tools.deps.alpha 0.12.1084

1.10.3.1029 (Nov 8, 2021)

1.10.3.1020 (Nov 5, 2021)

  • TDEPS-83 Invalidate classpath cache when local dep manifests change

  • Add new clj -X:deps list program to list the full lib set on the classpath, see API docs for more info

  • Bump deps to more recent versions - aws-api, jetty-client, etc

  • Clean up exception handling for -X/-T

  • Use tools.deps.alpha 0.12.1067

1.10.3.998 (Oct 26, 2021)

  • Remove bottle :unneeded from brew formulas (no longer needed)

  • TDEPS-209 Include only jar files in classpath from Maven artifacts

  • Update to tools.tools v0.2.1 (minor improvements in clj -Ttools list)

  • Use tools.deps.alpha 0.12.1058

1.10.3.986 (Sep 22, 2021)

  • Fix nested session cache computation for local pom model building

  • Use tools.deps.alpha 0.12.1048

1.10.3.981 (Sep 21, 2021)

  • Update to latest AWS API libs

  • Downgrade Maven resolver libs to better match Maven core libs

  • Use tools.deps.alpha 0.12.1041

1.10.3.967 (Sep 1, 2021)

  • Refine exec exceptions for missing namespace vs missing function in namespace

  • Replace Maven-based build process with tools.build

  • Compile entry points in tools.deps used for building classpaths for performance

  • Use tools.deps.alpha 0.12.1036

1.10.3.943 (Aug 13, 2021)

  • TDEPS-199 Use default http-client in S3 transporter

  • Cache S3 transporter for a repo

  • Fixed session cache to work properly across threads / binding stacks for better perf

  • Replace specific maven version range requests with non-range request to reduce repo metadata lookups

  • Load and cache Maven settings once for perf

  • Cache version range resolution results for perf

  • Use tools.deps.alpha 0.12.1019

1.10.3.933 (July 28, 2021)

  • deps.edn

    • git deps

      • If a git library name follows the repo convention names, the :git/url can now be inferred (:git/url can also be specified explicitly and takes precedence)

      • :git/tag and prefix :git/sha can now be specified instead of the full sha. Both must point to the same commit.

      • :sha has been renamed to :git/sha but the original is still supported for backwards compatibility

    • :deps/prep-lib - a new top-level key can be used to say how a source lib should be prepared before being added to the classpath. This key’s value is a map with :alias, :fn, and :ensures. See prep docs for more info.

    • :tools/usage - a new top-level key can be used to provide the :ns-default and :ns-aliases context for a tool

  • Tools - git-based programs that can be installed with a local name. Tools can provide their own usage context in deps.edn.

    • Added new auto-installed tool named tools with functions install, list, remove. See reference.

    • Install a tool with clojure -Ttools install <lib> <coord> :as <toolname>

    • Run a tool with clojure -T<toolname> fn (also takes -X style args)

  • Clojure CLI

    • New -T option is like -X (executes a function) but does not use the project classpath, instead uses tool classpath (and adds :paths ["."] by default). -T:aliases is otherwise same as -X. -Ttoolname resolves named tool by name and uses that tool lib.

    • TDEPS-198 - -X and -T will not wait to exit if futures/agents have been used

    • TDEPS-182 - Improve deprecation messages to be more accurate

    • TDEPS-183 - Fix -Sdescribe output to be valid EDN on Windows

    • TDEPS-179 - Fix incorrect classpath when :classpath-overrides removes path

    • Delay computation of local-repo path (don’t compute at load time)

    • Use tools.deps.alpha 0.12.1003

  • New -X:deps programs:

    • find-versions - to find versions of Maven or git libs or tools

    • prep - use to prep source libs

    • help/dir - to list available functions in a tool namespace

    • help/doc - to list docs for a tool namespace or function

Read more at Source Libs and Builds.

1.10.3.855 (May 25, 2021)

  • Fix in applying :jvm-opts with -X execution on Windows

1.10.3.849 (May 21, 2021)

  • Adds support for a trailing map of kvs in -X calls (similar to Clojure 1.11 trailing map to vararg calls)

  • Updates all Maven deps to latest (maven-resolver 1.7.0, maven core 1.8.3) to address these security concerns

    • CVE-2020-13956 - bumps deps on Apache HttpClient used by Maven

    • CVE-2021-26291 - potential security problems regarding Maven repositories:

      • Due to the possibility of MITM (man in the middle) attacks, http repo access is now blocked by default. tools.deps/Clojure CLI has always used https repos in the default repository list (central and clojars), so this mostly impacts any explicit http repositories defined in deps.edn

      • Concerns over the "hijacking" of repository urls by transitive pom deps (or their super poms) to download artifacts from malicious repos. Maven made no changes here, but did clarify how repos are resolved on this page. From a deps perspective, we only use repositories declared in the top-level deps.edn (if transitive deps need a custom repo, you will need to add it at top-level too). For tools.deps use of pom dependencies, we are providing the repos of the top deps.edn file (which should always put Maven Central and Clojars first), then deferring to Maven for the rest.

  • Use tools.deps.alpha 0.11.922

1.10.3.839 (May 12, 2021)

  • Fix Linux installer breakage in 1.10.3.833

1.10.3.833 (May 11, 2021)

  • TDEPS-177 - Fix Maven mirrors to look up by id, not name

  • Remove flag when fetching git deps so that older git versions work

  • Tweak some warning messages

  • Clean up scripts to simplify variable replacement

  • Use tools.deps.alpha 0.11.918

1.10.3.822 (Apr 3, 2021)

  • Fix issue with git deps where new commits on branches were not fetched

1.10.3.814 (Mar 16, 2021)

  • git deps: switch from using jgit to shelling out to git (must be git >= 2.5)

    • New env vars for control:

      • GITLIBS_COMMAND - command to invoke when shelling out to git, default = git

      • GITLIBS_DEBUG - set to true to print git commands and output to stderr, default = false

  • Made git fetch only when shas can’t be resolved to improve performance

  • Bump dep versions for tools.cli and aws api to latest

  • Use tools.deps.alpha 0.11.905

1.10.2.796 (Feb 23, 2021)

  • Fix clj -X:deps git-resolve-tags to update the sha to match the tag

  • Perf improvements for git or local deps using pom.xml

  • Use tools.deps.alpha 0.9.884

1.10.2.790 (Feb 19, 2021)

  • Add -version and --version options

  • TDEPS-56 - Fix main-opts and jvm-opts word splitting on spaces

  • TDEPS-125 - Use JAVA_CMD if set (thanks Gregor Middell!)

  • Add warning if :paths or :extra-paths refers to a directory outside the project root (in the future will become an error)

  • Use tools.deps.alpha 0.9.871

1.10.2.774 (Jan 26, 2021)

  • Improve error when git dep version relationship can’t be determined

  • Switch to 1.10.2 for default Clojure version

  • Use tools.deps.alpha 0.9.863

1.10.1.763 (Dec 10, 2020)

  • Set exit code for -X ex-info error

  • Sync up cli syntax for aliases in help

  • Use tools.deps.alpha 0.9.857

1.10.1.754 (Dec 7, 2020)

  • New, more informative tree format for clj -Stree / clj -X:deps tree

  • Added options for use with clj -X:deps tree

  • Use tools.deps.alpha 0.9.857

1.10.1.739 (Nov 23, 2020)

  • Fix use of jdk profile activation in local deps with pom files

  • Fix error handling for -X to avoid double throw

  • Add error handling for -A used without an alias

  • Use tools.deps.alpha 0.9.840

1.10.1.727 (Oct 21, 2020)

  • Fix clj -X:deps tree adding tools.deps.alpha to tree

  • Fix clj -X:deps mvn-pom adding tools.deps.alpha to pom deps

  • Fix clj -X:deps git-resolve-tags not working

  • TDEPS-169 - Fix clj -X:deps mvn-install on jar to also install embedded pom

  • Fix clj -Spom not respecting dep modifications from -A (regression)

  • Use tools.deps.alpha 0.9.833

1.10.1.716 (Oct 10, 2020)

  • Make edn reading tolerant of unknown tagged literals

  • Update to latest dependencies for maven-resolver and aws-api

  • Use tools.deps.alpha 0.9.821

1.10.1.708 (Oct 7, 2020)

  • Fixes to handling transitive deps when newer versions of a dep are found in the dep expansion

  • TDEPS-168 - Improvements to -X error message handling

  • Use tools.deps.alpha 0.9.816

1.10.1.697 (Sept 25, 2020)

  • Added execution mode (-X)

  • Added prepare mode (-P)

  • Expanded main execution (-M) to support all argmap arguments

  • Added new argmap attributes for namespace resolution:

    • :ns-aliases and :ns-default

  • Added new clojure.tools.cli.api available via -X:deps alias:

    • clj -X:deps git-resolve-tags

    • clj -X:deps mvn-install

    • clj -X:deps mvn-pom

    • clj -X:deps tree

  • Deprecated -R, -C (use -X, -M, or -A instead)

  • Deprecated unqualified lib names in deps.edn (use fully qualified lib names)

  • Deprecated alias tool args :deps and :paths (use :replace-deps and :replace-paths)

  • Removed -O (use -X, -M, or -A)

  • Removed -Sresolve-tags (use -X:deps git-resolve-tags)

  • TDEPS-152 - Fixes to -Spom generation with srcDirectory

  • TDEPS-155 - Better error handling for bad coordinates

  • TDEPS-167 - Handle absolute resource paths in pom deps

  • Use tools.deps.alpha 0.9.810

1.10.1.561 (July 17, 2020)

  • Rework exclusion handling when exclusion sets differ for same lib/version

  • Use tools.deps.alpha 0.8.709

1.10.1.547 (June 11, 2020)

  • (Windows) Write -Spath to output, not to host

  • TDEPS-152 - Fix bad addition of srcDirectory in pom gen

  • TDEPS-155 - Add error checking for missing :mvn/version

  • Use tools.deps.alpha 0.8.695

1.10.1.536 (Feb 28, 2020)

  • Release automation work, no tool changes

1.10.1.510 (Feb 14, 2020)

  • TDEPS-150 - Fix regression in supporting -Scp flag (avoid resolving deps)

  • TDEPS-148 - Fix incorrect path resolution for git/local dep without deps.edn

  • Use tools.deps.alpha 0.8.677