yada

borkdude 2020-10-13T13:34:49.009200Z

What's the current state of yada vs apex? Is the latter still being developed?

dominicm 2020-10-13T14:22:49.009300Z

Someone should trick you into working on it, it'll be done in a week

malcolmsparks 2020-10-13T17:27:12.012800Z

yada is stable, but maintenance is slow. Apex is being actively developed. Apex has spun off a number of foundational libraries, which are progressing nicely - such as https://github.com/juxt/reap, https://github.com/juxt/vext, https://github.com/juxt/pick and https://github.com/juxt/spin. Apex will focus on OpenAPI rather than everything yada does. But the ensemble does/will-do more than yada does, and be much improved over yada. I hope it will be worth the wait, I think it will be really nice when it's ready to use.

malcolmsparks 2020-10-13T17:28:20.014Z

I can't really give a time-frame because it depends on a number of factors (how busy we are at work, for example. But if you see how much it's progressed since ClojureD, it's been a very productive period recently (probably Covid related...)

borkdude 2020-10-13T17:28:30.014300Z

Cool. So there will be an edge-like project showcasing the combination of these?

malcolmsparks 2020-10-13T17:30:45.015200Z

Yes, it's taking shape. There's https://github.com/juxt/site too which 'links' to Edge modules - which is a hack that @dominicm isn't a huge fan of 🙂

dominicm 2020-10-13T17:31:29.016600Z

Not a preference thing, it just doesn't work over time 😛

😜 1
borkdude 2020-10-13T17:31:32.016800Z

Nice to hear

malcolmsparks 2020-10-13T17:31:40.017200Z

https://github.com/juxt/site is all this stuff with Crux at the bottom, but demonstrates how all these things work together. My current focus in this stack right now is https://github.com/juxt/spin - there's a tests branch there.

dominicm 2020-10-13T17:33:10.019200Z

I've experimented with using some of these libraries in yada and had success. Particularly pick. Once there's maven release, I think that patch can make its way upstream.

dominicm 2020-10-13T17:33:34.019800Z

It fixed a Charset bug you reported in fact @borkdude

malcolmsparks 2020-10-13T17:36:35.021200Z

A lot of these libraries are influenced by learnings from yada and other libraries. In fact, reap was pretty much extracted from code that was evolving in yada and jinx.

malcolmsparks 2020-10-13T17:37:31.023Z

There's a lot of modularity here, and these libraries can be used independently of Apex. Yada is too big - overall it has something like 150+ transitive dependencies in the default version.

malcolmsparks 2020-10-13T17:37:48.023800Z

So a lot of this effort was figuring out how to break it up

dominicm 2020-10-13T17:38:24.025400Z

@borkdude fwiw, I'm using yada in prod and I'd like to fix the bugs I'm hitting at least. Ideally by leveraging all this hard work. I'm trying to convince Malcolm that we can do a new yada that lives alongside the old one.

dominicm 2020-10-13T17:38:39.026100Z

I notice that aleph is getting some love...

malcolmsparks 2020-10-13T17:38:47.026400Z

Plus leveraging lots of developments over the last few years (e.g. Ring 1.6 async handlers, OpenAPI 3.1, Vert.x/ReactiveStreams, and more)

malcolmsparks 2020-10-13T17:40:22.028Z

@dominicm yes, that makes sense - I didn't want to pursue all these goals in the current yada code-base because it would have been too hard working within all the compatibility constraints. So it's better to leave yada as it is and figure out later how to upgrade it.

👍 1
malcolmsparks 2020-10-13T17:43:41.030100Z

There's some fundamental things that yada and OpenAPI to differently - one is that yada determines content-type before status, OpenAPI determines status, which then influences the content-type decision. It's little things like that which are hard to resolve. Apex and friends are aligned more with the decisions OpenAPI makes, for right or wrong.