Skip to content

Commit 63a44e4

Browse files
authored
Dependency re-organization (#40)
* Remove clj-uuid dependency * Make dependency naming more consistent among sub-modules * Remove explicit Clojure dependencies * New dependency pattern; replace Kaocha with simpler test runners * Add missing build.clj
1 parent aa24bdb commit 63a44e4

File tree

16 files changed

+126
-179
lines changed

16 files changed

+126
-179
lines changed

Makefile

+11-2
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,20 @@ ci:
4242
$(MAKE) -C storage ci
4343
$(MAKE) -C converge ci
4444

45+
# Build
46+
47+
.PHONY: clean
48+
clean:
49+
$(MAKE) -C nippy clean
50+
$(MAKE) -C transit clean
51+
$(MAKE) -C storage clean
52+
$(MAKE) -C converge clean
53+
4554
# Project info
4655

4756
.PHONY: loc
4857
loc:
49-
$(MAKE) -C converge loc
50-
$(MAKE) -C storage loc
5158
$(MAKE) -C nippy loc
5259
$(MAKE) -C transit loc
60+
$(MAKE) -C storage loc
61+
$(MAKE) -C converge loc

converge/Makefile

+8-14
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ default: ci
2525
.PHONY: bootstrap
2626
bootstrap:
2727
-brew install clojure tokei
28-
wget "https://github.com/lambdaisland/funnel/releases/download/v0.1.42/funnel.darwin-amd64" -O bin/funnel
29-
chmod +x bin/funnel
3028

3129
.PHONY: outdated
3230
outdated:
@@ -65,28 +63,24 @@ cljs-dev: node_modules/.yarn-integrity shadow-start
6563

6664
.PHONY: clj-test
6765
clj-test: clean
68-
bin/kaocha unit-clj
69-
70-
.PHONY: cljs-test-harness
71-
cljs-test-harness: shadow-start
72-
bin/funnel
66+
clojure -T:build test :aliases [:clj]
7367

7468
.PHONY: cljs-test
7569
cljs-test: clean
76-
yarn shadow-cljs -A:test release test
77-
# open "http://localhost:8008"
78-
bin/kaocha unit-cljs
70+
yarn shadow-cljs -A:test compile ci
71+
yarn karma start --single-run
7972

8073
.PHONY: test
8174
test: clj-test cljs-test
8275

76+
.PHONY: clj-ci
77+
clj-ci: clj-test
78+
8379
.PHONY: cljs-ci
84-
cljs-ci: clean
85-
yarn shadow-cljs -A:test compile ci
86-
yarn karma start --single-run
80+
cljs-ci: cljs-test
8781

8882
.PHONY: ci
89-
ci: clj-test cljs-ci
83+
ci: clj-ci cljs-ci
9084

9185
BENCH_EDN_FILE:=../big-tree.edn
9286

converge/build.clj

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
(ns build
2+
(:refer-clojure :exclude [test])
3+
(:require [clojure.tools.build.api :as b] ; for b/git-count-revs
4+
[org.corfield.build :as bb]))
5+
6+
(def lib 'converge/converge)
7+
(def version (format "0.1.%s" (b/git-count-revs nil)))
8+
9+
(defn test "Run the tests." [opts]
10+
(bb/run-tests opts))
11+
12+
(defn ci "Run the CI pipeline of tests (and build the JAR)." [opts]
13+
(-> opts
14+
(assoc :lib lib :version version)
15+
(bb/run-tests)
16+
(bb/clean)
17+
(bb/jar)))
18+
19+
(defn install "Install the JAR locally." [opts]
20+
(-> opts
21+
(assoc :lib lib :version version)
22+
(bb/install)))
23+
24+
(defn deploy "Deploy the JAR to Clojars." [opts]
25+
(-> opts
26+
(assoc :lib lib :version version)
27+
(bb/deploy)))

converge/deps.edn

+14-10
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
;; See the License for the specific language governing permissions and
1313
;; limitations under the License.
14-
{:paths ["src" "resources"]
14+
{:paths ["src"]
15+
:deps
16+
{org.clojure/data.avl {:mvn/version "0.1.0"}
17+
juji/editscript {:mvn/version "0.5.7"}}
18+
1519
:aliases
1620
{:cljs
1721
{:extra-deps
@@ -31,17 +35,17 @@
3135
:test
3236
{:extra-paths ["test"]
3337
:extra-deps
34-
{lambdaisland/kaocha {:mvn/version "1.60.945"}
35-
lambdaisland/kaocha-cljs2 {:mvn/version "0.0.35"}
36-
org.clojure/test.check {:mvn/version "1.1.0"}}}
38+
{org.clojure/test.check {:mvn/version "1.1.0"}
39+
io.github.cognitect-labs/test-runner
40+
{:git/tag "v0.5.0" :git/sha "48c3c67"}}}
3741

3842
:bench
3943
{:extra-paths ["bench"]
4044
:extra-deps
41-
{criterium/criterium {:mvn/version "0.4.6"}}}}
45+
{criterium/criterium {:mvn/version "0.4.6"}}}
4246

43-
:deps
44-
{org.clojure/clojure {:mvn/version "1.10.3"}
45-
org.clojure/data.avl {:mvn/version "0.1.0"}
46-
juji/editscript {:mvn/version "0.5.7"}
47-
danlentz/clj-uuid {:mvn/version "0.1.9"}}}
47+
:build
48+
{:ns-default build
49+
:deps
50+
{io.github.seancorfield/build-clj
51+
{:git/tag "v0.5.2" :git/sha "8f75b81"}}}}}

