Thank you, Steve and Hyukjin. And, don't worry, Ted.
Travis launches new VMs for every PR. Apache Spark repository uses the following setting. VM: Google Compute Engine OS: Ubuntu 14.04.3 LTS Server Edition 64bit CPU: ~2 CORE RAM: 7.5GB FYI, you can find more information about this here. https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments Dongjoon. On Mon, May 23, 2016 at 6:32 AM, Ted Yu <yuzhih...@gmail.com> wrote: > Do you know if more than one PR would be verified on the same machine ? > > I wonder whether the 'mvn install' from two simultaneous PR builds may > have conflict. > > On Sun, May 22, 2016 at 9:21 PM, Dongjoon Hyun <dongj...@apache.org> > wrote: > >> Thank you for feedback. Sure, correctly, that's the reason why the >> current SparkPullRequestBuilder do not run `lint-java`. :-) >> >> In addition, that's the same reason why contributors are reluctant to run >> `lint-java` and causes breaking on JDK7 builds. >> >> Such a tedious and time-consuming job should be done by CI without human >> interventions. >> >> By the way, why do you think we need to wait for that? We should not wait >> for any CIs, we should continue our own work. >> >> My proposal isn't for making you wait to watch the result. There are two >> use cases I want for us to focus here. >> >> Case 1: When you make a PR to Spark PR queue. >> >> Travis CI will finish before SparkPullRequestBuilder. >> We will run the followings in parallel mode. >> 1. Current SparkPullRequestBuilder: JDK8 + sbt build + (no Java >> Linter) >> 2. Travis: JDK7 + mvn build + Java Linter >> 3. Travis: JDK8 + mvn build + Java Linter >> As we know, 1 is the longest time-consuming one which have lots of >> works (except maven building or lint- java). You don't need to wait more >> in many cases. Yes, in many cases, not all the cases. >> >> >> Case 2: When you prepare a PR on your branch. >> >> If you are at the final commit (maybe already-squashed), just go to >> case 1. >> >> However, usually, we makes lots of commits locally while making >> preparing our PR. >> And, finally we squashed them into one and send a PR to Spark. >> I mean you can use Travis CI during preparing your PRs. >> Again, don't wait for Travis CI. Just push it sometime or at every >> commit, and continue your work. >> >> At the final stage when you finish your coding, squash your commits >> into one, >> and amend your commit title or messages, see the Travis CI. >> Or, you can monitor Travis CI result on status menu bar. >> If it shows green icon, you have nothing to do. >> >> https://docs.travis-ci.com/user/apps/ >> >> To sum up, I think we don't need to wait for any CIs. It's like an email. >> `Send and back to work.` >> >> Dongjoon. >> >> >> On Sun, May 22, 2016 at 8:32 PM, Ted Yu <yuzhih...@gmail.com> wrote: >> >>> Without Zinc, 'mvn -DskipTests clean install' takes ~30 minutes. >>> >>> Maybe not everyone is willing to wait that long. >>> >>> On Sun, May 22, 2016 at 1:30 PM, Dongjoon Hyun <dongj...@apache.org> >>> wrote: >>> >>>> Oh, Sure. My bad! >>>> >>>> - For Oracle JDK7, mvn -DskipTests install and run `dev/lint-java`. >>>> - For Oracle JDK8, mvn -DskipTests install and run `dev/lint-java`. >>>> >>>> Thank you, Ted. >>>> >>>> Dongjoon. >>>> >>>> On Sun, May 22, 2016 at 1:29 PM, Ted Yu <yuzhih...@gmail.com> wrote: >>>> >>>>> The following line was repeated twice: >>>>> >>>>> - For Oracle JDK7, mvn -DskipTests install and run `dev/lint-java`. >>>>> >>>>> Did you intend to cover JDK 8 ? >>>>> >>>>> Cheers >>>>> >>>>> On Sun, May 22, 2016 at 1:25 PM, Dongjoon Hyun <dongj...@apache.org> >>>>> wrote: >>>>> >>>>>> Hi, All. >>>>>> >>>>>> I want to propose the followings. >>>>>> >>>>>> - Turn on Travis CI for Apache Spark PR queue. >>>>>> - Recommend this for contributors, too >>>>>> >>>>>> Currently, Spark provides Travis CI configuration file to help >>>>>> contributors check Scala/Java style conformance and JDK7/8 compilation >>>>>> easily during their preparing pull requests. Please note that it's only >>>>>> about static analysis. >>>>>> >>>>>> - For Oracle JDK7, mvn -DskipTests install and run `dev/lint-java`. >>>>>> - For Oracle JDK7, mvn -DskipTests install and run `dev/lint-java`. >>>>>> Scalastyle is included in the step 'mvn install', too. >>>>>> >>>>>> Yep, if you turn on your Travis CI configuration, you can already see >>>>>> the results on your branches before making PR. I wrote this email to >>>>>> prevent more failures proactively and community-widely. >>>>>> >>>>>> For stability, I have been monitoring that for two weeks. It detects >>>>>> the failures or recovery on JDK7 builds or Java linter on Spark master >>>>>> branch correctly. The only exceptional case I observed rarely is >>>>>> `timeout` >>>>>> failure due to hangs of maven. But, as we know, it's happen in our >>>>>> Jenkins >>>>>> SparkPullRequestBuilder, too. I think we can ignore that. >>>>>> >>>>>> I'm sure that this will save much more community's efforts on the >>>>>> static errors by preventing them at the very early stage. But, there >>>>>> might >>>>>> be another reason not to do this. I'm wondering about your thoughts. >>>>>> >>>>>> I can make a Apache INFRA Jira issue for this if there is some >>>>>> consensus. >>>>>> >>>>>> Warmly, >>>>>> Dongjoon. >>>>>> >>>>> >>>>> >>>> >>> >> >