leiningen

N.B. The maintainers are on #leiningen on Libera chat IRC. Go there for direct support/bug reports.
ok 2019-03-27T08:21:09.119900Z

why lein run & does not run in background? it will not start to listen for ports unless I run fg later - weird because if I run simple bash script this way it will run in background.

victorb 2019-03-27T09:41:09.120500Z

@twaima hm? Are you running lein run then doing CTRL+Z or something? As that would pause the execution of the process

ok 2019-03-27T09:42:16.121200Z

with & but just found a solution it is: https://github.com/technomancy/leiningen/issues/1173

victorb 2019-03-27T09:45:30.121700Z

huh, interesting. Learned something new today

2019-03-27T10:24:08.126500Z

Hi, I'm using immutant messaging in my luminus project with figwheel. Long short, HornetQ starts itself during lein figwheel and either hangs waiting for a lock if my dev REPL is started first (thus HornetQ is already started) or prevents my REPL from starting if fighweel is started first. Is there an easy way of removing the immutant messaging dependency from the lein fighweel task? Or do I just have to start fighweel from my dev REPL?

2019-03-27T13:25:24.126800Z

is there documentation somewhere on what the alternative to "implicit hooks" is?

2019-03-27T13:39:08.127100Z

maybe I need to focus on what the hooks are trying to do 😕

2019-03-27T14:01:57.127700Z

@gfredericks I thought that hooks were like a monkey-patch that tried to revert the monkey patch when done

2019-03-27T14:02:09.128Z

that was what I thought it could be summarized as at least hah

2019-03-27T14:02:31.128200Z

thought they were managed via https://github.com/technomancy/robert-hooke

2019-03-27T14:06:19.129300Z

Perhaps it’s more like an intercepter pattern over functions you don’t control.. .anyways: https://github.com/technomancy/leiningen/blob/master/doc/FAQ.md has this

Q: I'm getting warnings for implicit hooks or implicit middleware.
A: Hooks are a deprecated feature where plugins can modify the behavior of built-in Leiningen functionality; they result in situations which can be very difficult to debug and usually point to situations in which the original API is not flexible enough.

Leiningen also has a deprecated feature for implicitly loading middleware. Middleware is not deprecated but should now be declared using :middleware instead of being auto-detected from plugins.

Adding :implicits false to project.clj will disable all implicit features.

2019-03-27T14:07:07.130300Z

To me, it is a bit concerning how it will be worked around in some plugins though. I think some do the hooks since the API isn’t exposed enough to do what they do. So I’m not sure what they will do instead. I can’t remember any concrete examples of plugins facing this without looking though.

2019-03-27T14:10:57.130600Z

oh also: https://github.com/technomancy/leiningen/blob/master/doc/PLUGINS.md#hooks if you didn’t see it.

2019-03-27T15:34:19.131Z

yeah I think I found both of those

2019-03-27T15:34:44.131500Z

I guess I was hoping there was something called "explicit hooks" that I could easily switch to, but it seems like that's not the case

✅ 1
yefoakira 2019-03-27T16:47:18.132700Z

Can leiningen support dependencies that are only pom files? Adding [software.amazon.awssdk/services "2.5.17"] doesn't seem to be enough.

2019-03-27T16:47:48.133100Z

@yefoakira add :extension "pom" perhaps

2019-03-27T16:48:05.133500Z

but not sure what you expect to happen when this dependency is pulled to the classpath?

2019-03-27T16:48:41.133700Z

[software.amazon.awssdk/services "2.5.17" :extension "pom"]

yefoakira 2019-03-27T16:49:20.134300Z

Well, that does seem to do the work. Is that documented anywhere?

2019-03-27T16:51:52.134900Z

however, it is missing from the tutorial doc I noticed

👍 1
2019-03-27T16:54:31.135700Z

that example mentions “what is supported by pomegranate“, which the lib dependencies info is passed through for resolution

2019-03-27T16:55:02.136400Z

In that libs github, I actually don’t see the dependency coordinate structure documented directly, but in it’s actual source comments, you can see https://github.com/cemerick/pomegranate/blob/pomegranate-1.0.0/src/main/clojure/cemerick/pomegranate/aether.clj#L707