converge/dev/user.clj

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
;; Copyright 2020 Evident Systems LLC
1+
22

33
;; Licensed under the Apache License, Version 2.0 (the "License");
44
;; you may not use this file except in compliance with the License.
@@ -16,18 +16,13 @@
1616
[clojure.pprint :refer [pprint]]
1717
[clojure.spec.test.alpha :as stest]
1818
[clojure.tools.namespace.repl :refer [refresh refresh-all set-refresh-dirs]]
19-
[kaocha.repl :as kaocha]
2019
[criterium.core :as criterium]
2120
[clj-async-profiler.core :as profiler]))
2221

2322
(set! *warn-on-reflection* true)
2423

2524
(ns-unmap *ns* 'test)
2625

27-
(defn test []
28-
(refresh)
29-
(kaocha/run :unit-clj {:config-file "test/tests.edn"}))
30-
3126
(defn instrument
3227
[]
3328
(stest/instrument))

converge/src/converge/domain.cljc

+2-3
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
(:require [clojure.data.avl :as avl]
1919
[clojure.string :as string]
2020
[editscript.edit :as edit]
21-
#?(:clj [clj-uuid :as uuid]
22-
:cljs [uuid :as uuid]))
21+
#?(:cljs [uuid :as uuid]))
2322
#?(:clj (:import java.util.UUID)))
2423

2524
#?(:clj (set! *warn-on-reflection* true)
@@ -29,7 +28,7 @@
2928

