cljdoc

lread 2024-10-04T16:27:24.683389Z

Hello folks! We are about to take a crack at transitioning cljdoc over Exoscale. There could be n hiccups.

lread 2024-10-04T18:35:39.041629Z

Currently figuring out SSL certs...

lread 2024-10-04T18:41:54.001259Z

Ok, seems good now

lread 2024-10-04T18:43:35.959999Z

Let us know if you stumble upon anything that seems amiss!

2024-10-04T20:13:36.616719Z

Was there ever anything completed in terms of being able to set a different git tag for cljdoc to pull from? I keep putting cljdoc/v1.0.486 and similar on my repos 'cause I remember this getting discussed a while back, but I don't know if there's anything that was actually done with that.

martinklepsch 2024-10-04T20:29:01.511689Z

There's this PR, according to which the version tag has a slightly different format: https://github.com/cljdoc/cljdoc/pull/675/files

2024-10-04T20:29:39.144969Z

Awesome, thank you!

martinklepsch 2024-10-04T20:29:40.390299Z

But there's also this code where it seems like the revision provided in pom.xml has precedence https://github.com/cljdoc/cljdoc/blob/85c9936adc2654f9439534e30e361cbb5adeddce/src/cljdoc/analysis/git.clj#L121-L125

2024-10-04T20:29:52.941439Z

Oh that's unfortunate.

martinklepsch 2024-10-04T20:30:04.497239Z

Would be great if you could try and report back!

2024-10-04T20:30:12.188959Z

I'll give it a shot!

martinklepsch 2024-10-04T20:30:21.480549Z

I might just not fully understand the code 🙂

2024-10-04T20:31:02.985019Z

Unfortunately for my current main project #coffi I won't be able to use cljdoc anyway because for that I need JDK 22+ and potentially some other stuff like --enable-native-access=ALL-UNNAMED, but I'll give it a shot on farolero

lread 2024-10-04T20:32:51.857879Z

Hmm... I wonder if there'd be any harm in bumping to latest JDK for analysis turning such switches....

martinklepsch 2024-10-04T20:32:54.883019Z

Could you provide a Docker image that we can use for this? With that maybe we could just make an alternative builder env @lee?

martinklepsch 2024-10-04T20:33:18.628479Z

Also v. open to just bumping and see how it goes!

martinklepsch 2024-10-04T20:33:43.675639Z

Worth the experiment I think 🙂

lread 2024-10-04T20:34:07.762429Z

Well, we discussed allowing the user to choose their jdk or docker image a while back but never implemented.

lread 2024-10-04T20:34:51.948319Z

I was a bit concerned about maintaining such a thing moving forward through the years tbh.

lread 2024-10-04T20:35:52.524479Z

But there's also static analysis via clj-kondo which I got pretty far on but have not finished yet. Do you imagine static analysis do the trick for you @suskeyhose?

lread 2024-10-04T20:36:48.370959Z

(in other words, are you generating any part of your public API vars at a load time?)

2024-10-04T20:37:49.391119Z

I mean for coffi I think static analysis should do the trick. Besides if you can support clj-kondo hooks to produce vars then I already do everything with making those hooks understand my code and distribute it with my libraries too.

2024-10-04T20:38:20.732289Z

For coffi the only reason I need the bumped version is that I import classes that are only available in JDK 22 and later

lread 2024-10-04T20:41:47.867119Z

Yeah, I think static analysis might do the trick for you. It won't be ready tomorrow, but I can restart work on that sometime soon. But in the shorter term... maybe bumping the dynamic analysis to JDK23 and turning on some JAVA_OPTS might work out too. I can run some tests.

2024-10-04T20:42:14.144789Z

👍

2024-10-04T20:42:27.775319Z

the repo I'm trying to get to work is https://github.com/IGJoshua/coffi if that helps

👍 1
martinklepsch 2024-10-04T20:52:06.895749Z

I think it would be fairly simple to swap the Circle CI project that we use for building, so if you can make a fork of https://github.com/cljdoc/builder we could hard code a path to use it for specific projects?

lread 2024-10-04T20:53:29.054889Z

I guess? You mean as a hardcoded special-case kind of thing?

martinklepsch 2024-10-04T20:53:52.898119Z

Not sure how "close" things are to static analysis working, that's obviously also a great alternative with better overall impact

👍 1
lread 2024-10-04T20:57:33.041149Z

I can try bumping cljdoc-analyzer CI to JDK23 with the java opts coffi needs and see if that breaks any of the libs we test against. Maybe it won't be a problem to do that for all dynamic analysis.

👍 1
lread 2024-10-04T20:58:54.098929Z

(here's the now dormant issue on allowing for different JDKs https://github.com/cljdoc/cljdoc/issues/275)

2024-10-04T21:01:44.304639Z

thanks so much! I love the amount of support y'all put into the community

❤️ 1
lread 2024-10-04T22:42:46.867689Z

Initial local tests look good; I only bumped to Temurin JDK23 and did not need to add any special Java opts to get dynamic API analysis to succeed for coffi. All of our guinea pig libs passed API analysis with JDK23. I should probably step away from the computer... I've been at it all day! But I think I can deploy something tomorrow that will allow coffi's docs to build properly on cljdoc.

👍 1
2024-10-04T23:26:32.689829Z

That's good to hear!

lread 2024-10-05T21:53:17.313549Z

Hey ho @suskeyhose, I upgraded the cljdoc-analyzer builder to use JDK23, and coffi now passes API analysis: https://cljdoc.org/d/org.suskalo/coffi/1.0.486

🎉 2
2024-10-05T22:39:33.659339Z

Awesome!