luminus-framework / luminus-framework/luminus-template

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

Open
#547 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Clojure
Stars
648
Forks
143
PR merge metrics
No merged PRs in 30d

Description

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

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the template's dependency declarations and the project.clj generated by `lein new luminus my-app +reitit +re-frame +shadow-cljs +postgres`, then inspect the dependency change in commit 0ff6cd9170bac6f1d813db80bd7b14e2629907a. Reproduce with `lein uberjar` and follow the failure at struct/core.cljc:218:31. Done means the generated application compiles successfully without the `str/parse-number` error.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.