I'm trying to build a workflow where i don't have to restart my repl as often. Boot seems to have the best story for this. However, i'm not sure what the edges are. For example, loading clj-time worked just fine, but trying to use datascript results in an error.
(boot.core/set-env! :dependencies '[[datascript "0.18.4"]])
(require '[datascript.core])
#error {}
:cause "namespace 'datascript.query' not found"
:via
[{:type clojure.lang.Compiler$CompilerException
:message "java.lang.Exception: namespace 'datascript.query' not found, compiling:(datascript/core.cljc:1:1)"
:at [clojure.core$throw_if doInvoke "core.clj" 5630]}
{:type java.lang.Exception
:message "namespace 'datascript.query' not found"
:at [clojure.core$load_lib doInvoke "core.clj" 5716]}]
:trace
[[clojure.core$load_lib doInvoke "core.clj" 5716]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invoke "core.clj" 632]
[clojure.core$load_libs doInvoke "core.clj" 5749]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invoke "core.clj" 632]
[clojure.core$require doInvoke "core.clj" 5832]
[clojure.lang.RestFn invoke "RestFn.java" 457]
[datascript.core$eval12743$loading__5340__auto____12744 invoke "core.cljc" 1]
[datascript.core$eval12743 invoke "core.cljc" 1]
[clojure.lang.Compiler eval "Compiler.java" 6782]
[clojure.lang.Compiler eval "Compiler.java" 6771]
[clojure.lang.Compiler load "Compiler.java" 7227]
[clojure.lang.RT loadResourceScript "RT.java" 371]
[clojure.lang.RT loadResourceScript "RT.java" 362]
[clojure.lang.RT load "RT.java" 446]
[clojure.lang.RT load "RT.java" 412]
[clojure.core$load$fn__5448 invoke "core.clj" 5866]
[clojure.core$load doInvoke "core.clj" 5865]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invoke "core.clj" 5671]
[clojure.core$load_lib$fn__5397 invoke "core.clj" 5711]
[clojure.core$load_lib doInvoke "core.clj" 5710]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invoke "core.clj" 632]
[clojure.core$load_libs doInvoke "core.clj" 5749]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invoke "core.clj" 632]
[clojure.core$require doInvoke "core.clj" 5832]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[drewv_verlees_discrete_optimization_tutorial$eval12739 invoke "NO_SOURCE_FILE" 31]
[clojure.lang.Compiler eval "Compiler.java" 6782]
[clojure.lang.Compiler eval "Compiler.java" 6745]
[clojure.core$eval invoke "core.clj" 3081]
[clojure.main$repl$read_eval_print__7099$fn__7102 invoke "main.clj" 240]
[clojure.main$repl$read_eval_print__7099 invoke "main.clj" 240]
[clojure.main$repl$fn__7108 invoke "main.clj" 258]
[clojure.main$repl doInvoke "main.clj" 258]
[clojure.lang.RestFn invoke "RestFn.java" 1523]
[nrepl.middleware.interruptible_eval$evaluate invoke "interruptible_eval.clj" 79]
[nrepl.middleware.interruptible_eval$interruptible_eval$fn__3845$fn__3849 invoke "interruptible_eval.clj" 142]
[clojure.lang.AFn run "AFn.java" 22]
[nrepl.middleware.session$session_exec$main_loop__3942$fn__3944 invoke "session.clj" 171]
[nrepl.middleware.session$session_exec$main_loop__3942 invoke "session.clj" 170]
[clojure.lang.AFn run "AFn.java" 22]
[java.lang.Thread run "Thread.java" 748]]