Gradle Newsletter, October 2020 ======== Welcome to the October 2020 Gradle Build Tool newsletter. This issue covers the news for the community, and the new releases of Gradle Build Tool, Gradle Enterprise, and Android Studio. ## From the Community ### Blog Posts - [Microservices — Architecture Nihilism in Minimalism's Clothes][1] - discusses different build patterns for microservices architecture - [Surfacing Gradle Build Scans Within GitHub Actions Workflows][2] - demonstrates how to expose [build scans][3] in GitHub Actions workflows - [Gradle Dependencies: Scanning With New Snyk Gradle Plugin][4] - introduces a new Gradle plugin for scanning dependencies for known security vulnerabilities with Snyk - [Ibotta’s Solution for AOP Weaving on Android][5] - introduces a new AspectJ AOP weaving Gradle plugin for Android - [Android Devs! Let’s Generate Our Own Strings JSON with a Gradle Plugin][6] - shows how to use JSON instead of XML for String resources in an Android app using a custom Gradle plugin - [How I Automated Database Schema Migrations in a Multi-Tenant Database Model][7] - demonstrates how to automate database migrations with Liquibase and Gradle - [Unit & Integration Testing Kafka and Spark][8] - explains different ways to test Spark/Kafka-based applications with Gradle - [Build your HiveMQ Extensions with Gradle][9] - introduces a Gradle plugin for building HiveMQ extensions - [Creating a Command-Line Application in Kotlin][10] - shows how to build a simple Kotlin application with Gradle and IntelliJ IDEA - [The Power of Frustration][11] - shares a positive experience of contributing to Gradle ### Videos - [Embracing Developer Productivity Engineering in Android][12] - a video series about the importance of the discipline of Developer Productivity Engineering - [Gradle, the Ultimate Alligator(Delegator)][13] - a video explaining various aspects of Gradle in the context of Android builds ### Plugins - [Shadow Plugin 6.1.0][14] adds support for [configuration caching][15] and [configuration avoidance][16] - [Micronaut 2.1][17] includes a new Gradle plugin - [Errorprone Plugin 1.3.0][18] adds support for [Java toolchains][19] - [JMH Plugin 0.5.2][20] adds support for configuration caching - [jOOQ Plugin 5.0][21] adds support for configuration caching and the [Kotlin DSL][22] ## From the Gradle Build Tool Team ### #GradleTips We started regularly sharing various [#GradleTips][23] on Twitter that we hope you’ll find useful. Follow us on Twitter to get them as well as other updates.

You can use the `because` clause to document why a specific dependency is needed in your project. The reason will also be visible in build scans and in the command-line dependency insight report. #GradleTips pic.twitter.com/pZR4XEppLx

