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 >> > >> > >> >> > >> > >> > >> >> > >>
