Skip to content

Commit 8913742

Browse files
vemvbbatsov
authored andcommitted
Restore 1.9 compat, drop 1.8 compat
1.8 compat, while it was intended to be, was broken for a possibly very long time. The reason being, the CI matrix as introduced in 1016f61 was broken: CircleCI set `VERSION`, while the Makefile expected `CLOJURE_VERSION`. So, surely, progressively factual support degraded. This commits fixes 1.9 compatibility and ensures that the CI matrix runs as intended. Closes #836
1 parent d880ffc commit 8913742

File tree

9 files changed

+52
-64
lines changed

9 files changed

+52
-64
lines changed

.circleci/config.yml

+5-21
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ jobs:
122122
type: steps
123123
executor: openjdk11
124124
environment:
125-
VERSION: "1.10"
125+
CLOJURE_VERSION: "1.10"
126126
steps:
127127
- checkout
128128
- with_cache:
@@ -156,7 +156,7 @@ jobs:
156156
type: string
157157
executor: << parameters.jdk_version >>
158158
environment:
159-
VERSION: << parameters.clojure_version >>
159+
CLOJURE_VERSION: << parameters.clojure_version >>
160160
PROJECT_VERSION: 999.99.9
161161
steps:
162162
- checkout
@@ -190,19 +190,11 @@ jobs:
190190
#
191191
# - run tests against the target matrix
192192
# - Java 8/11/16/...
193-
# - Clojure 1.8, 1.9, 1.10, master
193+
# - Clojure 1.9, 1.10, 1.11, master
194194
# - linter, eastwood and cljfmt
195195

196196
matrix_excludes: &matrix_excludes
197197
exclude:
198-
- jdk_version: openjdk8
199-
parser_target: "parser-next"
200-
clojure_version: "1.8"
201-
test_command: "test"
202-
- jdk_version: openjdk8
203-
parser_target: "parser"
204-
clojure_version: "1.8"
205-
test_command: "test"
206198
- jdk_version: openjdk8
207199
parser_target: "parser-next"
208200
clojure_version: "1.9"
@@ -235,14 +227,6 @@ matrix_excludes: &matrix_excludes
235227
parser_target: "parser"
236228
clojure_version: "master"
237229
test_command: "test"
238-
- jdk_version: openjdk8
239-
parser_target: "parser-next"
240-
clojure_version: "1.8"
241-
test_command: "smoketest"
242-
- jdk_version: openjdk8
243-
parser_target: "parser"
244-
clojure_version: "1.8"
245-
test_command: "smoketest"
246230
- jdk_version: openjdk8
247231
parser_target: "parser-next"
248232
clojure_version: "1.9"
@@ -284,7 +268,7 @@ workflows:
284268
matrix:
285269
alias: "plaintest_code"
286270
parameters:
287-
clojure_version: ["1.8", "1.9", "1.10", "1.11", "master"]
271+
clojure_version: ["1.9", "1.10", "1.11", "master"]
288272
jdk_version: [openjdk8, openjdk11, openjdk16, openjdk17]
289273
parser_target: ["parser-next", "parser", "legacy-parser"]
290274
test_command: ["test"]
@@ -300,7 +284,7 @@ workflows:
300284
matrix:
301285
alias: "smoketest_code"
302286
parameters:
303-
clojure_version: ["1.8", "1.9", "1.10", "1.11", "master"]
287+
clojure_version: ["1.9", "1.10", "1.11", "master"]
304288
jdk_version: [openjdk8, openjdk11, openjdk16, openjdk17]
305289
parser_target: ["parser-next", "parser", "legacy-parser"]
306290
test_command: ["smoketest"]

doc/modules/ROOT/pages/compatibility.adoc

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ by Oracle.
99

1010
== Clojure
1111

12-
`cider-nrepl` targets Clojure 1.8+. As Clojure doesn't have the concept of supported releases
12+
`cider-nrepl` targets Clojure 1.9+. As Clojure doesn't have the concept of supported releases
1313
we have to get a bit creative to determine the minimum version to target.
1414

1515
The minimum required Clojure version is currently derived using data
@@ -80,6 +80,11 @@ requirements were bumped to nREPL 0.6 in recent versions.
8080
| 1.8
8181
| 0.6
8282

