deps.edn merge
This notebook demonstrates how to mount and use your Clojure projects but still pull in extra libraries that you might want to use in your runtime. We will pull in a library (see the Github component below) and also add compliment so that code completion is also available.
First approach
Here we simply add a toplevel deps.edn file that points to our library via :local/root and in which we also include compliment .
{:deps {compliment {:mvn/version "0.3.10"} codn/codn {:local/root "./codn"}}}(require [codn.parser.core :as parser])One can check that code completion is available for the libraries pulled in.
(parser/parse-string "(defn id [x] x)")I think this approach is suited when you want to pull in extra dependencies and maybe multiple libraries/projects via the Github mount that are independent of one another.
Second approach
In this approach we set the working directory of the runtime to /codn and also mount the deps2.edn below, under /root/.clojure/deps.edn . This takes advantage of the cross-project deps.edn configuration of the Clojure CLI. Be aware that the project (codn in our case) deps.edn takes precedence over the cross-project config.
{:deps {compliment {:mvn/version "0.3.10"}}}(require [codn.parser.core :as parser])(parser/parse-string "(defn id [x] x)")I think this approach is better suited if you are mainly working with one repository that might also have some resources that are necessary. This approach also lets one mount other Github repositories that are :local/root dependencies of your main repository. For this latter case the first approach will fail.