Thanks for the update. I was swamped on some meetings. I'm back to test the latest changes.
Regards JB On Nov 8, 2017, 18:56, at 18:56, Lukasz Cwik <[email protected]> wrote: >Thanks everyone for trying this build out in different workspaces / >configurations. This will help make sure the build works for more >people >and will get rid of any rough edges. > >Performance (All): >Maven performs parallelization at the module level, an entire module >needs >to complete before any dependent modules can start, this means running >all >the checks like findbugs, checkstyle, tests need to finish. Gradle has >task >level parallelism between subprojects which means that as soon as the >compile and shade steps are done for a project, and dependent >subprojects >can typically start. This means that we get increased parallelism due >to >not needing to wait for findbugs, checkstyle, tests to run. I typically >see >~20 tasks (at peak) running on my desktop in parallel. > >Apache Rat (JB / Romain): >What files are in the rat report that fail (its likely that I'm missing >some exclusion for a build time artifact)? Also, please try the build >again >after running `git clean -fdx` in your workspace. > >Python (JB): >As for the Python SDK, you'll need to share more details about the >failure. > >Gradle 4.3: >I would like to defer the swap to Gradle 4.3 until after this PR since >it >will be a much smaller set of changes. > >On Wed, Nov 8, 2017 at 12:54 AM, Jean-Baptiste Onofré <[email protected]> >wrote: > >> Same for me for rat and python build too: >> >> FAILURE: Build completed with 2 failures. >> >> 1: Task failed with an exception. >> ----------- >> * What went wrong: >> Execution failed for task ':rat'. >> > Found 905 files with unapproved/unknown licenses. See >> file:/home/jbonofre/Workspace/beam/build/reports/rat/rat-report.txt >> >> * Try: >> Run with --stacktrace option to get the stack trace. Run with --info >or >> --debug option to get more log output. >> ============================================================ >> ================== >> >> 2: Task failed with an exception. >> ----------- >> * Where: >> Build file '/home/jbonofre/Workspace/beam/sdks/python/build.gradle' >line: >> 64 >> >> * What went wrong: >> Execution failed for task ':beam-sdks-parent:beam-sdks-python:lint'. >> > Process 'command 'tox'' finished with non-zero exit value 1 >> >> >> >> On 11/08/2017 09:51 AM, Romain Manni-Bucau wrote: >> >>> gradle branch doesnt build for me (some rat issues) >>> >>> Romain Manni-Bucau >>> @rmannibucau | Blog | Old Blog | Github | LinkedIn >>> >>> >>> 2017-11-08 5:41 GMT+01:00 Jean-Baptiste Onofré <[email protected]>: >>> >>>> Great ! >>>> >>>> What explain these difference ? I'm curious especially for the >clean >>>> build >>>> all Java modules: is it a question of parallel execution ? >>>> >>>> Regards >>>> JB >>>> >>>> >>>> On 11/08/2017 02:59 AM, Lukasz Cwik wrote: >>>> >>>>> >>>>> The Gradle POC has made significant advances since last week >(shading, >>>>> Python, Go, Docker builds, ...). I believe the current state is >close >>>>> enough to the Maven build system to warrant a comparison. >>>>> >>>>> The largest build differences I noticed are: >>>>> * Full build takes about ~22mins using Gradle (parallelizing the >three >>>>> rounds of Python tests would reduce this to ~17mins) compared to >~38mins >>>>> in >>>>> Maven >>>>> * Clean build all Java modules (skipping over Go/Python >>>>> <https://goto.google.com/Python>) takes ~8mins in >>>>> Gradle which takes ~36mins in Maven >>>>> * Build output is cached allowing for faster subsequent builds >with >>>>> "gradle >>>>> buildDependents" allowing for most single module changes taking >~2mins >>>>> to >>>>> build and test without needing to rely on "mvn install" >>>>> >>>>> I have opened PR 4096 <https://github.com/apache/beam/pull/4096> >so >>>>> that >>>>> the Gradle build files merged and then follow up with new Jenkins >>>>> precommits which are powered by Gradle. This will allow the >community to >>>>> continuing contributing to the Gradle build and also allow for a >>>>> comparison >>>>> of the precommit times on the Jenkins executor when using >Maven/Gradle. >>>>> I >>>>> suggest that those who are interested try out the PR. >>>>> >>>>> On Fri, Nov 3, 2017 at 10:29 PM, Jean-Baptiste Onofré ><[email protected]> >>>>> wrote: >>>>> >>>>> That makes sense. The point is that we have to compare >equivalently. I'm >>>>>> also curious about Gradle PoC assuming it does the same actions >as >>>>>> Maven. >>>>>> >>>>>> Regards >>>>>> JB >>>>>> >>>>>> On Nov 3, 2017, 20:41, at 20:41, Kenneth Knowles >>>>>> <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> I'm confident that any choice will speed things up dramatically >even >>>>>>> beyond >>>>>>> a fast profile, even if the new tool runs all the extra stuff. >But >>>>>>> that >>>>>>> is >>>>>>> a question that we can answer empirically anyhow. Let's see how >it >>>>>>> goes! >>>>>>> >>>>>>> Incidentally, my experiments with Bazel have led me to the >conclusion >>>>>>> that >>>>>>> it is not the right choice for us so I'm not going to be >proposing any >>>>>>> completed POC of that right now. I'm interested in the outcome >of the >>>>>>> Gradle POC. >>>>>>> >>>>>>> Kenn >>>>>>> >>>>>>> >>>>>>> On Fri, Nov 3, 2017 at 3:30 AM, Jean-Baptiste Onofré ><[email protected] >>>>>>> > >>>>>>> wrote: >>>>>>> >>>>>>> Hi >>>>>>>> >>>>>>>> It's what I said in a previous e-mail: I don't think that just >>>>>>>> >>>>>>> >>>>>>> changing >>>>>>> >>>>>>>> >>>>>>>> the build tool will improve a lot the build time. >>>>>>>> >>>>>>>> We already know (and discussed while ago) that plugins like >findbugs, >>>>>>>> checkstyle, etc are taking time. >>>>>>>> >>>>>>>> So, I think we can already have a fast profile. >>>>>>>> >>>>>>>> Regards >>>>>>>> JB >>>>>>>> >>>>>>>> On Nov 3, 2017, 11:16, at 11:16, Romain Manni-Bucau >>>>>>>> >>>>>>> >>>>>>> <[email protected]> >>>>>>> >>>>>>>> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> Hi guys, >>>>>>>>> >>>>>>>>> when you check the duration of each mojo of the build (almost >since >>>>>>>>> python part of the build just breaks it locally) you see that >there >>>>>>>>> >>>>>>>> >>>>>>> is >>>>>>> >>>>>>>> >>>>>>>>> no real link with maven for the perf issues beam can >encounter: >>>>>>>>> https://gist.github.com/rmannibucau/f65fdde28d5dab0fdac50633 >>>>>>>>> f84554c9 >>>>>>>>> (generated from the profiling of tesla-profile and parsed with >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >https://gist.github.com/rmannibucau/e329d54b8af6c009f46fd151d10037ad >>>>>>>> ) >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Before PoC-ing other tools which will end up to either have >the same >>>>>>>>> issues if the other builds do the same things (test, >checkstyle, >>>>>>>>> enforcer, findbugs, ...) or have a less reliable build (trying >to >>>>>>>>> >>>>>>>> >>>>>>> skip >>>>>>> >>>>>>>> >>>>>>>>> some parts of the build if "untouched" - note that this is a >very >>>>>>>>> >>>>>>>> >>>>>>> hard >>>>>>> >>>>>>>> >>>>>>>>> issue since static code anaylizis doesn't give you any >guarantee of >>>>>>>>> what it does with modern code - then maybe some action can be >taken >>>>>>>>> >>>>>>>> >>>>>>> on >>>>>>> >>>>>>>> >>>>>>>>> the current build: >>>>>>>>> >>>>>>>>> - testing >https://github.com/vackosar/gitflow-incremental-builder >>>>>>>>> or >>>>>>>>> https://github.com/khmarbaise/incremental-module-builder maybe >or >>>>>>>>> do >>>>>>>>> the same kind of extension including the beam needs (/!\ the >>>>>>>>> >>>>>>>> >>>>>>> previous >>>>>>> >>>>>>>> >>>>>>>>> warning is still accurate and requires a full run at some >point to >>>>>>>>> validate the graph detection algorithm didn't get abused by >some >>>>>>>>> indirect code dependency) >>>>>>>>> - maybe try to get rid of some shades (it is a bit crazy ATM >to have >>>>>>>>> so much shades no?) >>>>>>>>> - the CI can have profiles based on a PR convention (name of >the >>>>>>>>> branch?) to select the build profile, for instance >>>>>>>>> fb/elasticsearch_super-nice-PR would build only the >elasticsearch >>>>>>>>> modules, jenkins/travis have this ability since they support >>>>>>>>> >>>>>>>> >>>>>>> scripting >>>>>>> >>>>>>>> >>>>>>>>> - document how to setup a "fastBuild" profile in its >settings.xml >>>>>>>>> which bypasses checkstyle, enforcer plugin, findbugs, etc... >for >>>>>>>>> >>>>>>>> >>>>>>> fast >>>>>>> >>>>>>>> >>>>>>>>> development iterations >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Romain Manni-Bucau >>>>>>>>> @rmannibucau | Blog | Old Blog | Github | LinkedIn >>>>>>>>> >>>>>>>>> >>>>>>>>> 2017-11-01 21:02 GMT+01:00 Kenneth Knowles ><[email protected] >>>>>>>>> >: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> I have started one, here: >>>>>>>>>> >>>>>>>>> >>>>>>>>> https://github.com/kennknowles/beam/commits/bazel. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> It is not nearly as far along as Luke's. For the POC I am >just >>>>>>>>>> >>>>>>>>> >>>>>>>>> putting >>>>>>>>> >>>>>>>>>> >>>>>>>>>> things in one root BUILD, and learning where we might find >the >>>>>>>>>> >>>>>>>>> >>>>>>>>> necessary >>>>>>>>> >>>>>>>>>> >>>>>>>>>> plugins as I go. I am happy to grant push access to this >branch. >>>>>>>>>> >>>>>>>>> >>>>>>> It >>>>>>> >>>>>>>> >>>>>>>>> would >>>>>>>>> >>>>>>>>>> >>>>>>>>>> be superb if you had some time to work through the Python >steps. >>>>>>>>>> >>>>>>>>>> On Wed, Nov 1, 2017 at 10:09 AM, Ahmet Altay >>>>>>>>>> >>>>>>>>> >>>>>>>>> <[email protected]> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Has anyone started a POC with Bazel? I would be interested in >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> helping that >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> effort. >>>>>>>>>>> >>>>>>>>>>> On Wed, Nov 1, 2017 at 9:27 AM, Lukasz Cwik >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> <[email protected]> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> I have started a POC for using Gradle here: >>>>>>>>>>>> https://github.com/lukecwik/incubator-beam/tree/gradle >>>>>>>>>>>> >>>>>>>>>>>> Things that work: >>>>>>>>>>>> * compiling all Java code (src/main and src/test) >>>>>>>>>>>> * generating source from protos >>>>>>>>>>>> * generating source from avro >>>>>>>>>>>> * running rat, checkstyle >>>>>>>>>>>> >>>>>>>>>>>> Partially working: >>>>>>>>>>>> * generating maven pom (albeit with wrong dependencies for >some >>>>>>>>>>>> subprojects) >>>>>>>>>>>> * running tests (~80% pass, remainder seem to be dependency >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> related but >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> are >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> uninvestigated) >>>>>>>>>>>> >>>>>>>>>>>> Things that don't work: >>>>>>>>>>>> * anything Python/Go/Docker compilation related >>>>>>>>>>>> * many tests fail because I messed up dependencies >>>>>>>>>>>> * anything shading related >>>>>>>>>>>> * minor plugins like eclipse code formatter/... >>>>>>>>>>>> * running @NeedsRunner/@ValidatesRunner/integration tests >>>>>>>>>>>> >>>>>>>>>>>> Feel free to reach out to me on Slack if you would like to >try >>>>>>>>>>>> >>>>>>>>>>> >>>>>>> to >>>>>>> >>>>>>>> >>>>>>>>> tackle >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> a >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> piece of the POC to prevent duplication of effort from >anyone >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> working on >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>> it. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Oct 31, 2017 at 10:25 PM, Jean-Baptiste Onofré >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> <[email protected]> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Agree to move forward on a PoC. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks Reuven for bringing discussion on the mailing list >! >>>>>>>>>>>>> >>>>>>>>>>>>> Regards >>>>>>>>>>>>> JB >>>>>>>>>>>>> >>>>>>>>>>>>> On Nov 1, 2017, 03:20, at 03:20, Reuven Lax >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>> <[email protected]> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Some good discussion here, and thanks to JB and Romain >for >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>> adding to >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> it! >>>>>>>>>>>>>> >>>>>>>>>>>>>> JB makes the good point that we still need to release >Maven >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>> artifacts, >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> as >>>>>>>>>>>>>> many Beam users want to develop using Maven. So none of >this >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> discussion >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>> will affect our release process, as we still need Maven >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>> "releases." >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> At this point, if people are interested, I see no harm in >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>> prototyping. >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> Having working alternatives will give us a better basis >for >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>> comparison >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> to >>>>>>>>>>>>>> understand whether these other build systems give us >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>> anything >>>>>>> >>>>>>>> >>>>>>>>> over >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> what >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>> Maven does. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Reuven >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Oct 31, 2017 at 11:05 AM, Charles Chen >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>> <[email protected] >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> As a contributor to the Beam Python SDK, I noticed that >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>> many >>>>>>> >>>>>>>> >>>>>>>>> of the >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> points >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> above regarding Maven and Gradle pertain mostly to Java >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>> SDK >>>>>>> >>>>>>>> >>>>>>>>>>>>>> development. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> For Python development, Maven is much less natural, and >we >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>> end up >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> just >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> shelling out to perform builds and tests. For Python >SDK >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>> (and >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> upcoming Go >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> SDK development), an option to use Bazel would be quite >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>> useful. >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Tue, Oct 31, 2017 at 10:42 AM Robert Bradshaw >>>>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> +1, Maven is both a build tool and a repository, and the >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>> latter is >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>>> essential to keep. Both Gradel and Bazel can interface >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>> with >>>>>>> >>>>>>>> >>>>>>>>> this >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>>> repository. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I am, however, very supportive of moving away from >Maven >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>> to >>>>>>> >>>>>>>> >>>>>>>>> a tool >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>>> that supports correct incremental, hermetic, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>> dependency-driven, >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>>> multi-langauge, and hopefully fast builds for our own >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>> development. >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Tue, Oct 31, 2017 at 10:00 AM, Kenneth Knowles >>>>>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Echoing what JB and Reuven said, we absolutely must >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>> provide >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> maven >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>>> central >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> artifacts for Java users, just as we provide pypi >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>> artifacts for >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> Python >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> users. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I see Maven as still a viable tool for single-module >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>> Java >>>>>>> >>>>>>>> >>>>>>>>>>> builds, >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>>>>> especially considering its rich plugin ecosystem. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Mon, Oct 30, 2017 at 11:27 PM, Reuven Lax >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>> <[email protected] >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I think that's a very good point. No matter what >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>> build >>>>>>> >>>>>>>> >>>>>>>>> system >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> we >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>> use >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> for >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> our own personal development, we still need to >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>> release >>>>>>> >>>>>>>> >>>>>>>>> Maven >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> artifacts >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> and >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> releases as we need to support our users using Maven. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Mon, Oct 30, 2017 at 11:26 PM, Jean-Baptiste >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>> Onofré < >>>>>>> >>>>>>>> >>>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Generally speaking, it's interesting to evaluate >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>> alternatives, >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>>>> especially >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Gradle. My point is also to keep Maven artifacts >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>> and >>>>>>> >>>>>>>> >>>>>>>>>>>>>> "releases" as >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> most >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> our users will use Maven. >>>>>>>>>>>>>>>>>>> For incremental build, afair, there's some >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>> enhancements on >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> Maven >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> but I >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> have to take a look. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Regards >>>>>>>>>>>>>>>>>>> JB >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Oct 31, 2017, 07:22, at 07:22, Eugene Kirpichov >>>>>>>>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi! >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Many of these points sound valid, but AFAICT Maven >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> doesn't >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> really >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> do >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> incremental builds [1]. The best it can do is, it >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> seems, >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> recompile >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> only >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> changed files, but Java compilation is a tiny part >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>> of >>>>>>> >>>>>>>> >>>>>>>>> the >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> overall >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> build. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Almost all time is taken by other plugins, such as >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> unit >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> testing or >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> findbugs >>>>>>>>>>>>>>>>>>>> - and Maven does not seem to currently support >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> features such >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> as "do >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> not >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> rerun unit tests of a module if the code didn't >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> change". >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> The fact that the surefire plugin has existed for >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>> 11 >>>>>>>> >>>>>>>>> >>>>>>>>> years >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>> (version >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> 2.0 >>>>>>>>>>>>>>>>>>>> was released in 2006) and still doesn't have this >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> feature >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> makes me >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> think >>>>>>>>>>>>>>>>>>>> that it's unlikely to be supported in the next few >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> years >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> either. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I suspect most PRs affect a very small number of >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> modules, so >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> I >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> think >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>>> performance advantage of a build system truly >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> supporting >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>> incremental >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> builds >>>>>>>>>>>>>>>>>>>> may be so overwhelming as to trump many other >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>> factors. Of >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> course, >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> we'd >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> need >>>>>>>>>>>>>>>>>>>> to prototype and have hard numbers in hand to >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>> discuss >>>>>>> >>>>>>>> >>>>>>>>> this >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> with >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> more >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> substance. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> [1] >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >https://stackoverflow.com/questions/8918165/does-maven- >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>>>>>>>>> support-incremental-builds >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Mon, Oct 30, 2017 at 10:57 PM Romain >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>> Manni-Bucau >>>>>>> >>>>>>>> >>>>>>>>>>>>>>>>>>>> <[email protected]> >>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Even if not a commiter or even PMC, I'd like to >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>> mention a >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> few >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> points >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> from >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> an external eye: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> - Maven stays the most common build tool and >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> easier >>>>>>> >>>>>>>> >>>>>>>>> one >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> for >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>> any >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> user. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> It >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> means it is the best one to hope contributions >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>> IMHO. >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> - Maven has incremental support but if there is >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> any >>>>>>> >>>>>>>> >>>>>>>>>>> blocker >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>> the >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> community >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> is probably ready to enhance it (has been done >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> for >>>>>>> >>>>>>>> >>>>>>>>>>> compiler >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>>> plugin >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> for >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> instance) >>>>>>>>>>>>>>>>>>>>> - Gradle hides issues easily with its daemon so >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> a >>>>>>> >>>>>>>> >>>>>>>>> build >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> without >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> daemon is >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> needed >>>>>>>>>>>>>>>>>>>>> - Gradle doesnt isolate plugins well enough so >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>> ensure your >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>> planned >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> plugins >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> doesnt conflict >>>>>>>>>>>>>>>>>>>>> - Only Maven is correctly supported in >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> mainstream >>>>>>> >>>>>>>> >>>>>>>>> and >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> OS/free IDE >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> This is the reasons why I think Maven is better >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> - >>>>>>> >>>>>>>> >>>>>>>>> not even >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>>> entering >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> into >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> the ASF points. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Now Maven is not perfect but some quick >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>> enhancements can >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> be >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>> done: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> - A fast build profile can be created >>>>>>>>>>>>>>>>>>>>> - Takari scheduler can be used yo enhance the >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>> parallel >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> build >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> - Scripts can be provided to build a subpart of >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> the >>>>>>> >>>>>>>> >>>>>>>>>>> project >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> - A beam extension can surely be done to >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> optimize >>>>>>> >>>>>>>> >>>>>>>>> or >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> compute the >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> reactors >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> more easily based on module names >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Romain >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Le 31 oct. 2017 06:42, "Jean-Baptiste Onofré" >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>> <[email protected]> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> a >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> écrit : >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> -0 >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> For the following reasons reasons: >>>>>>>>>>>>>>>>>>>>> - maven is a Apache project and we can have >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>> support/improvement >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> - I don't see how another build tool would speed >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> up >>>>>>> >>>>>>>> >>>>>>>>> the >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> build by >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> itself >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> - Apache default release process is based on >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>> Maven >>>>>>> >>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On the other hand, Gradle could be interesting. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>> Anyway >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> it's >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>>>> something >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> evaluate. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Regards >>>>>>>>>>>>>>>>>>>>> JB >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Oct 30, 2017, 18:46, at 18:46, Ted Yu >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>> <[email protected]> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> I agree with Ben's comment. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Recently I have been using gradle in another >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>> Apache >>>>>>>>> >>>>>>>>>> >>>>>>>>>>>>>> project and >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> found >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>>>>>> interesting. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Cheers >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>> >>>>>> >>>>> >>>> -- >>>> Jean-Baptiste Onofré >>>> [email protected] >>>> http://blog.nanthrax.net >>>> Talend - http://www.talend.com >>>> >>> >> -- >> Jean-Baptiste Onofré >> [email protected] >> http://blog.nanthrax.net >> Talend - http://www.talend.com >>
