Thank you, that was the right answer (and I would not have thought of it 
myself). Codox was on Clojure 1.7.0, but it was also on 
org.clojure/tools.namespace 0.2.11. Cloverage is on 1.10.1 and 1.0.0 
respectively, and if I bring the Codox versions into line with the 
Cloverage versions, it all works.

So I think I can get this working for me. I'm less confident of getting 
upstream to accept a pull request for such a major change.

On Monday, 14 June 2021 at 20:02:13 UTC+1 th.h...@gmail.com wrote:

> clojure.string/starts-with? was added in Clojure 1.8.0, I see 1.7.0 in the 
> project.clj?
>
> See 
> https://github.com/clojure/clojure/blob/b1b88dd25373a86e41310a525a21b497799dbbf2/src/clj/clojure/string.clj#L362
>
> What exactly else is going on I don't know but it all starts from the 
> wrong Clojure version.
>
> HTH
>
> On Monday, June 14, 2021 at 2:21:04 PM UTC+2 Simon Brooke wrote:
>
>>
>> I've discovered a weird behaviour which I don't understand and can't seem 
>> to fix - it's probably some obvious mistake of my own.
>>
>> Brief background, I'm trying to integrate cloverage with codox, so that I 
>> can show test coverage reports on my documentation pages. Both of these are 
>> established, solid, well written packages by respected members of the 
>> community.
>>
>> Cloverage (1.3.0-SNAPSHOT) depends on clojure.tools.cli version 0.4.2. 
>> When you start a repl within the cloverage/cloverage directory and attempt 
>> to use clojure.tools.cli, no problem:
>>
>>     cloverage.coverage=> (use 'clojure.tools.cli)
>>     nil
>>
>> Codox 0.10.7 does not depend on clojure.tools.cli, but my mildly 
>> modified version of codox does depend on cloverage 1.3.0-SNAPSHOT (that is 
>> literally the only change to the codox project.clj). When you start a repl 
>> within the codox/codox directory, and attempt to use clojure.tools.cli, you 
>> get:
>>
>>     user=> (use 'clojure.tools.cli)
>>     CompilerException java.lang.RuntimeException: No such var: 
>> s/starts-with?, compiling:(clojure/tools/cli.cljc:97:8) 
>>
>> OK, so, it's picking up clojure.tools.cli at all presumably via the 
>> dependency on cloverage, which is good. but clojure.tools.cli requires 
>> clojure.string as `s`, see
>>
>> https://github.com/clojure/tools.cli/blob/master/src/main/clojure/clojure/tools/cli.cljc#L12
>>  
>> so you would have thought this would all work fine.
>>
>> So what happens if I require clojure.string as `s` in the repl? Well, I 
>> get a different error:
>>
>>     user=> (require '[clojure.string :as s])
>>     nil
>>     user=> (use 'clojure.tools.cli)
>>     CompilerException java.lang.Exception: namespace 'clojure.tools.cli' 
>> not found, compiling:(/tmp/form-init1843820122884430414.clj:1:1) 
>>
>> So, can anyone explain what is going on here, and how I fix it? it 
>> matters to me, because it prevents my code from compiling:
>>
>>     user=> (use 'codox.cloverage-integration.runner :reload)
>>     CompilerException java.lang.RuntimeException: No such var: 
>> s/starts-with?, compiling:(clojure/tools/cli.cljc:97:8) 
>>
>> In case anyone's interested, my current diff with respect to 
>> weavejester's current codox is here: 
>> https://github.com/simon-brooke/codox/commit/ef4ba70659c768f1aab4bfbf32efdaa48e9c43a8
>>
>> Thanks in advance for any help or thoughts!
>>
>>
>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/5e59dd16-9c5f-45ed-9f6e-db9469c1dda2n%40googlegroups.com.

Reply via email to