I want to clarify something here. For Travis CI, it's free for open source projects and there is only one management point, `.travis.xml`, for Spark community.
It's not some like physical Jenkins cluster farm. It's just a cloud service like Github. PS. I'm also not an employee of Travis(or Github). :-) If Spark uses Travis CI freely, they might dislike me for the heavy traffic. On Mon, May 23, 2016 at 1:26 PM, Dongjoon Hyun <dongj...@apache.org> wrote: > Thank you, Shane! > > I really hope that SparkPullRequestBuilder handle them if possible. > > Dongjoon. > > On Mon, May 23, 2016 at 1:24 PM, Dongjoon Hyun <dongj...@apache.org> > wrote: > >> Thank you for your opinion! >> >> Sure. I know that history and totally agree with all your concerns. >> I indeed has hesitated about sending this kind of suggestion for a while. >> >> If Travis CI cannot handle those simple jobs at this time again, >> we must turn off from Spark PR queue. >> We can see the result quickly in one or two days. >> To turn on/off, Spark have nothing to do. INFRA team will do that. >> >> In fact, the goal is not about using another CI (like Travis), it is >> about preventing the followings. >> >> 1. JDK7 compilation errors. (Recently, 2 days ago and 5 days ago) >> 2. Java static errors. (Not critical but more frequently.) >> 3. Maven installation errors. (A month ago, it's reported in this mailing >> list.) >> >> Scala 2.10 compilation errors are fixed nearly instantly. But, 1~3 were >> not. >> If SparkPullRequestBuilder can do the above 1~3, that's the best for us. >> Do you think it is possible in some ways? >> >> By the way, as of today, Spark has 724 Java files and 96762 lines >> (without comment/blank). >> It's about 1/3 of Scala code. It's not small. >> -------------------------------------------------------------------------- >> Language files blank comment code >> -------------------------------------------------------------------------- >> Scala 2368 63578 124904 322518 >> Java 724 18569 23445 >> 96762 >> >> Dongjoon. >> >> >> >> On Mon, May 23, 2016 at 12:20 PM, Michael Armbrust < >> mich...@databricks.com> wrote: >> >>> We did turn on travis a few years ago, but ended up turning it off >>> because it was failing (I believe because of insufficient resources) which >>> was confusing for developers. I wouldn't be opposed to turning it on if it >>> provides more/faster signal, but its not obvious to me that it would. In >>> particular, do we know that given the rate PRs are created if we will hit >>> rate limits? >>> >>> Really my main feedback is, if the java linter is important we should >>> probably have it as part of the canonical build process. I worry about >>> having more than one set of CI infrastructure to maintain. >>> >>> On Mon, May 23, 2016 at 9:43 AM, Dongjoon Hyun <dongj...@apache.org> >>> wrote: >>> >>>> 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. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >