palletops / leaven

A component composition library for clojure and clojurescript
Eclipse Public License 1.0
84 stars 6 forks source link

It make sense the api-builder dependency in leaven? #8

Open niwinz opened 9 years ago

niwinz commented 9 years ago

Hi!

I'm not sure if this is a good place for this question, let me known if is an other.

The question is: it make sense the api-builder dependency in leaven? I have observed the code and the schemas defined are unused and all signatures are s/Any.

I really like the idea of leaven, because I want a uniform way to do the components in a frontend and backend, but I'm personally do not want have the api-builder dependency. And seems that is not very used in leaven.

That do you thing?

And, independently of that decision, I have very strange dependency graph when I add leaven to my project (clojure, not clojurescript):

 [com.palletops/leaven "0.3.1"]
   [com.palletops/api-builder "0.3.1"]
     [com.cemerick/austin "0.1.6"]
       [com.cemerick/piggieback "0.1.4"]
       [org.clojure/clojurescript "0.0-2665"]
         [com.google.javascript/closure-compiler "v20140625"]
           [args4j "2.0.26"]
           [com.google.code.findbugs/jsr305 "1.3.9"]
           [com.google.javascript/closure-compiler-externs "v20140625"]
           [com.google.protobuf/protobuf-java "2.5.0"]
           [org.json/json "20090211"]
         [org.clojure/data.json "0.2.3"]
         [org.clojure/google-closure-library "0.0-20140718-946a7d39"]
           [org.clojure/google-closure-library-third-party "0.0-20140718-946a7d39"]
         [org.mozilla/rhino "1.7R4"]
     [org.clojure/tools.macro "0.1.2"]
     [prismatic/schema "0.4.2"]

Almost all that dependencies should development only...

Thanks for your time and the great work in this package.

niwinz commented 9 years ago

Ok, seems that this project is abandoned. If you don't have time to this project, do you consider leave its development to an other person? I'm personally interested.

hugoduncan commented 9 years ago

@niwinz Not really abondoned - it is in regular use here, and I just haven't had much time recently. Apart from the clojurescript related dependencies (which are definitely not intended), what are your objections to api-builder? I am happy to add you as a maintainer to leaven as soon as you have a PR.

niwinz commented 9 years ago

Hi @hugoduncan

I don't have any thing relevant against api-builder. I think that is very good for build applications. But using it in a library that exposes a public api using api-builder makes mandatory to users of that library use al the things that api-builder imposes. It is not bad per se, but the best way IMHO is avoid this sitation and leave to the user that decisions. api-builder exposes very opinionated api.

However, this is a issue on leaven and not api-builder. I really want a component library as simple as stuartsierra/component but for both, clojurescript and clojure and leaven seems a good candidate. The main obstacle for me is its dependencies and the usage of api-builder. I have seen some leaven code and the api-builder is almost not used so (in my opinion, obviously) is a great candidate to get it out.

And about my last message, It's ok if you are using this library regularly, but if issues and PR's are not replied, the image to the outside is that the package is abandoned.

So if you are build this library only for you, the best way is indicate something in readme about the situation. It is very important manage expectations of the people that found your library (as example: om pass very great amount of time with message that does not accept PR because the package was in design phase).