83+
| 0.45.0
84+
| 8
85+
| 1.9
86+
| 1.0.0
87+
8388
|===
8489

8590
== Backwards Compatibility

doc/modules/ROOT/pages/usage.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
== Prerequisites
44

5-
`cider-nrepl` supports only Clojure(Script) 1.8+ and Java 8+.
5+
`cider-nrepl` supports only Clojure(Script) 1.9+ and Java 8+.
66

77
Leiningen users will need to have version 2.8.3 or newer installed.
88
Boot users will need to have version 2.8.2 or newer installed.

project.clj

+4-9
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,10 @@
8585
[com.google.errorprone/error_prone_annotations "2.11.0"]
8686
[com.google.code.findbugs/jsr305 "3.0.2"]]
8787
:test-paths ["test/spec"]}
88-
89-
:1.8 {:dependencies [[org.clojure/clojure "1.8.0"]
90-
[org.clojure/clojurescript "1.10.520" :scope "provided"]
91-
[javax.xml.bind/jaxb-api "2.3.1" :scope "provided"]]}
92-
:1.9 {:dependencies [[org.clojure/clojure "1.9.0"]
93-
[org.clojure/clojurescript "1.10.520" :scope "provided"]
94-
[javax.xml.bind/jaxb-api "2.3.1" :scope "provided"]]
95-
;; TODO: Merge the tests in this dir in to test/clj once we
96-
;; drop support for Clojure 1.8
88+
:1.9 {:dependencies [[commons-logging/commons-logging "1.3.0"]
89+
[org.clojure/clojure "1.9.0"]
90+
[org.clojure/clojurescript "1.10.520" :scope "provided"]]
91+
;; TODO: Merge the tests in this dir in to test/clj
9792
:test-paths ["test/spec"]}
9893
:1.10 {:dependencies [[org.clojure/clojure "1.10.3"]
9994
[org.clojure/clojurescript "1.10.520" :scope "provided"]]

src/cider/nrepl/middleware/stacktrace.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
cause
8282
(when cause
8383
(recur (inc n)
84-
(ex-cause cause))))))]
84+
(some-> ^Throwable cause .getCause))))))]
8585
(if cause
8686
(t/send transport (middleware.inspect/inspect-reply* msg cause))
8787
(no-error msg))

src/cider_nrepl/plugin.clj

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[leiningen.core.main :as lein]))
88

99
(def minimum-versions {:lein "2.8.3"
10-
:clojure "1.8.0"})
10+
:clojure "1.9.0"})
1111

1212
(defn valid-version? [kind version] (lein/version-satisfies? version (minimum-versions kind)))
1313
(def valid-lein-version? (partial valid-version? :lein))
@@ -46,9 +46,9 @@
4646
(when-not lein-version-ok?
4747
(lein/warn "Warning: cider-nrepl requires Leiningen 2.8.3 or greater."))
4848
(when-not clojure-version-ok?
49-
(lein/warn "Warning: cider-nrepl requires Clojure 1.8 or greater."))
49+
(lein/warn "Warning: cider-nrepl requires Clojure 1.9 or greater."))
5050
(when clojure-excluded?
51-
(lein/warn "Warning: Clojure is excluded, assuming an appropriate fork (Clojure 1.8 or later) is provided."))
51+
(lein/warn "Warning: Clojure is excluded, assuming an appropriate fork (Clojure 1.9 or later) is provided."))
5252
(when-not (and lein-version-ok? clojure-version-ok?)
5353
(lein/warn "Warning: cider-nrepl will not be included in your project."))
5454

test/clj/cider/nrepl/middleware/inspect_test.clj

+29-23
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,18 @@
1616
(defn set-inspect-tap-current-value-test-atom-fn [x]
1717
(reset! inspect-tap-current-value-test-atom x))
1818

