Fork me on GitHub
#reveal
<
2020-07-27
>
onetom09:07:50

I'm trying to conveniently contribute to reveal, in the context of my project which depends on it. I've added the following to my ~/.clojure/deps.edn:

{
 :aliases
 {:reveal-dev
            {:classpath-overrides {vlaaad/reveal "/Users/onetom/gini/reveal/"}}
...
where /Users/onetom/gini/reveal/ is a clone of reveal. my project specifies it as a dependency in an alias like this:
:reveal {:extra-deps {vlaaad/reveal {:mvn/version "0.1.0-ea24"}}
           :jvm-opts ["-Dclojure.server.repl={:port,5555,:accept,clojure.core.server/repl}"]}
when i try to start a repl with clj -A:reveal-dev:reveal -m vlaaad.reveal.repl, i get this error:
Execution error (FileNotFoundException) at clojure.main/main (main.java:40).
Could not locate vlaaad/reveal/repl__init.class, vlaaad/reveal/repl.clj or vlaaad/reveal/repl.cljc on classpath.

Full report at:
/var/folders/2y/8p3dxqr946v837dq1bp3t3t40000gn/T/clojure-15100010745472405699.edn
if i remove the :jvm-opts it makes no difference. clj -A:reveal -m vlaaad.reveal.repl works as expected, tho im getting this warning since the upgrade to 0.1.0-ea24:
Reflection warning, clj_diff/optimizations.clj:21:16 - call to method indexOf on java.lang.Object can't be resolved (no such method).
i've even explicitly added :paths ["src"] to /Users/onetom/gini/reveal/deps.edn, just in case... it seemed to make a difference to cursive the other day... any idea what the issue can be?

onetom09:07:03

➜ clj -A:reveal-dev:reveal -Sforce -Spath | tr : \\n | rg reveal
/Users/onetom/gini/reveal/
the classpath seems to be correctly overriden.

onetom09:07:28

this is my env: ➜ clj -Sdescribe {:version "1.10.1.561" :config-files ["/nix/store/lfjrwnd681pirgpw9fx7klz4cr9w4m8d-clojure-1.10.1.561/deps.edn" "/Users/onetom/.clojure/deps.edn" "deps.edn" ] :config-user "/Users/onetom/.clojure/deps.edn" :config-project "deps.edn" :install-dir "/nix/store/lfjrwnd681pirgpw9fx7klz4cr9w4m8d-clojure-1.10.1.561" :config-dir "/Users/onetom/.clojure" :cache-dir ".cpcache" :force false :repro false :resolve-aliases "" :classpath-aliases "" :jvm-aliases "" :main-aliases "" :all-aliases ""}

onetom09:07:51

i've quickly upgraded to cli version 1.10.1.590, but it makes no difference from the error's perspective. for the record, i do get a bunch of deprecation warnings like this:

DEPRECATED: Libs must be qualified, change deps-ancient => deps-ancient/deps-ancient (/Users/onetom/.clojure/deps.edn)
DEPRECATED: Libs must be qualified, change compliment => compliment/compliment (/Users/onetom/.clojure/deps.edn)
DEPRECATED: Libs must be qualified, change reply => reply/reply (/Users/onetom/.clojure/deps.edn)
DEPRECATED: Libs must be qualified, change criterium => criterium/criterium (deps.edn)
DEPRECATED: Libs must be qualified, change criterium => criterium/criterium (deps.edn)
DEPRECATED: Libs must be qualified, change clojure.java-time => clojure.java-time/clojure.java-time (deps.edn)
DEPRECATED: Libs must be qualified, change camel-snake-kebab => camel-snake-kebab/camel-snake-kebab (deps.edn)
DEPRECATED: Libs must be qualified, change fipp => fipp/fipp (deps.edn)
DEPRECATED: Libs must be qualified, change aero => aero/aero (deps.edn)
DEPRECATED: Libs must be qualified, change google-apps-clj => google-apps-clj/google-apps-clj (deps.edn)
DEPRECATED: Libs must be qualified, change clansi => clansi/clansi (deps.edn)
DEPRECATED: Libs must be qualified, change hiccup => hiccup/hiccup (deps.edn)
DEPRECATED: Libs must be qualified, change semantic-csv => semantic-csv/semantic-csv (deps.edn)
DEPRECATED: Libs must be qualified, change clojure-csv => clojure-csv/clojure-csv (deps.edn)
DEPRECATED: Libs must be qualified, change honeysql => honeysql/honeysql (deps.edn)
which is an indication that the upgrade has happened indeed 🙂

onetom09:07:28

also, the trailing slash makes no difference either:

{:classpath-overrides {vlaaad/reveal "/Users/onetom/gini/reveal/"}}
or
{:classpath-overrides {vlaaad/reveal "/Users/onetom/gini/reveal"}}

vlaaad09:07:37

shouldn’t it be something like /Users/onetom/gini/reveal/src ?

vlaaad09:07:02

or perhaps you should use :local/root dependency on reveal?

onetom09:07:47

no, classpath override needs one string only, which is the path to whatever is in the root of the original .jar

onetom09:07:38

it's overriding this:

➜ clj -A:reveal -Sforce -Spath | tr : \\n | rg reveal 
/Users/onetom/.m2/repository/vlaaad/reveal/0.1.0-ea24/reveal-0.1.0-ea24.jar

vlaaad09:07:59

have you noticed the src suffix?

onetom09:07:25

yeah, trying it now

👍 3
onetom09:07:30

and it works indeed... makes sense

onetom09:07:56

well, works from the command line, but let's see how cursive deals with it

onetom09:07:46

how are you developing reveal? just in its own intellij project and your applications depending on it are referencing it via :local/root?

onetom09:07:01

or :override-deps?

vlaaad09:07:37

in its own intellij project

onetom09:07:12

i have it opened as its own intellij project too, but when that reveal code is running within my project, i can only evaluate changes to reveal if i switch over to reveal, open a remote repl connecting to my project and evaluate reveal source there. weirdly, this way the background color change in style.clj doesn't take effect immediately when i cmd-shift-l the file, like it did when reveal was just a subdir within my app...

vlaaad09:07:14

it was happening immediately by luck

onetom09:07:36

ah, okay, it helps to know 🙂

onetom09:07:15

is there an easy way to force a redraw?

onetom09:07:14

looks like if i just cmd-tab over to the reveal windows, thats enough, but it's also a bit annoying if i have to keep doing that 🙂

vlaaad09:07:56

I’d say this is the easiest way 🙂

👍 3
vlaaad11:07:39

by the way, what are you planning to contribute to reveal?

onetom11:07:01

im not sure yet, but we want to be able to hack into it during the following days as we are test-driving it more actively. if it's troublesome to hack on it, we might just choose to live with the current feature-set for now.

onetom11:07:46

we would like to write a regex-rule management system, but writing it as a webapp is a bit beyond the scope of the next few weeks. i was thinking that we can use tweaks to reveal first as a pre-study for designing the upcoming webapp.

onetom11:07:54

it's also very attractive that it has builtin web browser, so we might be able to use reveal first to develop vega-lite visualizations, before we insert them into our webapp...

onetom11:07:02

specifically for myself, i have changed the default font and background color and assigned the hjkl keys to cursor movement, but neither of those changes worth including upstream yet.

onetom17:07:06

I came up with a workaround by using :override-deps and reassigning Cmd-Shift-L to a custom REPL command, defined as (load-file "~file-path"): https://github.com/cursive-ide/cursive/issues/1641#issuecomment-664513197

onetom18:07:54

this is a related issue, which i've already given a thumbs up the other day, but already forgot about it, because i haven't understood the problem well enough at that time... https://github.com/cursive-ide/cursive/issues/2204