2017-11-09 18:38 GMT+01:00 Kenneth Knowles <[email protected]>: > On Thu, Nov 9, 2017 at 9:11 AM, Romain Manni-Bucau <[email protected]> > wrote: > >> (this is another topic so we can maybe open another thread) issue is >> not much about python but more about the fact the build is not self >> contained. it is a maven build and maven should be sufficient without >> having to install python + dependencies. > > > Let's leave out the topic of whether our build should install things like > JDKs, Python, Golang, Docker, protoc, findbugs, RAT, etc. That issue is > somewhat independent of build tool, and the new build isn't worse than the > old one as far as it goes.
Yep, globally the same time with clean and killing the daemon. > > Kenn > > > >> I don't see any technical >> blockers to do it (except time ;)) but it is always a bit annoying to >> git clone then not be able to build. >> >> Romain Manni-Bucau >> @rmannibucau | Blog | Old Blog | Github | LinkedIn >> >> >> 2017-11-09 18:07 GMT+01:00 Lukasz Cwik <[email protected]>: >> > Hmm, I have had good luck when following the Python quick start setup >> > <https://beam.apache.org/get-started/quickstart-py/> on multiple >> machines >> > by ensuring the installed version of setuptools, virtualenv and pip are >> new >> > enough versions. >> > >> > You can always skip the Python portion of the build by excluding the >> build >> > task as so: >> > ./gradlew build -x ":beam-sdks-parent:beam-sdks-python:build" >> > >> > On Thu, Nov 9, 2017 at 8:58 AM, Romain Manni-Bucau < >> [email protected]> >> > wrote: >> > >> >> The 1.3.5 file is when i installed the python dependencies manually >> >> to make the build passing (the pip command never passed on my computer >> >> and therefore the build always has been broken until i installed it >> >> manually - independently from the build tool). >> >> >> >> Romain Manni-Bucau >> >> @rmannibucau | Blog | Old Blog | Github | LinkedIn >> >> >> >> >> >> 2017-11-09 17:51 GMT+01:00 Lukasz Cwik <[email protected]>: >> >> > It turns out that the Apache Rat Ant task and the Apache Rat Maven >> plugin >> >> > differ in that the plugin automatically excludes certain files by >> default >> >> > while the Ant task does not. >> >> > See: >> >> > http://creadur.apache.org/rat/apache-rat-plugin/check-mojo. >> >> html#useDefaultExcludes >> >> > >> >> > I fixed the list to exclude ".idea/" instead of "idea/" since there >> was a >> >> > typo. >> >> > >> >> > I have no idea what the file "=1.3.5" is. Can you take a look at the >> >> > contents? >> >> > >> >> > On Thu, Nov 9, 2017 at 12:03 AM, Romain Manni-Bucau < >> >> [email protected]> >> >> > wrote: >> >> > >> >> >> Ok, the rat issues I got were: >> >> >> >> >> >> == File: /home/rmannibucau/1_dev/beam/.idea/* >> >> >> == File: /home/rmannibucau/1_dev/beam/sdks/python/=1.3.5 >> >> >> >> >> >> The first one could be in my default exclude - even if eclipse/idea >> >> >> files should be in the default exclude set of beam rat config IMHO, >> >> >> the last one is more a "?" can probably be exclude as well if created >> >> >> by the build at some point. >> >> >> >> >> >> >> >> >> Romain Manni-Bucau >> >> >> @rmannibucau | Blog | Old Blog | Github | LinkedIn >> >> >> >> >> >> >> >> >> 2017-11-08 19:17 GMT+01:00 Jean-Baptiste Onofré <[email protected]>: >> >> >> > 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/e329d54b8af6c009f46fd151d10037 >> ad >> >> >> >>>>>>>>> ) >> >> >> >>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> 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 >> >> >> >>> >> >> >> >> >> >> >> >> >>
