cursive

Issues at: https://git.io/cursive-issues
cfleming 2021-02-24T04:50:23.065900Z

@etldan Ok, I’ve fixed both #1999 and also lein-v/#26, so they (and other cases) should hopefully work without workarounds now. I’m not sure which release that will make it into since it’s a change to a fairly sensitive part of the lein integration. I’ll probably release 1.10.1 and then get this into the first release of the 1.10.2 EAP.

favila 2021-02-24T16:11:26.071Z

I have a large monorepo full of deps edn modules and unfortunately some of them have the same directory name (not full path, just name). This causes cursive/intellij to error silently. Is there any way around this short of renaming the dirs? manually renaming the module in project structure doesn’t seem to stick.

favila 2021-02-24T17:49:44.071900Z

I’m also having a problem where vars across :local/root deps.edn dependencies cannot be resolved, but their namespaces can (i.e. I can control-b the namespace and appear in the right one). Same monorepo project.

cfleming 2021-03-01T03:18:45.092200Z

https://github.com/cursive-ide/cursive/issues/2517

cfleming 2021-03-01T07:17:16.092800Z

@favila I’ll try to get the fix for this out in an EAP tomorrow.

favila 2021-03-01T21:01:47.100300Z

FWIW, :override-deps seems to have the same problem 🙂

cfleming 2021-03-01T21:54:17.100700Z

Ok, I’ll fix that too 🙂

cfleming 2021-03-01T22:58:57.101800Z

Actually, the same fix works since it just absolutises all the lib paths now.

favila 2021-02-24T17:55:11.072Z

Possibly related: I have deps with no names. Here’s one of the deps.edn project which has a dependency on two other projects in the same monorepo (they’re sibling directories)

alexmiller 2021-02-24T19:33:50.072800Z

:local/root dependencies will not force a cache recompute when deps change - that has to be forced with -Sforce

alexmiller 2021-02-24T19:33:59.073100Z

not sure if that's what you're seeing, but a good thing to check

cfleming 2021-02-24T19:34:28.073600Z

I don’t think that caching is the issue here, since Cursive only uses t.d.a and the caching happens in the script (IIRC)

alexmiller 2021-02-24T19:34:42.073900Z

true

cfleming 2021-02-24T19:35:05.074400Z

I need a better way of handling duplicate names, too - I’m still not sure what to do about that.

cfleming 2021-02-24T19:37:35.074500Z

I’ve never seen that, I’ll see if I can figure out how that might happen. What do the dependencies for those two look like in the deps.edn file?

favila 2021-02-24T19:46:17.074700Z

with considerable trimming, it looks like this:

{:aliases
  {:backend-defaults
   {:default-deps
    {io.clubhouse.module/logging
     {:local/root "../logging", :deps/manifest :deps},
     io.clubhouse.module/dev-shared
     {:local/root "../dev-shared", :deps/manifest :deps}}},
   :test
   {:extra-paths
    ["test"],
    :extra-deps
    {io.clubhouse.module/dev-shared nil}}},
  :paths
  ["src" "resources"]
  :deps
  {io.clubhouse.module/logging nil}}

favila 2021-02-24T19:46:45.074900Z

Maybe the :backend-defaults alias is the problem and should be pulled up

favila 2021-02-24T19:46:51.075100Z

I’ll try that

favila 2021-02-24T19:47:48.075300Z

that alias is always active in the “aliases” panel of the clojure deps tool window

favila 2021-02-24T19:50:15.075500Z

woops, my mistake, default-deps is only allowed in aliases

favila 2021-02-24T20:01:52.075700Z

yeah, that’s definitely it. If I inline the local/root coordinates those empty deps entries go away. This also fixes name resolution. Probably at project-setup time that alias is not enabled.

favila 2021-02-24T20:02:49.075900Z

I.e. this works:

{:aliases
  {:backend-defaults
   {:default-deps {}},
   :test
   {:extra-paths
    ["test"],
    :extra-deps
    {io.clubhouse.module/dev-shared {:local/root "../dev-shared", :deps/manifest :deps}}}},
  :paths
  ["src" "resources"]
  :deps
  {io.clubhouse.module/logging 
     {:local/root "../logging", :deps/manifest :deps}}}

cfleming 2021-02-24T20:27:36.076100Z

Thanks, I’ll try to reproduce that with those examples.

favila 2021-02-24T20:31:46.076300Z

This also fixes the “namespace not in scope” problem when reloading in the repl