yada

martinklepsch 2018-01-23T14:12:42.000007Z

Yikes ^

malcolmsparks 2018-01-23T14:13:33.000567Z

Thanks

martinklepsch 2018-01-23T14:14:01.000042Z

besides that it seems that yada/yada.clj is the only clj file in the jar, a file which seemingly does not exist in the repo?

malcolmsparks 2018-01-23T14:14:17.000823Z

One sec

martinklepsch 2018-01-23T14:15:45.000435Z

Ah, yada.clj is in one of the bundles

malcolmsparks 2018-01-23T14:38:07.000526Z

Hi @martinklepsch - sorry was just in a conf call earlier. Yada is broken up into a number of smaller extensions, composed into bundles. The rationale was that the number of yada transitive dependencies is over 150 and that's just too many for some use-cases. The extension approach allows extensions that aren't necessarily core to HTTP (e.g. a future implementation of WebDAV), would not add to the overall bloat. It's not entirely obvious when something is an optional extra and when something is core. E.g. Parameters - these are useful for the swagger generation and validation, and have been in yada since day one, but there's nothing in HTTP itself that requires them.

malcolmsparks 2018-01-23T14:38:50.000246Z

The aleph extension you are seeing is version 1.2.8, it depends on the actual version of aleph. The point of making aleph an extension is to provide support for other web servers in the future.

malcolmsparks 2018-01-23T14:40:42.000342Z

Yada is a big project, and in the future could be even bigger. There are other projects such as Incanter that suffer from the same dependency bloat (which increases the chances of version incompatibilities when integrated with end-user projects). Last year when I refactored yada into this design there was an obvious candidate for how to structure a large library. I hope they'll be more work in the dependencies area in the future which may suggest better approaches.

martinklepsch 2018-01-23T14:40:54.000254Z

I see, so those jars aren’t actually aleph etc but yada/aleph and similar?

malcolmsparks 2018-01-23T14:41:12.000593Z

yes

martinklepsch 2018-01-23T14:41:26.000135Z

Got it

malcolmsparks 2018-01-23T14:41:52.000688Z

you can compose your own bundle of yada if you want to change it, it's a power-user feature but others have done this

martinklepsch 2018-01-23T14:42:17.000311Z

makes sense

malcolmsparks 2018-01-23T14:43:21.000409Z

By design, yada is not very modular (like Ring middleware), you can't really have HTTP compliance with a pick-and-mix style of bringing in an adhoc choice of clojure libraries - it has to be batteries-included (but there is a compartment at the back which allows you to change the batteries)

martinklepsch 2018-01-23T14:43:26.000141Z

If I were to create an API documentation for yada, what jar would be the “default” one is the one that has just yada/yada.clj the right one?

malcolmsparks 2018-01-23T14:43:41.000212Z

yep - that's the default one which has everything

malcolmsparks 2018-01-23T14:44:12.000013Z

i'd love to see the API documentation - I'm sure it would reveal some inconsistencies to work on

martinklepsch 2018-01-23T14:44:17.000473Z

Got it. And so all other sources in src/ are packaged up in dependencies of yada itself?

martinklepsch 2018-01-23T14:45:26.000110Z

Well it’s really just Codox but it poses an interesting problem which is that some common APIs may not be visible because they are not part of the jar but a dependency (which would have it’s own API docs)

martinklepsch 2018-01-23T15:19:33.000228Z

With Bidi’s verbose syntax is there a way to supply a regex pattern? https://github.com/juxt/bidi/blob/e50626890d592782f8309ac950e942baafe642f4/test/bidi/verbose_test.cljc

martinklepsch 2018-01-23T15:39:00.000029Z

[["/" :group-id]
 [["/" :group/index]
  [["/" :artifact-id]
   [["/" :artifact/index]
    [["/" :version]
     [["/" :artifact/version]
      [["/" [#"[\w\.]+" :namespace] ""]
       [["/" :artifact/namespace]
        [["#" :def] [["" :artifact/def]]]]]]]]]]]
I have a routes definition like this but can’t get it to match any :artifact/def routes despite path-for properly generating them (you could say I can’t “round-trip")

martinklepsch 2018-01-23T19:22:11.000553Z

Thanks, in that case I guess that makes sense