Source-path discovery for the deps.edn entrypoint. Reads the project's deps.edn through the official tools.deps API and returns the merged :paths vector for the given alias selection. The Leiningen plugin does not use this; it gets paths from the lein project map.
clojure.tools.deps is resolved lazily inside create-basis rather than
required at namespace load. That keeps its heavyweight transitive graph
(maven-resolver, maven-core, cognitect-aws, jetty) off any classpath that
only loads this namespace without calling it -- specifically the Leiningen
plugin classloader, which loads this ns transitively (via skeptic.cli.main)
during self-analysis but never invokes deps.edn path discovery.
Eligibility filter: a discovered .clj/.cljc/.cljs file is sent to the worker iff every dep symbol in its ns-form's :require/:require-macros/ :use/:use-macros clauses is either a namespace defined by another in-project source file OR is resolvable as a classpath resource against a URLClassLoader built from the basis's full classpath. Rejection is closed under transitive project-internal requires: when G is rejected, every project file whose ns-form transitively requires G is also rejected. Rejected files never reach the worker and produce a :unresolvable-deps failure entry that becomes a ns-discovery-warning.
Source-path discovery for the deps.edn entrypoint. Reads the project's deps.edn through the official tools.deps API and returns the merged :paths vector for the given alias selection. The Leiningen plugin does not use this; it gets paths from the lein project map. `clojure.tools.deps` is resolved lazily inside `create-basis` rather than required at namespace load. That keeps its heavyweight transitive graph (maven-resolver, maven-core, cognitect-aws, jetty) off any classpath that only loads this namespace without calling it -- specifically the Leiningen plugin classloader, which loads this ns transitively (via skeptic.cli.main) during self-analysis but never invokes deps.edn path discovery. Eligibility filter: a discovered .clj/.cljc/.cljs file is sent to the worker iff every dep symbol in its ns-form's :require/:require-macros/ :use/:use-macros clauses is either a namespace defined by another in-project source file OR is resolvable as a classpath resource against a URLClassLoader built from the basis's full classpath. Rejection is closed under transitive project-internal requires: when G is rejected, every project file whose ns-form transitively requires G is also rejected. Rejected files never reach the worker and produce a :unresolvable-deps failure entry that becomes a ns-discovery-warning.
(ns-dependency-symbols ns-form)Given an ns-form (the raw (ns ...) list returned by the reader),
produce the deduped list of dep symbols across :require / :require-macros
/ :use / :use-macros clauses. Empty/malformed libspecs and libspecs
decorated with :as-alias contribute nothing. Public for the
depsedn-ns-dep-extraction facet.
Given an ns-form (the raw `(ns ...)` list returned by the reader), produce the deduped list of dep symbols across :require / :require-macros / :use / :use-macros clauses. Empty/malformed libspecs and libspecs decorated with `:as-alias` contribute nothing. Public for the depsedn-ns-dep-extraction facet.
(project-context root aliases)(project-context root aliases opts)Return the source paths and project classpath derived from one tools.deps basis for the selected aliases. opts (third arity) may carry :cljs-enabled? and :source-paths-override. :source-paths-override means the user supplied :paths in the CLI and discovery should walk those paths instead of the basis's source-paths; eligibility still uses the alias-selected basis.
Return the source paths and project classpath derived from one tools.deps basis for the selected aliases. opts (third arity) may carry :cljs-enabled? and :source-paths-override. :source-paths-override means the user supplied :paths in the CLI and discovery should walk those paths instead of the basis's source-paths; eligibility still uses the alias-selected basis.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |