A little thing I've been working on the last few weeks: Clojure bindings for Hegel, a new property-based testing library from the folks who wrote the excellent Hypothesis. Still janky, but it does a significantly better job of shrinking than test.check: https://github.com/aphyr/hegel-clj
I don't think so, the project was just announced at a conference two weeks ago and I started talking to the authors there
Is there anything published about the planned Rust rewrite of the server?
this is super cool. could the core of hegel be ported to clojure/java? or is it built on something specific to the python ecosystem?
In theory sure, but the idea is that writing good generators and shrinking heuristics is really hard, and we should do that work once and re-use it across different languages.
Basically "the Hypothesis folks put decades of work into this; what if you didn't have to reimplement it all yourself"
It's definitely fragile though, and the protocol is IMO kind of a mess at the moment.
Sounds like it would be a cool Conj talk! https://2026.clojure-conj.org/cfp 😉
Gosh I've wanted to come back to Conj for a while! It's right before a different conference though--probably not this year
Then keep it in mind for next ….
Yeah!
If this tickles anyone's fancy, I'd appreciate a few folks trying this out and offering feedback/fixups. I think (as a long-time test.check user) it might actually be better for some of my projects.
I know the Hegel folks are planning to rewrite this in Rust, BTW, so I expect a lot of the python packaging/perf issues will be resolved later.
This is awesome.
the readme mentions test.check integration, and I see some tests comparing test.check shrinking, but I don't see test.check mentioned in the code side
Ah, pardon, that should be clojure.test.
was hoping to see how that was done (I've tried some similar in the past and failed)
I'm not sure it'd be useful in the context of test.check, but probably would be useful in other test runners like midje.