luminus-framework / luminus-template

a template project for the Luminus framework
http://www.luminusweb.net/
MIT License
645 stars 147 forks source link

Dependency [funcool/cuerdas "2021.05.29-0"] breaks funcool/struct #547

Open javahippie opened 2 years ago

javahippie commented 2 years ago

When creating a new luminus app with the following command:

lein new luminus my-app +reitit +re-frame +shadow-cljs +postgres

And running

lein uberjar

The compilation fails:

Compiling my-app.config
       Compiling my-app.core
       Compiling my-app.db.core
       Compiling my-app.env
       Compiling my-app.handler
       Compiling my-app.layout
       Compiling my-app.middleware
       Compiling my-app.middleware.formats
       Compiling my-app.nrepl
       Compiling my-app.routes.home
       Compiling my-app.validation
       Syntax error compiling at (struct/core.cljc:218:31).
       Syntax error compiling at (struct/core.cljc:218:31).
       No such var: str/parse-number

       Full report at:
       /tmp/clojure-6721617795244421863.edn

There was no such error in an older luminus app I run, so I compared the project.clj files and realized that [funcool/cuerdas "2021.05.29-0"] overrides a transient dependency of [funcool/struct "1.4.0"], which relies on [funcool/cuerdas "2.2.0"]. If I remove the reference to cuerdas from the project.clj file, everything works as expected.

It seems to be a recent addition, so I'd expect only version 4.17 to be affected: https://github.com/luminus-framework/luminus-template/commit/0ff6cd9170bac6f1d813db80bd7b14e2629907a5

yogthos commented 2 years ago

Thanks for the report, that does look like a break in the API that I missed unfortunately. I've rolled back the template for now and submitted a patch for struct to address the issue.