nextjournal / clerk

⚡️ Moldable Live Programming for Clojure
https://clerk.vision
ISC License
1.82k stars 78 forks source link

Clerk in Babashka fails with "Unable to resolve classname: io.methvin.watcher.DirectoryChangeEvent" #589

Closed neuhalje closed 11 months ago

neuhalje commented 11 months ago

Expected Result

When I use clerk in a babashka project, it works.

Observed Result when running with Clj

It works

Observed Result when running with Babashka

As soon as I reference nextjournal.clerk, I get an error "Unable to resolve classname: io.methvin.watcher.DirectoryChangeEvent".

The same code runs, when started with vanilla Clojure

❯ bb --version
babashka v1.3.186

Source

Source File

(ns clerk1.command
  (:require
   [clojure.string :as string]
   [nextjournal.clerk :as clerk]  ;; Removing this line makes it work
   ))

bb.edn

{
 :deps {name.neuhalfen/babashka-example {:local/root "."}}
} 

deps.edn

{:paths ["src"]
 :deps {dev.weavejester/medley {:mvn/version "1.7.0"}
        metosin/malli {:mvn/version "0.13.0"}

        ;; Testing libraries
        lambdaisland/kaocha {:mvn/version "1.87.1366"}
        org.clojure/test.check {:mvn/version "1.1.1"}

        io.github.nextjournal/clerk {:mvn/version "0.15.957"}
        }

 :aliases {:test {:extra-paths ["test"]
                  :extra-deps {lambdaisland/kaocha {:mvn/version "1.87.1366"}
                               com.taoensso/timbre {:mvn/version "5.2.1"}
                               org.clojure/test.check {:mvn/version "1.1.1"}}
                  :main-opts ["-m" "kaocha.runner"]}}}
mk commented 11 months ago

This is expected as Clerk currently doesn't support babashka. #232 is an old experimental PR in which we explored adding babashka support but we never saw much demand for this and decided it wasn't worth the added complexity at the time. Feel free to chime in there as to why you'd want/need Babashka support.

neuhalje commented 10 months ago

Thank you! That saved me a lot of time!