Modernize dependencies and migrate CI to GitHub Actions#50
Merged
Conversation
Bumps Clojure (1.11.1 -> 1.12.1), ClojureScript (1.11.60 -> 1.12.145), compliment, piggieback, cider-nrepl, figwheel-main, shadow-cljs, rebel-readline, clj-kondo, eastwood, lein-git-down and the test-runner to their latest releases, and points the snapshot repo at Sonatype's new Central host (the old oss.sonatype.org one is gone). Two upstream changes needed adapting to: - piggieback 0.7.0 now wraps the repl-env in a single DelegatingReplEnv type instead of a per-env generated class, so node-env? could no longer recover the underlying env from the class name and always returned false - breaking Node.js dynamic completion (#48). It now unwraps via cider.piggieback.cljs/get-repl-env, falling back to the old class-name munging for older piggieback. - ClojureScript 1.12 prints tagged literals as '#js {}' rather than '#js{}', so the sanity test tolerates either spelling. The CI version matrix drops the ancient Clojure 1.8/1.9/1.10 rows and adds a dedicated 1.12 row; 1.11, 1.12 and master all pass locally.
The CircleCI setup relied on the circleci/clojure convenience images, which were removed at the end of 2023, so the pipeline no longer ran. The new workflow tests JDK 11/17/21 against Clojure 1.11, 1.12 and master (the latter allowed to fail), lints with clj-kondo and Eastwood on JDK 21 (shadow-cljs 3.x needs it), and deploys tagged releases to Clojars. Deploy replicates the old tag -> version.edn -> lein flow directly in the workflow, so the .circleci deploy helper and the unused :deploy alias are gone. The Makefile's deploy guard now checks PROJECT_VERSION instead of the CircleCI-specific CIRCLE_TAG.
5 tasks
ClojureScript 1.12 bundles a Closure Compiler compiled for JDK 21, so the JDK 11/17 test rows can only run the 1.11 (ClojureScript 1.11) line.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The build/CI/dependency layer had been frozen since early 2024, so this brings it up to date.
Dependencies bumped to their current releases: Clojure 1.12.1, ClojureScript 1.12.145, compliment 0.8.0, piggieback 0.7.0, cider-nrepl 0.61.0, figwheel-main 0.2.20, shadow-cljs 3.4.11, rebel-readline 0.1.11, clj-kondo, eastwood and lein-git-down. The snapshot repo now points at Sonatype's new host, since
oss.sonatype.orgis gone.Bug fix. piggieback 0.7.0 replaced its per-env generated repl-env class with a single
DelegatingReplEnvwrapper.node-env?used to recover the underlying env type from that class name, so with the new piggieback it always returned false and Node.js dynamic completion (over piggieback, e.g. figwheel and plain cljs REPLs) silently stopped working. It now unwraps viacider.piggieback.cljs/get-repl-env, with a fallback for older piggieback. Note: this is the piggieback path only, it doesn't touch the shadow-cljs path.CI moved from CircleCI to GitHub Actions - the old setup ran on the
circleci/clojureconvenience images that were removed at the end of 2023, so it hadn't run in a long time. The new workflow tests JDK 11/17/21 against Clojure 1.11/1.12/master (master allowed to fail), lints on JDK 21, and deploys tags to Clojars.Heads up: the deploy job reads
CLOJARS_USERNAME/CLOJARS_PASSWORDrepo secrets, which need to be added under Settings for releases to work.Tested locally on JDK 21 + Node: the 1.11, 1.12 and master rows all pass (12 tests / 138 assertions), and clj-kondo and Eastwood are clean.