status-react/nix/deps/clojure
Icaro Motta ca6fd3df66
Upgrade Clojure libraries (#17690)
Upgrades and cleans up all production Clojure dependencies and 1 dev-only
dependency (com.taoensso/tufte).

- Remove warning "WARNING: update-keys already refers to:
  #'clojure.core/update-keys in namespace: io.aviso.exception"
- Remove hickory and mvxcvi/alphabase dependencies they are not used.
- Upgrade com.taoensso/tufte from 2.1.0 to 2.6.3
- Upgrade transit-cljs from 0.8.248 to 0.8.280
- Upgrade cljs-bean from 1.3.0 to 1.9.0
- Remove workaround for com.taoensso/timbre in shadow-cljs.edn
- Upgrade com.taoensso/timbre from 4.10 (Status fork) to 6.3.1
2023-10-20 20:47:23 -03:00
..
README.md nix: stop downloading POMs for Clojure dependencies 2023-10-13 15:23:41 +02:00
default.nix nix: stop downloading POMs for Clojure dependencies 2023-10-13 15:23:41 +02:00
deps.json Upgrade Clojure libraries (#17690) 2023-10-20 20:47:23 -03:00
deps.list Upgrade Clojure libraries (#17690) 2023-10-20 20:47:23 -03:00
generate.sh nix: stop downloading POMs for Clojure dependencies 2023-10-13 15:23:41 +02:00

README.md

Description

This folder contains the scripts and Nix derivations necessary to generate Clojure dependencies for this project.

Usage

Running generate.sh in a shell that has available shadow-cljs and clojure should update the deps.list and deps.json files.

Details

By using the following command:

shadow-cljs classpath --force-spawn

We download the necessary JARs into ~/.m2 folder, but also get the classpath printed into standard output. We skip POM files since they are not necessary, and add edge cases we don't want to handle.

We then use the classpath in combination with contents of ~/.m2 folder to generate the following files:

  • deps.list - List of JARs relative to the ~/.m2 cache folder.
  • deps.json - Full list of JARs including their SHAs.

The deps.list file is just intermediate and for debugging purposes. The deps.json is loaded by the derivation in default.nix and used to produce a derivation that contains all the necessary dependencies:

 > grep cljfmt nix/deps/clojure/deps.list
cljfmt/cljfmt/0.6.7/cljfmt-0.6.7.jar

 > nix-build --no-out-link -A pkgs.deps.clojure
/nix/store/d7p8r9vhq6z2jmxwakxpcb262wgkc86s-status-mobile-clojure-deps

 > DEPS=$(nix-build --no-out-link -A pkgs.deps.clojure)                              

 > find $DEPS -iname 'cljfmt-0.6.7.*'
/nix/store/d7p...86s-status-mobile-clojure-deps/cljfmt/cljfmt/0.6.7/cljfmt-0.6.7.pom.sha1
/nix/store/d7p...86s-status-mobile-clojure-deps/cljfmt/cljfmt/0.6.7/cljfmt-0.6.7.pom
/nix/store/d7p...86s-status-mobile-clojure-deps/cljfmt/cljfmt/0.6.7/cljfmt-0.6.7.jar.sha1
/nix/store/d7p...86s-status-mobile-clojure-deps/cljfmt/cljfmt/0.6.7/cljfmt-0.6.7.jar