Accomplishes a number of things: cleaner test suite running, a more parallel CI matrix (with one job per Clojure version), and a cleaner experience for developing Eastwood (namely: being able to fire up a repl, run tests from the repl, etc without having Lein internals possibly interfering).
Importantly, it makes :eval-in dependent on an env var (sadly it cannot be set depending on a Lein profile). This makes dogfooding Eastwood possible, while also not coupling the choice of Clojure version to Lein's (otherwise either test-all or dogfooding would break).
Commit summary
CircleCI: use Lein 2.9.5
Make dogfooding pass
the dogfooding had been broken for at least some months - which the cleaned-up project.clj setup revealed
Make the test suite pass without the implicit dev profile
And particularly, without the leiningen-core dependency which makes it plausible that the test suite could be passing for fragile reasons.
Extract :warn-on-reflection profile
This way, one can opt to launch a repl process without *warn-on-reflection*, which can be noisy, in face of arbitrary deps outside our control.
Move leiningen.eastwood to its own source path
This way one can use tools.namespace (refresh) without needing the leiningen-core dependency to be present (which tends to be a bad practice in non-plugins)
project.clj :eastwood: remove :only-modified true
Because the Eastwood implementation can always change, caching linting results can easily cache past implementations' output, leading to false negatives.
Make the matrix fully parallel
Now the matrix is 2-dimensional (JVM + clojure version), which results in a faster feedback loop and cleaner output (vs. different test suites being rendered as a single CI job)
Closes https://github.com/jonase/eastwood/issues/354 Closes https://github.com/jonase/eastwood/pull/311/
Accomplishes a number of things: cleaner test suite running, a more parallel CI matrix (with one job per Clojure version), and a cleaner experience for developing Eastwood (namely: being able to fire up a repl, run tests from the repl, etc without having Lein internals possibly interfering).
Importantly, it makes
:eval-in
dependent on an env var (sadly it cannot be set depending on a Lein profile). This makes dogfooding Eastwood possible, while also not coupling the choice of Clojure version to Lein's (otherwise eithertest-all
or dogfooding would break).Commit summary
dev
profileleiningen-core
dependency which makes it plausible that the test suite could be passing for fragile reasons.:warn-on-reflection
profile*warn-on-reflection*
, which can be noisy, in face of arbitrary deps outside our control.leiningen.eastwood
to its own source path(refresh)
without needing the leiningen-core dependency to be present (which tends to be a bad practice in non-plugins):eastwood
: remove:only-modified true