Skip to content

Modernize dependencies and migrate CI to GitHub Actions#50

Merged
bbatsov merged 5 commits into
masterfrom
modernize-deps
Jul 8, 2026
Merged

Modernize dependencies and migrate CI to GitHub Actions#50
bbatsov merged 5 commits into
masterfrom
modernize-deps

Conversation

@bbatsov

@bbatsov bbatsov commented Jul 8, 2026

Copy link
Copy Markdown
Member

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.org is gone.

Bug fix. piggieback 0.7.0 replaced its per-env generated repl-env class with a single DelegatingReplEnv wrapper. 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 via cider.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/clojure convenience 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_PASSWORD repo 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.

  • The commits are consistent with the contribution guidelines
  • You've added tests to cover your change(s)
  • All tests are passing
  • The new code is not generating reflection warnings
  • You've updated the changelog (if adding/changing user-visible functionality)

bbatsov added 4 commits July 8, 2026 16:36
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.
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.
@bbatsov bbatsov merged commit d8eb888 into master Jul 8, 2026
7 of 8 checks passed
@bbatsov bbatsov deleted the modernize-deps branch July 8, 2026 14:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant