Fork me on GitHub
#dev-tooling
<
2023-01-19
>
lread00:01:48

Heya folks! I'm giving https://github.com/clj-commons/pomegranate some clj-commons maintenance love. As part of this task, I have created a #C04KJME1UPL channel for anybody with an interest. Please join if you use pomegranate.

🙏 2
❤️ 4
cfleming00:01:25

I’m curious about this, what are you planning to update?

lread00:01:31

Glad I got a nibble @U0567Q30W! As for the lib, so far just stale deps, several with CVEs. But for the project, I've reviewed all open issues, increased test coverage, added bb tasks, added a developer guide... stuff like that. Will also automate release workflow.

🙏 2
cfleming00:01:12

Nice, thanks for doing all that - it’s unglamorous unappreciated but really helpful work.

💯 2
cfleming00:01:24

Is pomegranate used anywhere other than lein that you’re aware of, or is it pretty much just a component of lein for all intents and purposes?

cfleming00:01:54

Also (again, just curiosity), the doc says that it’s available in Maven central, but the version tag says clojars. Are you migrating to central for some reason?

lread01:01:58

Nope, haven't touched readme content yet. I think it might be rather stale in places!

lread01:01:40

I was thinking of using it myself, just evaluating, when I noticed the staleness, and figured... why not fix that.

lread01:01:56

I'm familiar with MrAnderson, so have seen it used there. I was curious about usages too, so I got an idea by https://clojars.org/clj-commons/pomegranate/dependents.

cfleming01:01:48

Ok, looks like there are a few people using it, nice.

lread01:01:15

One thing I was curious about is compatibility with very old versions of Clojure. Pomegranate was testing against 1.3.0 because... well the project is that old and I think it never got updated. The dep bumps make 1.4.0 the oldest technically compatible version. But.. I've just switched to running tests via the cognitect test runner (it was using clojure maven plugin run tests), the cognitect runner min version is Clojure 1.8. I'm guessing if 1.8+ is good enough for the Clojure Core team, it is good enough for pomegranate. But there might be some special use cases I do not know about.

lread01:01:30

I think the cider team is sometimes interested in supporting as far back as they can? I'm not sure. Maybe someone will pipe in with an opinion.

cfleming01:01:33

I’m not sure about that for pomegranate. I try to support old versions as far as possible in Cursive, just because someone might download an old project like pomegranate or the old clj-commons and run the REPL, and get Clojure 1.4 or something.

cfleming01:01:24

But I’m not really sure how far back is reasonable to maintain for basic infrastructure, and I don’t have a specific policy on it myself (although I probably should).

cfleming01:01:24

Backwards compatibility is an important value for Clojure, so I try to maintain it as much as possible unless there’s a really good reason (i.e. not just my convenience)

lread01:01:31

Yeah, I asked Alex about this a while ago, his position was that the Core Team tests most projects against 1.8+ and if someone wanted support for an older version he would just tell them to upgrade Clojure.

cfleming01:01:04

Interesting, perhaps I now have my new policy.

lread01:01:04

I thought that was reasonable. It is pretty easy to upgrade Clojure. And forward compatibility is very strong.

lread01:01:29

But I'd like to hear from others too. The lib is pretty small and probably won't change much, so I could figure out how to run explicit tests against Clojure < 1.8.

cfleming01:01:06

I think 1.8 sounds like a reasonable minimum, but it would be interesting to hear what others think.

👍 2
lread13:01:19

fwiw, I decided to reinstate testing all the way back to Clojure 1.4. If we are hampered by this decision at some later date we can revisit.

cfleming22:01:26

Interesting, why 1.4 specifically?

lread05:02:18

Decided to just try to continue, within reason, with what was happening before I dipped my toe in. Pomegranate was formerly testing against 1.3 only, 'cause I think it was just never updated. Bumping deps made 1.3 fail, didn't care why, so just starting at 1.4 now, and now testing up to current 1.11. Will revisit decision if it turns out to be pain.