- Fix TNS-56: Don't consider :as-alias as a load dependency for namespaces
- Fix TNS-51: Support namespaces as strings in require statements for CLJS
- Fix TNS-57: Support :require-macros for CLJS namespaces
- tools.reader version 1.3.6
- tools.reader version 1.3.4
- No changes from previous
-
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
- Released as non-alpha, still some known issues to fix in future.
- Fix TNS-47: Always use canonical directory paths when searching for files.
-
Ignore
:require-macros
and:use-macros
when 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-data
from 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
.clj
and.cljc
files, dependencies may be read from either, when it should prefer the.clj
file.
-
Fix TNS-38: ignore circular dependency from
.cljs
file to.clj
file in:require-macros
-
tools.reader version 0.10.0
-
java.classpath version 0.2.3
-
Add
clojure.tools.namespace.parse/name-from-ns-decl
-
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 (
.cljs
and.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-decl
no longer returnsnil
on syntax errors. Instead, exceptions are allowed to propagate up from tools.reader. This change only affects code which callsread-ns-decl
directly. 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
- TNS-34 Allow reader conditionals in parsed source files
- Widen existing functions to handle both clj and cljc files in advance of reader conditional support in Clojure 1.7.
-
Fix TNS-20: Undefined 'unload' order after namespaces are first added to an new, empty tracker.
-
Improvement TNS-21: Support
ns
clauses which use vectors instead of lists for clauses, contrary to docs. -
Improvement TNS-32: Support
ns
clauses which use symbols as clause heads instead of keywords, contrary to docs.
-
Improvement TNS-31: Specific error message when
:after
symbol passed torefresh
cannot be resolved. -
Fix TNS-26: namespace alias recovery after failed reload did not work due to local binding shadowing global Var
- 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.
-
clojure.tools.namespace.parse/read-ns-decl
asserts that its argument is a PushbackReader, instead of silently returning nil -
Fix TNS-22: broken
clojure.string/replace
with Windows path separator
-
New
clojure.tools.namespace.repl/clear
empties 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-decl
should 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
ns
form 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?
-
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
- New: Attempt recovery of aliases/refers in REPL after error
-
New: Add
:after
option torefresh
-
New: Add
clojure.tools.namespace.move
-
Fix TNS-4, reflection warnings
-
Fix: Restore deprecated 0.1.x APIs in
clojure.tools.namespace
-
Fix TNS-3, actually use
refresh-dirs
-
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
- Fix TNS-1 Workaround for Clojure 1.2 reader bug
- Fix: Eliminate reflection warnings
- Source-compatible with clojure.contrib.find-namespaces in old clojure-contrib 1.2.0