[GitHub] [incubator-druid] ccaominh commented on issue #7866: Moving project to Gradle
ccaominh commented on issue #7866: Moving project to Gradle URL: https://github.com/apache/incubator-druid/issues/7866#issuecomment-513397440 For those interested, my branch that has a gradle build partially implemented: https://github.com/ccaominh/incubator-druid/tree/gradle. Sources and tests compile and unit tests run. I'm putting this work on hold as the speed gain does not seem to outweigh the cost of having everyone switch from maven. Remaining work includes: refactoring (dependency versions, creating plugins, etc.), integration tests, and converting the various maven plugins that are currently used. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org
[GitHub] [incubator-druid] ccaominh commented on issue #7866: Moving project to Gradle
ccaominh commented on issue #7866: Moving project to Gradle URL: https://github.com/apache/incubator-druid/issues/7866#issuecomment-512540041 For speeding up travis builds, we can potentially look into seeing which tests are compatible with maven parallel builds. For example, I've seen some tests that bind a fixed port, which would need to be modified or put into a CI job that does not execute test classes in parallel. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org
[GitHub] [incubator-druid] ccaominh commented on issue #7866: Moving project to Gradle
ccaominh commented on issue #7866: Moving project to Gradle URL: https://github.com/apache/incubator-druid/issues/7866#issuecomment-512060236 My earlier measurements for maven were unfair as I have not converted most of the maven plugins to their gradle equivalents. The adjusted numbers for maven: - **Non-parallel:**`mvn install -DskipTests -Dcheckstyle.skip=true -Dforbiddenapis.skip=true -Dpmd.skip=true -Danimal.sniffer.skip=true -Denforcer.skip=true -Dspotbugs.skip=true `(3m 15s): https://scans.gradle.com/s/uetcuf7p57utq - **Parallel:**`mvn install -DskipTests -Dcheckstyle.skip=true -Dforbiddenapis.skip=true -Dpmd.skip=true -Danimal.sniffer.skip=true -Denforcer.skip=true -Dspotbugs.skip=true -T8` (1m 51s): https://scans.gradle.com/s/nbxz5xiwqtloa The build for `druid-console` takes 33-34 seconds (mostly front-end related compilation) and needs to be subtracted when comparing against gradle, as I have not translated that yet. After that is taken into account, **gradle 5.5 is 2x faster than maven 3.6.1 for clean builds**. I was also able to fix the test runtime errors for gradle, but did not measure a significant difference in the test execution time between gradle and maven. **Probably the biggest performance advantage of using gradle over maven, is that gradle is very good at doing incremental builds.** This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org
[GitHub] [incubator-druid] ccaominh commented on issue #7866: Moving project to Gradle
ccaominh commented on issue #7866: Moving project to Gradle URL: https://github.com/apache/incubator-druid/issues/7866#issuecomment-511571073 @himanshug Gradle has a good article that describes some of the things they do to be faster than maven: https://gradle.org/gradle-vs-maven-performance/#performance-advantages-over-maven-that-make-this-possible Regarding the tests, I'm still working on fixing some build issues that cause runtime errors during the tests (test compilation completes without errors though). After I get the tests running successfully, I'll do a performance comparison. Philip Hauer's blog post does make several good points — probably the most relevant is his point about the steep learning curve (when compared to maven). The point about IDE support does not apply to gradle 5+ if Kotlin is used for the build scripts instead of groovy: https://docs.gradle.org/5.0/userguide/kotlin_dsl.html#sec:ide_support This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org
[GitHub] [incubator-druid] ccaominh commented on issue #7866: Moving project to Gradle
ccaominh commented on issue #7866: Moving project to Gradle URL: https://github.com/apache/incubator-druid/issues/7866#issuecomment-511497489 I've started looking into this and initial results show that gradle 5.5 is about 3.5-4x faster than maven 3.6.1 for a clean build: Non-parallel build: - `mvn install -DskipTests -Dcheckstyle.skip` (4m 44s): https://scans.gradle.com/s/4sen23iys23sg - `gradlew assemble publishToMavenLocal` (1m 20s / **3.5x speedup**): https://scans.gradle.com/s/oxuy353qrxkhw With parallel builds enabled on an 8 core machine: - `mvn install -DskipTests -Dcheckstyle.skip -T8` (2m 29s): https://scans.gradle.com/s/i3pkohokc4mtw - `gradlew assemble publishToMavenLocal --parallel` (36s / **4.1x speedup**): https://scans.gradle.com/s/oo3qlngwnmrr4 Dependencies were downloaded before running measurements, and the gradle build cache was not enabled. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org