Let me paraphrase. 

You asked for proof. No proof is needed. It is self-evident.

Julian


> On Jul 2, 2019, at 9:01 AM, Vladimir Sitnikov <sitnikov.vladi...@gmail.com> 
> wrote:
> 
> Michael> I agree with Julian's point about adding maintenance
> Michael> overhead.
> 
> Frankly speaking, it is (still) extremely hard for me to decipher Julian's
> mail.
> It is so dense that I can't really understand the meaning.
> 
> For instance:
> 
> Julian>Proof that the amount of knowledge required to maintain Avatica and
> Calcite is straightforward
> 
> I could read "Proof" as both noun and verb.
> Both variations produce sense to me:
> a) (Please) Proof that the amount ...
> b) (the) Proof that ... is straightforward (as follows)
> 
> Julian>There are more lines of code, the code is getting older, and the
> number of technologies is increasing
> 
> I can't understand if that is a generic statement regarding all the changes
> in Avatica thought the recent 5-10years or if that statement classifies
> Gradle PR only.
> 
> Julian>I don’t know how you can refute that claim
> 
> I know neither because, well, I don't understand the preceding sentences :(
> 
> 
> Michael> Is there any reason we need to use Kotlin for the build script?
> Michael> Couldn't this just be more Java?
> 
> Gradle has two options: Groovy or Kotlin.
> 
> I know of no Java-based build system. Why do you ask for that? Do you have
> ideas?
> 
> I'm sure Kotlin wins when compared with Groovy.
> 
> My experience shows that:
> a) StackOverflow, Google, and Gradle documentation are good enough to
> develop Gradle scripts. Of course the maintenance is simpler than writing
> from scratch.
> b) Gradle provides explicit APIs for customization which is much simpler
> than extending Maven
> c) Gradle scripts can be debugged as usual code. That is I can put a
> breakpoint right in the middle of Gradle build script, I can watch
> variables and play with them. Can you do that in Maven? I doubt so.
> 
> Michael>I agree with Julian's point about adding maintenance
> Michael>overhead.
> 
> Even though you both are right that "a new technology must have some
> costs", I strongly
> disagree that Gradle for Calcite/Avatica would make maintenance more
> complicated.
> 
> I have shown numerous examples, and there are multiple JIRA tickets
> regarding surprising mvn outcomes which Calcite committers can't fix.
> 
> We could have a Google Hangouts talk if you will.
> It might be a nice point to spark an online conversation. I can share the
> screen and walk though basic steps.
> 
> However, (even though I try to be extremely inclusive) I really fail to
> believe that you "haven't really encountered the same problems with Maven".
> I guess it means that I just failed to explain the problems in a right way.
> 
> For instance. Can I pick the very first example of
> https://issues.apache.org/jira/browse/CALCITE-2905 ?
> 
> 1) If you change code in "core" and or "linq4j" modules and you want to
> check "cassandra", you need to "mvn install" those modules first otherwise
> "cassandra" would use "core" from the local Maven repository
> 
> As you say, you "haven't encountered that".
> Does that mean you always build and run all the tests and Calcite modules?
> I doubt so.
> Does that mean you can make changes to "linq4j", and immediately run core
> tests WITHOUT "mvn install" on linq4j? I doubt so.
> Does that mean you take "for granted that one must manually perform mvn
> install in linq4j; and only then run tests in core"? It does not have to be
> like that.
> 
> 
> That is especially true for cross-project changes. For instance, if you
> make a change in Avatica, you can't easily run Calcite test via Maven.
> In the same way, you can't really run a Drill test right after you modify a
> class in Calcite.
> 
> Gradle makes that possible with virtually zero configuration.
> 
> Once upon a time I was investigating Calcite-Drill planning issue (e.g.
> https://issues.apache.org/jira/browse/CALCITE-2223 ), and it was pity how
> developer experience of "Calcite consumers" was. One have to invent custom
> versions in poms, rebuild the projects in the right order. Sometimes I
> failed to rebuild the important ones and so on.
> It would be so much easier I could just launch a Drill test I want.
> 
> 
> I'm sure that feature alone dramatically reduces maintenance costs as it
> greatly simplifies cross-project testing (e.g. Avatica-Calcite, or modules
> within Calcite, or Calcite-Drill, or Avatica-Calcite-Drill or whatever
> else).
> 
> Vladimir

Reply via email to