19+
(def tap?
20+
(resolve 'add-tap))
21+
1922
(defn inspect-tap-current-value-test-fixture [f]
20-
(add-tap set-inspect-tap-current-value-test-atom-fn)
23+
(when tap?
24+
((resolve 'add-tap) set-inspect-tap-current-value-test-atom-fn))
2125
(try
2226
(f)
2327
(finally
2428
(reset! inspect-tap-current-value-test-atom nil)
25-
(remove-tap set-inspect-tap-current-value-test-atom-fn))))
29+
(when tap?
30+
((resolve 'remove-tap) set-inspect-tap-current-value-test-atom-fn)))))
2631

2732
(use-fixtures :each session/session-fixture inspect-tap-current-value-test-fixture)
2833

@@ -549,27 +554,28 @@
549554
(session/message {:op "eval"
550555
:code "sub-map"}))))))))
551556

552-
(deftest inspect-tap-current-value-test
553-
(testing "inspect-tap-current-value taps the current inspector value"
554-
(session/message {:op "eval"
555-
:code "(def x (+ 3 4)))"})
556-
(session/message {:op "eval"
557-
:inspect "true"
558-
:code "x"})
559-
(session/message {:op "inspect-push"
560-
:idx 1})
561-
(session/message {:op "inspect-tap-current-value"})
562-
563-
(let [max-time 10000
564-
ms 50
565-
iterations (long (/ max-time ms))]
566-
(loop [i 0]
567-
(when (and (not= 7 @inspect-tap-current-value-test-atom)
568-
(< i iterations))
569-
(Thread/sleep ms)
570-
(recur (inc i)))))
571-
572-
(is (= 7 @inspect-tap-current-value-test-atom))))
557+
(when tap?
558+
(deftest inspect-tap-current-value-test
559+
(testing "inspect-tap-current-value taps the current inspector value"
560+
(session/message {:op "eval"
561+
:code "(def x (+ 3 4)))"})
562+
(session/message {:op "eval"
563+
:inspect "true"
564+
:code "x"})
565+
(session/message {:op "inspect-push"
566+
:idx 1})
567+
(session/message {:op "inspect-tap-current-value"})
568+
569+
(let [max-time 10000
570+
ms 50
571+
iterations (long (/ max-time ms))]
572+
(loop [i 0]
573+
(when (and (not= 7 @inspect-tap-current-value-test-atom)
574+
(< i iterations))
575+
(Thread/sleep ms)
576+
(recur (inc i)))))
577+
578+
(is (= 7 @inspect-tap-current-value-test-atom)))))
573579

574580
(deftest doc-fragments-test
575581
(when (contains? (info/info 'user `Thread/sleep)

test/common/cider_nrepl/plugin_test.clj

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
(binding [lein/*info* false]
1818
(with-redefs [lein/leiningen-version (constantly (plugin/minimum-versions :lein))]
1919
(testing "Valid Lein version; valid Clojure version"
20-
(let [project (plugin/middleware '{:dependencies [[org.clojure/clojure "1.8.0"]]})]
20+
(let [project (plugin/middleware '{:dependencies [[org.clojure/clojure "1.9.0"]]})]
2121
(is (contains-cider-nrepl-dep? project))
2222
(is (contains-cider-nrepl-middleware? project))))
2323

@@ -39,7 +39,7 @@
3939

4040
(with-redefs [lein/leiningen-version (constantly "2.5.1")]
4141
(testing "Invalid Lein version; valid Clojure version"
42-
(let [project (plugin/middleware '{:dependencies [[org.clojure/clojure "1.8.0"]]})]
42+
(let [project (plugin/middleware '{:dependencies [[org.clojure/clojure "1.9.0"]]})]
4343
(is (not (contains-cider-nrepl-dep? project)))
4444
(is (not (contains-cider-nrepl-middleware? project)))))
4545

test/smoketest/project.clj

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
:dependencies [[nrepl "1.0.0"]
33
[cider/cider-nrepl "RELEASE"]]
44
:exclusions [org.clojure/clojure]
5-
:profiles {:1.7 {:dependencies [[org.clojure/clojure "1.7.0"]]}
6-
:1.8 {:dependencies [[org.clojure/clojure "1.8.0"]]}
7-
:1.9 {:dependencies [[org.clojure/clojure "1.9.0"]]}
5+
:profiles {:1.9 {:dependencies [[org.clojure/clojure "1.9.0"]]}
86
:1.10 {:dependencies [[org.clojure/clojure "1.10.1"]]}
97
:1.11 {:dependencies [[org.clojure/clojure "1.11.1"]]}
108
:master {:repositories [["snapshots" "https://oss.sonatype.org/content/repositories/snapshots"]]

0 commit comments

Comments
 (0)