3029
(defn uuid
3130
([]
32-
#?(:clj (uuid/v4)
31+
#?(:clj (UUID/randomUUID)
3332
:cljs (random-uuid)))
3433
([uuid-str]
3534
(cond

converge/test/tests.edn

-27
This file was deleted.

nippy/Makefile

+4-7
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@ default: ci
2626
bootstrap:
2727
-brew install clojure tokei
2828

29-
.PHONY: outdated
30-
outdated:
31-
clojure -M:dev:test:outdated
32-
3329
# Clean
3430

3531
.PHONY: clean
@@ -42,16 +38,17 @@ CLJ_REPL_ALIAS:=
4238

4339
.PHONY: dev
4440
dev:
45-
clojure -M:dev:test${CLJ_REPL_ALIAS}
41+
clojure -M:local:dev${CLJ_REPL_ALIAS}
4642

4743
# Tests
4844

4945
.PHONY: test
5046
test:
51-
clojure -T:build test :aliases [:clj]
47+
clojure -T:local:build test :aliases [:clj]
5248

5349
.PHONY: ci
54-
ci: test
50+
ci:
51+
clojure -T:build test :aliases [:clj]
5552

5653
# Project info
5754

nippy/deps.edn

+9-4
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,16 @@
1212
;; See the License for the specific language governing permissions and
1313
;; limitations under the License.
1414
{:paths ["src"]
15-
:deps {org.clojure/clojure {:mvn/version "1.10.3"}
16-
com.taoensso/nippy {:mvn/version "3.1.1"}
17-
evidentsystems/converge {:local/root "../converge"}}
15+
:deps {com.taoensso/nippy {:mvn/version "3.1.1"}
16+
converge/converge {:git/url "https://github.com/evidentsystems/converge.git"
17+
:git/sha "2c18eae54322555c8db58b129c1b1f2995635de1"
18+
:deps/root "./converge"}}
19+
1820
:aliases
19-
{:dev
21+
{:local
22+
{:override-deps {converge/converge {:local/root "../converge"}}}
23+
24+
:dev
2025
{:extra-paths ["dev"]
2126
;; cf. https://github.com/clojure-goes-fast/clj-async-profiler#jvm-options
2227
:jvm-opts ["-Djdk.attach.allowAttachSelf"

storage/Makefile

+4-9
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@ default: ci
2525
.PHONY: bootstrap
2626
bootstrap:
2727
-brew install clojure tokei
28-
wget "https://github.com/lambdaisland/funnel/releases/download/v0.1.42/funnel.darwin-amd64" -O bin/funnel
29-
chmod +x bin/funnel
30-
31-
.PHONY: outdated
32-
outdated:
33-
clojure -M:dev:test:outdated
3428

3529
# Clean
3630

@@ -44,16 +38,17 @@ CLJ_REPL_ALIAS:=
4438

4539
.PHONY: dev
4640
dev:
47-
clojure -M:dev:test${CLJ_REPL_ALIAS}
41+
clojure -M:local:dev${CLJ_REPL_ALIAS}
4842

4943
# Tests
5044

5145
.PHONY: test
5246
test:
53-
clojure -T:build test :aliases [:clj]
47+
clojure -T:local:build test :aliases [:clj]
5448

5549
.PHONY: ci
56-
ci: test
50+
ci:
51+
clojure -T:build test :aliases [:clj]
5752

5853
# Project info
5954

storage/deps.edn

+15-7
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,18 @@
1212
;; See the License for the specific language governing permissions and
1313
;; limitations under the License.
1414
{:paths ["src"]
15-
:deps {org.clojure/clojure {:mvn/version "1.10.3"}
16-
converge/converge {:local/root "../converge"}
17-
converge/nippy {:local/root "../nippy"}}
15+
:deps {converge/nippy {:git/url "https://github.com/evidentsystems/converge.git"
16+
:git/sha "2c18eae54322555c8db58b129c1b1f2995635de1"
17+
:deps/root "./nippy"}
18+
converge/converge {:git/url "https://github.com/evidentsystems/converge.git"
19+
:git/sha "2c18eae54322555c8db58b129c1b1f2995635de1"
20+
:deps/root "./converge"}}
1821
:aliases
19-
{:dev
22+
{:local
23+
{:override-deps {converge/nippy {:local/root "../nippy"}
24+
converge/converge {:local/root "../converge"}}}
25+
26+
:dev
2027
{:extra-paths ["dev"]
2128
;; cf. https://github.com/clojure-goes-fast/clj-async-profiler#jvm-options
2229
:jvm-opts ["-Djdk.attach.allowAttachSelf"
@@ -29,9 +36,10 @@
2936

3037
:test
3138
{:extra-paths ["test"]
32-
:extra-deps {org.clojure/test.check {:mvn/version "1.1.0"}
33-
io.github.cognitect-labs/test-runner
34-
{:git/tag "v0.5.0" :git/sha "48c3c67"}}}
39+
:extra-deps
40+
{org.clojure/test.check {:mvn/version "1.1.0"}
41+
io.github.cognitect-labs/test-runner
42+
{:git/tag "v0.5.0" :git/sha "48c3c67"}}}
3543

3644
:build
3745
{:deps {io.github.seancorfield/build-clj

storage/dev/user.clj

-5
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,13 @@
1616
[clojure.pprint :refer [pprint]]
1717
[clojure.spec.test.alpha :as stest]
1818
[clojure.tools.namespace.repl :refer [refresh refresh-all set-refresh-dirs]]
19-
[kaocha.repl :as kaocha]
2019
[criterium.core :as criterium]
2120
[clj-async-profiler.core :as profiler]))
2221

2322
(set! *warn-on-reflection* true)
2423

2524
(ns-unmap *ns* 'test)
2625

27-
(defn test []
28-
(refresh)
29-
(kaocha/run :unit-clj {:config-file "test/tests.edn"}))
30-
3126
(defn instrument
3227
[]
3328
(stest/instrument))

storage/test/tests.edn

-27
This file was deleted.

0 commit comments

Comments
 (0)