juji-io / datalevin

A simple, fast and versatile Datalog database
https://github.com/juji-io/datalevin
Eclipse Public License 1.0
1.13k stars 63 forks source link

Bump taoensso/encore is breaking datalevin #240

Closed rafaeldelboni closed 6 months ago

rafaeldelboni commented 7 months ago

I do use encore in my project and by coincidence encore was a top level dependency:

{:paths ["src" "resources"]
 :deps {org.clojure/clojure {:mvn/version "1.11.1"}
        ...
        datalevin/datalevin {:mvn/version "0.8.26"}
        com.taoensso/encore {:mvn/version "3.78.0"}}
...

And after a lib bump in my service I got the following error in a file that loads up a datalevin database.:

Caused by: clojure.lang.ExceptionInfo: [encore/get-env] Ids must be const forms {:id (get-in ids [action :base :prop])}

Using com.taoensso/encore {:mvn/version "3.74.2"} doesn't cause any trouble.

Looking at the diff between versions 3.74.2 and 3.75.0 we can see a huge diff in this function (get-env)

Running clj -X:deps tree shows that datalevin indirectly depends on encore because of nippy:

datalevin/datalevin 0.8.26
...
  . com.taoensso/nippy 3.3.0
    . org.clojure/tools.reader 1.3.6
    X com.taoensso/encore 3.68.0 :use-top
huahaiy commented 7 months ago

Both encore and nippy are by the same author, so I would wait for him to sort things out. Since both are widely used, it will happen soon enough. We will include a new version of nippy in the release of 0.9.0.

rafaeldelboni commented 7 months ago

Yes, you right. I saw nippy 3.4.0-RC1 already bumped encore, so soon this will be fixed.

Do you want me to close the issue or let it open until the nippy bump?

huahaiy commented 7 months ago

Leaving it open is fine.

huahaiy commented 6 months ago

Now we use nippy 3.4.0-RC2 in master branch, and will release 0.9.0 momentarily, so this can be closed.