Skip to content

Replace the Leiningen build with tools.build#51

Closed
bbatsov wants to merge 1 commit into
modernize-depsfrom
tools-build-migration
Closed

Replace the Leiningen build with tools.build#51
bbatsov wants to merge 1 commit into
modernize-depsfrom
tools-build-migration

Conversation

@bbatsov

@bbatsov bbatsov commented Jul 8, 2026

Copy link
Copy Markdown
Member

Stacked on #50 - review/merge that one first (the base will retarget to master once it lands).

The Leiningen build only existed so lein could build and deploy the jar, and it needed a ~140-line lein-git-down shim in project.clj to translate deps.edn into a Leiningen project (mostly to make the git deps work under lein). tools.build reads deps.edn directly, so all of that goes away.

build.clj exposes clean/jar/install/deploy; the version still comes from PROJECT_VERSION, and deploy pushes to Clojars via deps-deploy. The Makefile and the CI deploy job now call clojure -T:build ....

I verified clojure -T:build jar and make install locally: the generated pom carries the same transitively-relevant deps as the current published one (ClojureScript, Clojure, compliment), and actually drops two spurious test-scope entries (cider-nrepl, piggieback) that the lein translation used to emit. The one thing I couldn't exercise is the real Clojars upload.

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

The Leiningen build only existed to translate deps.edn into a project.clj
(via a ~140-line lein-git-down shim) so that lein could build and deploy
the jar. tools.build works from deps.edn directly, so the shim,
project.clj and the :pack alias are all gone.

build.clj exposes clean/jar/install/deploy; the version still comes from
PROJECT_VERSION, and deploy goes to Clojars via deps-deploy. The Makefile
and the CI deploy job call 'clojure -T:build ...' instead of lein. The
generated pom matches the current published one for the transitively
relevant deps (ClojureScript, Clojure, compliment).
@bbatsov bbatsov force-pushed the tools-build-migration branch from e8f6b86 to f9ee56b Compare July 8, 2026 14:20
@bbatsov bbatsov deleted the branch modernize-deps July 8, 2026 14:22
@bbatsov bbatsov closed this Jul 8, 2026
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