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