Skip to content

Commit

Permalink
build: enable opt-in readonly deps
Browse files Browse the repository at this point in the history
  • Loading branch information
ships committed Apr 18, 2024
1 parent 1e7e2dd commit d8a9480
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 88 deletions.
12 changes: 10 additions & 2 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@ jobs:
with:
cli: 1.10.3.1040

- name: Install Nix
uses: cachix/install-nix-action@v22

- name: Set up Cachix
uses: cachix/cachix-action@v12
with:
name: devenv

- name: Setup node
uses: actions/setup-node@v2

Expand All @@ -40,8 +48,8 @@ jobs:
run: clojure -P -M:test:clj-test:cljs-test

- name: Run Clojure tests
run: clojure -X:test:clj-test
run: nix develop '.#strict' -c clojure -X:test:clj-test

- name: Run ClojureScript tests
run: clojure -M:test:cljs-test
run: nix develop '.#strict' clojure -M:test:cljs-test

130 changes: 47 additions & 83 deletions deps-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@
{
"lib": "io.github.cognitect-labs/test-runner",
"url": "https://github.com/cognitect-labs/test-runner.git",
"rev": "dfb30dd6605cb6c0efc275e1df1736f6e90d4d73",
"tag": "v0.5.1",
"rev": "7284cda41fb9edc0f3bc6b6185cfb7138fc8a023",
"git-dir": "https/github.com/cognitect-labs/test-runner",
"hash": "sha256-PUNd+dHJNPTKno59YI27wpehyULYPvSyCQDjVIadKJ4="
"hash": "sha256-/opMnUA5tnUFZrDr34ug1Zy5hWnuYNap6yf3iJAGkLw="
},
{
"lib": "io.github.inferenceql/inferenceql.inference",
Expand Down Expand Up @@ -147,6 +146,16 @@
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-xMtL7gH6hnrFu8XPdgT+g+022A6zpQD9+qkuObEW7nQ="
},
{
"mvn-path": "cloverage/cloverage/1.2.4/cloverage-1.2.4.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-pmnEN8oahyohS+2aacY4VKql7EGMrM21ijipsxQQJQ8="
},
{
"mvn-path": "cloverage/cloverage/1.2.4/cloverage-1.2.4.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-n0sJ40YL4OFuAt7ol6BjL0JF9zbVo+Z+y7URF6IzUkc="
},
{
"mvn-path": "com/andrewmcveigh/cljs-time/0.5.2/cljs-time-0.5.2.jar",
"mvn-repo": "https://repo.clojars.org/",
Expand Down Expand Up @@ -457,11 +466,6 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-P4gXdBYSgvZzDSuOdKjhrHU7inNHgaUm+ICxuL24lFE="
},
{
"mvn-path": "com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-1b6U1l6HvSGfsxk60VF7qlWjuI/JHSHPc1gmq1rwh7k="
},
{
"mvn-path": "com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -637,11 +641,6 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-iFF8Wh+NYqr0uLPiMSYVucJ5XbhuaVvzcuNiZ0zz9gA="
},
{
"mvn-path": "commons-io/commons-io/2.10.0/commons-io-2.10.0.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-FQk8/9oqDGV4PB03HeVVSDA8wVjflKZvxs0V0lw+Lvg="
},
{
"mvn-path": "commons-io/commons-io/2.10.0/commons-io-2.10.0.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -1172,11 +1171,6 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-pMmVtzjRBLdcyLEWTbYAUzFWwEfsy0yO5dknshoX7HM="
},
{
"mvn-path": "org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-4G6J1AlDJF/Po57FN82/zjdirs3o+cWXeA0rAMK0NCQ="
},
{
"mvn-path": "org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -1497,11 +1491,6 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-P/01QSpDDIx0FX5fIzu6zESw+qfVcPLeaWAbFvLsalc="
},
{
"mvn-path": "org/clojure/core.async/1.5.648/core.async-1.5.648.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-Tbqwb7/HyUrn4vZoNBpl8nF19tCuigELisqwOdnNMyw="
},
{
"mvn-path": "org/clojure/core.async/1.5.648/core.async-1.5.648.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -1597,6 +1586,11 @@
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-F3i70Ti9GFkLgFS+nZGdG+toCfhbduXGKFtn1Ad9MA4="
},
{
"mvn-path": "org/clojure/data.codec/0.1.0/data.codec-0.1.0.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-8T2ZaEbW16cCQ2JlqjhjKmdGkgJaQYpWaVxQKBPd2ng="
},
{
"mvn-path": "org/clojure/data.csv/1.0.1/data.csv-1.0.1.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -1627,6 +1621,11 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-RlIA+U9W2IaOD9eqC+zGL/sCz69CCkmtEXkQ5jr13/4="
},
{
"mvn-path": "org/clojure/data.xml/0.2.0-alpha6/data.xml-0.2.0-alpha6.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-H4iAueskhGhsnso8MGhF2NuR52pNHF9kV1VO3synYzY="
},
{
"mvn-path": "org/clojure/data.xml/0.2.0-alpha8/data.xml-0.2.0-alpha8.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -1677,6 +1676,11 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-5YEc6YpDSIBkBV4/jS8jXEbcdEL4f3dBMIcBOawhKp8="
},
{
"mvn-path": "org/clojure/pom.contrib/0.0.25/pom.contrib-0.0.25.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-68ezduVtg/bEhM2x03Hv3AEw3bvK3n1tpuNU9OQm/Is="
},
{
"mvn-path": "org/clojure/pom.contrib/0.1.2/pom.contrib-0.1.2.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -1802,6 +1806,11 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-PX3x6lC6vAt6mbBqMLEAJqsxOqrKxLQGcyk3W8YIkGE="
},
{
"mvn-path": "org/clojure/tools.logging/0.5.0/tools.logging-0.5.0.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-230HS84slEV+bsKwUSg+Typ4oayhZNhPjYFhelVCkZ0="
},
{
"mvn-path": "org/clojure/tools.logging/1.2.4/tools.logging-1.2.4.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand All @@ -1812,21 +1821,11 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-blrU/1STs92xl92GinrigNnJ0QAoqg4KnF2NkD7j1Po="
},
{
"mvn-path": "org/clojure/tools.namespace/1.0.0/tools.namespace-1.0.0.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-HUB7SbdN4z+lnOqYGrjjgsfXnEgYONMb2olKXqmjniY="
},
{
"mvn-path": "org/clojure/tools.namespace/1.0.0/tools.namespace-1.0.0.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-MY+LXftpF91S7srCuLvWfKJw7alJSKBau/lo+9H5jxA="
},
{
"mvn-path": "org/clojure/tools.namespace/1.3.0/tools.namespace-1.3.0.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-EnUzqx4eenAMgjitfVjUtCxBjW2PNMMEcRUDvIguOnA="
},
{
"mvn-path": "org/clojure/tools.namespace/1.3.0/tools.namespace-1.3.0.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -1952,11 +1951,6 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-OSA2kd2VgRwPG+hmGM/WTFAo1p65J9k3J8edC+oxSL4="
},
{
"mvn-path": "org/eclipse/jetty/jetty-http/9.4.44.v20210927/jetty-http-9.4.44.v20210927.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-Cgn6xMDqgm+SDP6NW+ztYdzY/sDq6ZuIx2GWCfoNxAM="
},
{
"mvn-path": "org/eclipse/jetty/jetty-http/9.4.44.v20210927/jetty-http-9.4.44.v20210927.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand All @@ -1972,11 +1966,6 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-KRZr7b2C9iC5S5RLSm9DzvkXDd0iFhkktxfakKXCvSc="
},
{
"mvn-path": "org/eclipse/jetty/jetty-io/9.4.44.v20210927/jetty-io-9.4.44.v20210927.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-PG8RBVAJIapPlofDobX9nrpGYaX0OKoImCnC7MlyZ0U="
},
{
"mvn-path": "org/eclipse/jetty/jetty-io/9.4.44.v20210927/jetty-io-9.4.44.v20210927.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -2012,11 +2001,6 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-7kmBF/BLNSX8P5zNXLWcq2Xd+QlMv8T19piWJxlXQu8="
},
{
"mvn-path": "org/eclipse/jetty/jetty-util/9.4.44.v20210927/jetty-util-9.4.44.v20210927.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-U5F5AkUgthT2LV2D8lvqER97mRw5nl9zf6aqJ1BIkHk="
},
{
"mvn-path": "org/eclipse/jetty/jetty-util/9.4.44.v20210927/jetty-util-9.4.44.v20210927.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -2182,36 +2166,6 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-g2Bpyp6O48VuSDdiItopEmPxN70/0W2E/dR+/MPyhuI="
},
{
"mvn-path": "org/junit/jupiter/junit-jupiter-api/5.7.1/junit-jupiter-api-5.7.1.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-1Vvisj13FDKXB3IEMgey5mpnJK4CvVGStyFuS3AbxiM="
},
{
"mvn-path": "org/junit/jupiter/junit-jupiter-engine/5.7.1/junit-jupiter-engine-5.7.1.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-gRF+OjoCDf3W8wkcXseU0stJhAcxrPQogxxWmQEvTLs="
},
{
"mvn-path": "org/junit/jupiter/junit-jupiter-params/5.7.1/junit-jupiter-params-5.7.1.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-UIPD5bw9OhjVY6M0fVPi3f35ONdh60TbsL9PQgX+6Sw="
},
{
"mvn-path": "org/junit/jupiter/junit-jupiter/5.7.1/junit-jupiter-5.7.1.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-YLUGfK3Mb/tfqS6OJJiKgMbDYEaPJj0mmLKIHI4PfJE="
},
{
"mvn-path": "org/junit/platform/junit-platform-commons/1.7.1/junit-platform-commons-1.7.1.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-t8GENMTUsn5yO9SKr5ercK7IwMra1MFTkvvdFEykpQo="
},
{
"mvn-path": "org/junit/platform/junit-platform-engine/1.7.1/junit-platform-engine-1.7.1.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-dmAvWZVKo9+mjjHIDKibb7ouoAG0+wbLUfoV6tfIWjA="
},
{
"mvn-path": "org/kohsuke/pom/14/pom-14.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -2297,6 +2251,11 @@
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-uziNN/vN083mTDzt4hg4aTIY3EUfBAQMXfNgp47X6BI="
},
{
"mvn-path": "org/sonatype/oss/oss-parent/5/oss-parent-5.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
},
{
"mvn-path": "org/sonatype/oss/oss-parent/7/oss-parent-7.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
Expand Down Expand Up @@ -2382,6 +2341,16 @@
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-At+3ryDvgcJTZQVfYCjoscwpBdCyaLuJzEKM2nIwo2U="
},
{
"mvn-path": "riddley/riddley/0.2.0/riddley-0.2.0.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-fbJ+6PUSkzITRXSYxGDXHYDVK1dkY/uR6IqxXQsijGg="
},
{
"mvn-path": "riddley/riddley/0.2.0/riddley-0.2.0.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-Q4OCl25gdh6Va+oaZzdLuDYVbNnsa80eEKMMq9qLLFA="
},
{
"mvn-path": "ring-cors/ring-cors/0.1.13/ring-cors-0.1.13.jar",
"mvn-repo": "https://repo.clojars.org/",
Expand All @@ -2392,11 +2361,6 @@
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-SZCg3bNUDE1Ed6GtqP1mP62RSRScmaYGL7/XSKXwGJo="
},
{
"mvn-path": "ring/ring-codec/1.1.2/ring-codec-1.1.2.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-sl/LVYL/wFWem+BnzQXP13SAm5IocZz8HqVojsnKH+c="
},
{
"mvn-path": "ring/ring-codec/1.1.3/ring-codec-1.1.3.jar",
"mvn-repo": "https://repo.clojars.org/",
Expand Down
3 changes: 2 additions & 1 deletion deps.edn
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
net.cgrand/macrovich {:mvn/version "0.2.1"}
net.cgrand/xforms {:mvn/version "0.19.2"}
io.github.inferenceql/inferenceql.inference {:git/sha "c3cef474ba964a37fc2e5ff667055f5b77e12c45"}
io.github.clojure/tools.build {:git/sha "8e78bccc35116f6b6fc0bf0c125dba8b8db8da6b"}
org.babashka/sci {:mvn/version "0.3.32"}
org.clojure/clojure {:mvn/version "1.11.1"}
com.google.javascript/closure-compiler-unshaded {:mvn/version "v20230802"}
Expand All @@ -28,7 +29,7 @@
:build {:deps {io.github.clojure/tools.build {:git/sha "8e78bccc35116f6b6fc0bf0c125dba8b8db8da6b"}}
:ns-default build}
:cljs {:extra-deps {thheller/shadow-cljs {:mvn/version "2.27.5"}}}
:clj-test {:extra-deps {io.github.cognitect-labs/test-runner {:git/tag "v0.5.1" :git/sha "dfb30dd"}}
:clj-test {:extra-deps {io.github.cognitect-labs/test-runner {:git/sha "7284cda41fb9edc0f3bc6b6185cfb7138fc8a023"}}
:main-opts ["--main" "cognitect.test-runner"]
:exec-fn cognitect.test-runner.api/test}
:cljs-test {:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"}}
Expand Down
21 changes: 19 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,26 @@

shellHook = ''
echo "Setting up default dev shell..."
DEPS_CACHE_TMP="$(mktemp -dt gensql.query.clj.cache.XXXX)"
echo "Copying readonly clojure cache to read-write location at:"
echo "$DEPS_CACHE_TMP"
rsync -Laz ${depsCache}/ $DEPS_CACHE_TMP/
export CLJ_CONFIG="$DEPS_CACHE_TMP/.clojure"
export GITLIBS="$DEPS_CACHE_TMP/.gitlibs"
export MAVEN_OPTS="-Dmaven.repo.local=$DEPS_CACHE_TMP/.m2/repository"
'';
};

# development shell with readonly dependencies
devShells.strict = pkgs.mkShell {
buildInputs = [ pkgs.openjdk21 pkgs.clojure pkgs.babashka depsCache ] ++ (basicToolsFn pkgs);

shellHook = ''
echo "Setting up strict dev shell with readonly clojure deps..."
export CLJ_CONFIG="${depsCache}/.clojure"
export GITLIBS="${depsCache}/.gitlibs"
export JAVA_TOOL_OPTIONS="-Duser.home=${depsCache}"
export MAVEN_OPTS="-Dmaven.repo.local=${depsCache}/.m2/repository"
'';
};

Expand All @@ -72,7 +89,7 @@
echo "Setting up minimal dev shell..."
unset CLJ_CONFIG
unset GITLIBS
unset JAVA_TOOL_OPTIONS
unset MAVEN_OPTS
'';
};

Expand Down

0 comments on commit d8a9480

Please sign in to comment.