-
Notifications
You must be signed in to change notification settings - Fork 55
/
deps.edn
174 lines (144 loc) · 9.43 KB
/
deps.edn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
{:paths ["src" "resources"]
:deps {org.clojure/clojure {:mvn/version "1.8.0"}
org.clojure/tools.reader {:mvn/version "1.5.0"}}
:aliases {;; we use babashka/neil for project attributes
;; publish workflow references these values (and automatically bumps patch component of version)
:neil {:project {:version "1.1.49" ;; describes last release and is template for next release
:name rewrite-clj/rewrite-clj
;; not neilisms - could potentially conflict with new neilisms
:github-coords clj-commons/rewrite-clj}}
;;
;; Clojure versions we support
;;
:1.8 {:override-deps {org.clojure/clojure {:mvn/version "1.8.0"}}}
:1.9 {:override-deps {org.clojure/clojure {:mvn/version "1.9.0"}}}
:1.10 {:override-deps {org.clojure/clojure {:mvn/version "1.10.3"}}}
:1.11 {:override-deps {org.clojure/clojure {:mvn/version "1.11.4"}}}
:1.12 {:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}}
;;
;; ClojureScript version we test with (and support)
;;
:cljs {:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.132"}}}
;;
;; REPL to support bb dev-jvm & dev-cljs tasks, see script/dev_repl.clj
;;
:nrepl
{:extra-deps {nrepl/nrepl {:mvn/version "1.3.0"}
cider/cider-nrepl {:mvn/version "0.50.2"}}
:jvm-opts ["-XX:-OmitStackTraceInFastThrow"]}
:nrepl/jvm
{:extra-deps {refactor-nrepl/refactor-nrepl {:mvn/version "3.10.0"}}
:main-opts ["-m" "nrepl.cmdline"
"--middleware" "[refactor-nrepl.middleware/wrap-refactor cider.nrepl/cider-middleware]"
"-i"]}
:nrepl/cljs ;; note shadow-cljs does its own thing, this is for a REPL with
;; support for plain old ClojureScript
{:extra-deps {cider/piggieback {:mvn/version "0.5.3"}}
:main-opts ["-m" "nrepl.cmdline"
"--middleware" "[cider.nrepl/cider-middleware cider.piggieback/wrap-cljs-repl]"
"-i"]}
;;
;; Linting
;;
:lint-cache {:replace-paths ["src"]} ;; when building classpath we want to exclude resources
;; so we do not pick up our own clj-kondo config exports
:clj-kondo {:extra-deps {clj-kondo/clj-kondo {:mvn/version "2024.11.14"}}
:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:main-opts ["-m" "clj-kondo.main"]}
:eastwood {:extra-deps {jonase/eastwood {:mvn/version "1.4.3"}}
:main-opts ["-m" "eastwood.lint" {:source-paths ["src"]
:test-paths ["test"]
:add-linters [:performance]
;; not too worried about eastwood finding deprecation usages,
;; we rely on clj-kondo for that
:ignored-faults {:deprecations {rewrite-clj.regression-test true
rewrite-clj.zip.whitespace-test true
rewrite-clj.zip-test true}}}]}
;;
;; Test support
;;
:test-common {:extra-deps {org.clojure/test.check {:mvn/version "1.1.1"}}
:extra-paths ["test"]}
:test-isolated {:extra-paths ["test-isolated"]}
;; document block testing
:test-doc-blocks {:replace-deps {org.clojure/clojure {:mvn/version "1.12.0"}
com.github.lread/test-doc-blocks {:mvn/version "1.1.20"}}
:replace-paths []
:ns-default lread.test-doc-blocks
:exec-args {:docs ["doc/01-user-guide.adoc"
"doc/design/01-merging-rewrite-clj-and-rewrite-cljs.adoc"
"doc/design/namespaced-elements.adoc"
"src/rewrite_clj/node.cljc"]}}
:test-docs {:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:extra-paths ["target/test-doc-blocks/test"]}
;; kaocha for testing clojure versions>= v1.9
:kaocha {:extra-deps {lambdaisland/kaocha {:mvn/version "1.91.1392"}
lambdaisland/kaocha-junit-xml {:mvn/version "1.17.101"}
lambdaisland/kaocha-cloverage {:mvn/version "1.1.89"}}
:main-opts ["-m" "kaocha.runner"]}
;; cognitect test-runner for testing clojure < v1.9
;; (we prefer kaocha but it requires a min Clojure version of 1.9)
:clj-test-runner {:extra-deps {io.github.cognitect-labs/test-runner
{:git/tag "v0.5.1" :git/sha "dfb30dd"}}
:main-opts ["-m" "cognitect.test-runner"]}
;; figwheel for clojurescript testing during dev
:fig-test {:extra-deps {com.bhauman/figwheel-main {:mvn/version "0.2.18"}}
:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:extra-paths ["target" "test"]
:main-opts ["-m" "figwheel.main" "-b" "fig" "-r"]}
:cljs-test {:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.1"}}
:extra-paths ["test"]
:main-opts ["-m" "cljs-test-runner.main"]}
;; planck for Self-Hosted ClojureScript
:planck-test {:extra-paths ["target/cljsbuild/test/planck-none/gen"]}
;;
;; General script deps
;;
:script {:extra-paths ["script"]
:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:extra-deps {org.clojure/tools.namespace {:mvn/version "1.5.0"}
cli-matic/cli-matic {:mvn/version "0.5.4"}}}
:apply-import-vars {:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:extra-deps {metosin/malli {:mvn/version "0.16.4"}
io.aviso/pretty {:mvn/version "1.4.4"}}
:ns-default lread.apply-import-vars}
;;
;; Running tests under Graal
;;
;; We have two main Graal scenarios:
;; graal:sci-test - interpret tests via sci over natively compiled rewrite-clj
;; graal:native-test - natively compile src and tests and run
:graal {:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:extra-deps {com.github.clj-easy/graal-build-time {:mvn/version "1.0.5"}}}
:sci-test {:extra-paths ["target/generated/sci-test/src"]
:extra-deps {lread/sci-test {:git/url "https://github.com/lread/sci-test.git"
:sha "27318786f077d491c9cbc0c9d99e5781d9a9ef83"}}}
:native-test {:extra-paths ["target/generated/graal"]}
;; usage -M:sci-test:gen-reflection
:gen-reflection {:main-opts ["-m" "sci-test.generate-reflection-file"]}
;;
;; Deployment
;;
:build {:deps {io.github.clojure/tools.build {:mvn/version "0.10.5"}}
:extra-paths ["src" "build"]
:ns-default build}
;; keep deploy deps separate from build deps; this avoids `bb download-deps` failures on windows
;; when downloading jackson (and other conflicting) deps.
:deploy {:extra-deps {slipset/deps-deploy {:mvn/version "0.2.2"}}}
;;
;; Maintenance support
;;
:outdated {:extra-deps {com.github.liquidz/antq {:mvn/version "2.11.1250"}
org.slf4j/slf4j-simple {:mvn/version "2.0.16"} ;; to rid ourselves of logger warnings
}
:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:main-opts ["-m" "antq.core"
"--ignore-locals"
"--exclude=lambdaisland/[email protected]" ;; breaks clojure 1.9 compat, let's wait to see if that was intentional
"--exclude=lambdaisland/[email protected]" ;; https://github.com/lambdaisland/kaocha/issues/208
"--exclude=com.bhauman/[email protected]" ;; deployment was botched, some components missing
"--exclude=org.clojure/[email protected]" ;; no evidence yet that this is an official release
"--exclude=technomancy/[email protected]" ;; exclude for refactor-nrepl lib test
"--exclude=technomancy/[email protected]" ;; exclude for refactor-nrepl lib test
"--exclude=technomancy/[email protected]" ;; exclude for refactor-nrepl lib test
]}}}