Change Log for tools.namespace
January 2, 2026 ยท View on GitHub
1.x series
Version 1.5.1
- Update parent pom and dependency versions
Version 1.5.0
- Update parent pom and dependency versions
Version 1.4.5
- Fix TNS-58: Split refresh logic into scan and refresh-scanned so scan can be called separately
Version 1.4.4
- Fix TNS-59: Fix source files without namespace declaration in a jar file
Version 1.4.3
- Fix TNS-60: CCE on JarFile find
Version 1.4.2
- Fix TNS-59: Files without ns declaration throw on find operation
Version 1.4.1
- Fix TNS-55: Provide source file info in find functions
Version 1.4.0
Version 1.3.0
- Fix TNS-56: Don't consider :as-alias as a load dependency for namespaces
Version 1.2.0
- Fix TNS-51: Support namespaces as strings in require statements for CLJS
- Fix TNS-57: Support :require-macros for CLJS namespaces
Version 1.1.1
- tools.reader version 1.3.6
Version 1.1.0
- tools.reader version 1.3.4
Version 1.0.0
- No changes from previous
0.3.x series
Version 0.3.1
-
Fix TNS-54: update java.classpath dependency to fix issues on Java 9+
-
java.classpath version 0.3.0
-
tools.reader version 1.3.2
Version 0.3.0
- Released as non-alpha, still some known issues to fix in future.
Version 0.3.0-alpha4 on 25-Apr-2017
- Fix TNS-47: Always use canonical directory paths when searching for files.
Version 0.3.0-alpha3 on 5-Jan-2016
-
Ignore
:require-macrosand:use-macroswhen parsing namespace dependencies. This is a change in behavior from previous 0.3 alphas and is a more robust fix for TNS-38. tools.namespace currently only models one dependency graph at a time, so it treats Clojure and ClojureScript as separate worlds and will not attempt to analyze dependency relationships which cross that boundary. -
Fix TNS-40: do not catch exceptions in
c.t.n.file. Instead, catch and ignore only syntax exceptions (identified byex-datafrom tools.reader). This is a change in behavior from 0.3.0-alpha2 and 0.2. It should have minimal impact on users but make some errors (such as an incompatible version of tools.reader) more obvious. -
Known bugs not yet fixed: TNS-42 When the same namespace is defined in both
.cljand.cljcfiles, dependencies may be read from either, when it should prefer the.cljfile.
Version 0.3.0-alpha2 on 13-Nov-2015
-
Fix TNS-38: ignore circular dependency from
.cljsfile to.cljfile in:require-macros -
tools.reader version 0.10.0
-
java.classpath version 0.2.3
-
Add
clojure.tools.namespace.parse/name-from-ns-decl
Version 0.3.0-alpha1 on 14-Aug-2015
-
Partial ClojureScript Support TNS-35
-
Platform-neutral namespaces were converted to conditional-read (
.cljc) files: c.t.n.dependency, c.t.n.track, and c.t.n.parse. These namespaces can be used in ClojureScript programs. -
Added support for finding, parsing, and analyzing ClojureScript source files (
.cljsand.cljc) in c.t.n.file, c.t.n.parse, c.t.n.dir, and c.t.n.find with optional "platform" arguments. These namespaces still only run on the Clojure(JVM) platform. -
Reloading and interactive features remain Clojure(JVM) only for now: c.t.n.move, c.t.n.reload, and c.t.n.repl
-
Uses tools.reader for platform-independent parsing and conditional-reader support.
-
-
Minimum Clojure version is 1.7.0
-
Breaking change:
c.t.n.parse/read-ns-declno longer returnsnilon syntax errors. Instead, exceptions are allowed to propagate up from tools.reader. This change only affects code which callsread-ns-decldirectly. c.t.n.file and c.t.n.find will catch and ignore reader exeptions when trying to read namespace declarations. -
Enhancement TNS-36: Use java.classpath for better JVM classpath resolution
-
Possible breaking change: parse/read-ns-decl does not capture reader errors
-
Some definitions deprecated; see source code or Var metadata for details.
-
Adds dependency on java.classpath
0.2.x series
Version 0.2.11 on 19-Jun-2015
- TNS-34 Allow reader conditionals in parsed source files
Version 0.2.10 on 26-Feb-2015
- Widen existing functions to handle both clj and cljc files in advance of reader conditional support in Clojure 1.7.
Version 0.2.9 on 31-Jan-2015
-
Fix TNS-20: Undefined 'unload' order after namespaces are first added to an new, empty tracker.
-
Improvement TNS-21: Support
nsclauses which use vectors instead of lists for clauses, contrary to docs. -
Improvement TNS-32: Support
nsclauses which use symbols as clause heads instead of keywords, contrary to docs.
Version 0.2.8 on 19-Dec-2014
-
Improvement TNS-31: Specific error message when
:aftersymbol passed torefreshcannot be resolved. -
Fix TNS-26: namespace alias recovery after failed reload did not work due to local binding shadowing global Var
Version 0.2.7 on 19-Sept-2014
- Revert bad commit mistakenly included in 0.2.6 which could cause the tracker's 'unload' order to be incorrect. See discussion at TNS-20.
BROKEN Version 0.2.6 on 7-Sept-2014 DO NOT USE
-
clojure.tools.namespace.parse/read-ns-declasserts that its argument is a PushbackReader, instead of silently returning nil -
Fix TNS-22: broken
clojure.string/replacewith Windows path separator
Version 0.2.5 on 15-Jul-2014
-
New
clojure.tools.namespace.repl/clearempties the state of the REPL dependency tracker. This can help repair the dependency tracker after a failed load or a circular dependency error. -
Enhancement TNS-19:
deps-from-ns-declshould return an empty set instead of nil. This may be a breaking change for some but is consistent with the original docstring. -
Enhancement TNS-18: Compute transitive dependencies in linear time.
-
Enhancement TNS-17: The
nsform doesn't need to be the first top-level form in a file. -
Fix TNS-16: Don't depend on specific hash ordering in tests. Exposed by new hash functions in Clojure 1.6.0.
-
Fix TNS-15: Handle spaces in classpath directories (old
clojure.tools.namespace) -
Fix TNS-12: Duplicate definition of
jar-file?
Version 0.2.4 on 19-Jul-2013
-
Fix TNS-10: Forbid circular dependency when a namespace depends on itself
-
Fix TNS-8: In
move-ns, do not modify files whose contents does not change
Version 0.2.3 on 01-Apr-2013
- New: Attempt recovery of aliases/refers in REPL after error
Version 0.2.2 on 14-Dec-2012
-
New: Add
:afteroption torefresh -
New: Add
clojure.tools.namespace.move -
Fix TNS-4, reflection warnings
Version 0.2.1 on 26-Oct-2012
-
Fix: Restore deprecated 0.1.x APIs in
clojure.tools.namespace -
Fix TNS-3, actually use
refresh-dirs
BROKEN Version 0.2.0 on 05-Oct-2012 DO NOT USE
-
Not recommended for use: this release introduced breaking API changes (renaming core namespaces and functions) without backwards-compatibility. Applications with dependencies on both the 0.2.x and 0.1.x APIs cannot use this version.
-
New dependency tracking & reloading features
-
Eliminate dependency on java.classpath
0.1.x series
Version 0.1.3 on 24-Apr-2012
- Fix TNS-1 Workaround for Clojure 1.2 reader bug
Version 0.1.2 on 10-Feb-2012
- Fix: Eliminate reflection warnings
Version 0.1.1 on 18-May-2011
Version 0.1.0 on 24-Apr-2011
- Source-compatible with clojure.contrib.find-namespaces in old clojure-contrib 1.2.0