Hi,
Am 16.09.2015 um 01:47 schrieb Andrew Oberstar:
> 1. Having both Bitbucket and Github repos is a little confusing. It
> always takes me a bit to figure out which is the canonical source.
I have a deep distaste for git. With mercurial I just feel at home and
patch queues are awesome to work with. (So maybe I should switch to
darcs?) I also like the tracker and interface of bitbucket. So bitbucket
was up to now always authoritative.
That said: I'm pretty alone with using hg and since it works reasonably
well with git repos, that can be changed to github. In fact the repos
are already there.
> 2. The documentation being on each repo feels disjointed. It's hard to
> get a picture of practical usage without a lot of jumping.
Documentation is a sad story. A central site should be installed with
documentation and as single point of entry. Also I would prefer a
central bug tracker. The site could also host the documentation ebook -
should that ever be finished.
> From the hype, their new model approach should address a lot of Gradle
> pains. Understanding how much of that pain is alleviated in practice is
> a large part of my motivation here. Granted, that's also the part least
> relevant to promoting Gradle to the Clojure community.
In fact there is not much pain from the gradle's user point of view. At
least I never had big problems and quite a lot worked just as
advertised. Even with clojuresque.
The pain is more under the hoods. The APIs changed a lot actually and
the very sad thing is that the official plugins used gradle internal
APIs. After getting a myself a bloody nose of breaking-API-change I
reimplemented things. Pfff...
> While I originally thought my goal of targeting the new model plugins
> implied that there couldn't be shared effort, I would expect the
> opposite is true. The tasks at least could be shared across both the
> current-style plugins and the model-style.
>
> Before I get into anything on this front, I'll take a deeper look at
> Clojuresque's repositories to see how much of the effort seems shareable
> between those two plugin approaches. If it's significant, I may hit you
> up on that access offer.
The repo layout is as follows:
* common: common utility things, non-clojure specific, preparation for
scriptoresque (ClojureScript)
* base: minimal clojure plugin providing source sets, building, etc.
* nrepl: providing a repl task
* clojars: publication to clojars
* extra: some tasks (Watcher task, etc.) which are not clojuresque
specific and could be in their own plugin
* clojuresque: meta plugin which sucks in all of the above
Most repos are split into a plugin and a runtime part. The plugin is the
gradle side. The runtime is the part which has to be on the project's
classpath (via the clojuresque configuration) to be able to run the
different tasks.
The idea is to allow individual speed of development of the different
moving parts. Also in regard of a possible ClojureScript plugin. And to
allow to use just what is necessary. (I move to bintray for example. So
the clojars plugin becomes less interesting.)
I hope this gives a starting point to get an overview.
Feel free to fire away your questions. Vacation period is over, so
things should calm down now and I hope to be more responsive now.
Meikel