— Gradle (@gradle) October 7, 2020
### Presentations - [Modernizing the Groovy build][24] at Madrid-GUG (slides and video are available online) - [Keeping growing software projects under control with Gradle][25] (at upcoming Joker online conference) ## Gradle Releases ### Gradle 6.7 Gradle 6.7 has been released and is packed with new features and enhancements. As of this release, the file system watching feature that makes incremental builds faster is ready for production use. This release also brings Java toolchain support that makes it much easier to build JVM projects using a different version of Java than the one Gradle is running on. Running on and building with Java 15 is also supported. See release notes for details and information about other improvements in this release. ### Gradle Enterprise 2020.4 Gradle Enterprise 2020.4 has been released and ships with a number of highly anticipated features. Correlation and detection analysis of similar build failures makes it easy to identify whether a build failure is isolated or widespread. The improved fault tolerance for distributed testing decreases the disruptions caused by unreliable network environments. More build history can be retained than before thanks to more efficient build data storage. Configuring and administering a Gradle Enterprise installation is also now much more convenient. See [release notes][26] for details. ## Other Releases ### Android Studio 4.1 Android Studio 4.1 has been released. It brings a number of improvements including a faster feedback loop with “apply changes”. This is the first release that is compatible with Gradle’s experimental [configuration cache](). However, we recommend that early adopters of configuration cache use the latest 4.2 [canary version][27] to get all the latest bug fixes. See the [blog post][28] for details about this release. ## Upcoming Events * __Nov 10__ 9:00 am PT (2.5 hours): [Hands-On Workshop: Introduction to Developer Productivity Engineering][29] * __Nov 17-18__ 8:30 am PT (4 hours each day): [Training: Introduction to Gradle][30] * __Nov 19__ 9:00 am PT (3.5 hours): [Training: Maven Build Cache Deep Dive][31] * __Dec 17__ 9:00 am PT (3.5 hours): [Training: Gradle Build Cache Deep Dive][32] See the [Gradle Training webpage][33] for an up-to-date list of all upcoming educational and training events. ---- _If you have some news you’d like us to share in the next issue, use `#gradle` on Twitter or send us an email with the details to [newsletter@gradle.com][34]._ Until next time! —The Gradle Team -- Gradle Inc. 325 9th Street San Francisco, CA 94103 https://gradle.org (Unsubscribe from future Gradle emails) [1]: https://vlfig.me/posts/microservices [2]: https://goobar.io/2020/10/13/surfacing-gradle-build-scans-within-github-actions/ [3]: https://scans.gradle.com/ [4]: https://snyk.io/blog/gradle-plugin-by-snyk-gradle-dependencies-scanning/ [5]: https://medium.com/building-ibotta/ibottas-solution-for-aop-weaving-on-android-944a432294c5 [6]: https://medium.com/@volsahin/android-devs-lets-generate-our-own-strings-json-with-a-gradle-plugin-ecab36beb4a [7]: https://medium.com/better-programming/how-i-automated-database-schema-migrations-in-a-multi-tenant-database-model-using-liquibase-f75f9683ee06 [8]: http://datalackey.com/2020/09/22/unit-integration-testing-kafka-and-spark/ [9]: https://www.hivemq.com/blog/extension-gradle-support/ [10]: https://seansoper.com/blog/creating_command_line_app_kotlin.html [11]: https://leonardobsjr.medium.com/the-power-of-frustration-bbbee23cb282 [12]: https://dev.to/thedancercodes/embracing-developer-productivity-engineering-in-android-video-series-1hii [13]: https://www.youtube.com/watch?v=mbJufIps_pw [14]: https://github.com/johnrengelman/shadow/releases/tag/6.1.0 [15]: https://docs.gradle.org/current/userguide/configuration_cache.html [16]: https://docs.gradle.org/current/userguide/task_configuration_avoidance.html [17]: https://blogs.oracle.com/developers/announcing-micronaut-21 [18]: https://github.com/tbroyer/gradle-errorprone-plugin/releases/tag/v1.3.0 [19]: https://docs.gradle.org/current/userguide/toolchains.html [20]: https://github.com/melix/jmh-gradle-plugin/releases/tag/RELEASE_0_5_2 [21]: https://github.com/etiennestuder/gradle-jooq-plugin/releases/tag/v5.0 [22]: https://docs.gradle.org/current/userguide/kotlin_dsl.html [23]: https://twitter.com/hashtag/gradletips [24]: https://t.co/4m8sromkfq?amp=1 [25]: https://jokerconf.com/en/2020/talks/4knxxtjfpo0jbjndlcxkb9/ [26]: https://gradle.com/enterprise/releases/2020.4/ [27]: https://developer.android.com/studio/preview [28]: https://android-developers.googleblog.com/2020/10/android-studio-41.html [29]: https://gradle.com/training/developer-productivity-workshop/?time=1604966400 [30]: https://gradle.com/training/introduction-to-gradle/?time=1605571200 [31]: https://gradle.com/training/maven-build-cache-deep-dive/?time=1605744000 [32]: https://gradle.com/training/build-cache-deep-dive/?time=1608163200 [33]: https://gradle.com/training/ [34]: mailto:newsletter@gradle.com