Gradle Newsletter, September 2019 ======== Welcome to the September 2019 newsletter. This issue covers [Swift support in Gradle][1], the [Gradle 5.6.2][2] release, and the [Maven 3.6.2][3] release, the [Gradle Enterprise 2019.3.1][4] release, and [the cost of downloading dependencies][5]. ## New Gradle content * [Blog Post: Introducing the Swift Plugins][1] * [Blog Post: Improved Gradle dependency resolution insights in build scans][6] * [Blog Post: The cost of downloading dependencies][5] * [Video: Improving Android Build Performance][7] ## From the community * [Gradle Remote Build Cache Misses][8] - the first of two blog posts from Nelson Osacky about how SoundCloud is tackling increasing Android build times with the Gradle Enterprise remote build cache. * [Gradle Goodness: Stop Build After One Failing Test][9] - a blog post from Mr. Haki about getting faster feedback with the `--fail-fast` flag. * [Understanding Gradle and writing your own Gradle Plugin][10] - the video of Niklas Baudy's talk at DroidCon Berlin. * [I hated Gradle! Kotlin and the buildSrc Plugin made me love it][11] - This blog post from Sebastian Sellmair describes some best practices for structuring Gradle builds and when it's time to create a plugin. **Please note: this article could be offensive to readers.** * [Get Groovy with Gradle][12] - an introductory tutorial for using the Gradle Groovy DSL from Andrew Hughes. * [Better dependency management in Android Studio 3.5 with Gradle buildSrcVersions][13] - a blog post from Jean-Michel Fayard about how his plugin can help with Android Studio syncing issues. * [Fixing initializing Gradle in our first flutter app][14] - a blog post from Abada Samuel outlining how to fix an error related to downloading Gradle via Android Studio when running a flutter app for the first time. ### Releases * [Gradle Gatling Plugin 3.2.8][15] - The Gradle plugin for Gatling, a load testing framework, now defaults to Gatling 3.2.1 and Scala 2.12.8. * [Checksum Dependency Plugin 1.27.0][16] - The Gradle Checksum Dependency plugin for validating the checksums of dependencies and Gradle plugins is now backwards compatible to Gradle 4.4.1. _If you have a talk, blog post, or plugin release 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][17]._ ## Gradle supports Swift [This blog post][1] introduces the new native plugins that we've been working on. These plugins allow users to build Swift libraries and applications for macOS and Linux (but not iOS yet) with the official Swift compiler. Plugin users can take advantage of many of the features baked into Gradle core, such as a rich dependency management engine as well as [source dependencies][18], [build cache][19], [composite builds][20], [finer grained parallel execution][21], [build scans][22], and more. For more information, check out the [Swift Application Plugin documentation][23], [Swift Library Plugin Application][24], and [Swift Samples in the Native Samples Repository][25]. ## Contributions to Apache Maven Since [Gradle Enterprise supports Maven builds][26], it makes sense that we have been contributing to the Maven project over the last several months. One such contribution is [a fix for running projects in parallel with `--fail-fast` enabled][27]. Affected Gradle Enterprise build scan users should upgrade to [Maven 3.6.2][28]. We’ve also contributed [various performance improvements][29]. Going forward, we hope to work more closely with the Maven team to enhance the experience for Maven users of Gradle Enterprise and the build tool community as a whole. ## Gradle 5.6.2 [Gradle 5.6.2][2] is out. This version builds on the [issues fixed in 5.6.1][30]. For more details, check out the [fixed issues][31] section of the release notes which lists the titles of resolved issues and links to the corresponding GitHub issues. As with all releases, please upgrade to the newest version to take advantage of these new features and improvements. > ./gradlew wrapper --gradle-version=5.6.2 ## Gradle Enterprise 2019.3.1 [Gradle Enterprise 2019.3.1][4] is out fixing several issues raised against 2019.3. In addition, the [Gradle Enterprise Maven Extension 1.2.4][32] and [Gradle Build Scan Plugin 2.4.2][33] are out fixing minor issues raised against their respective previous versions. ## Upcoming events * September 24: [CloudBees Days: Frankfurt][34] * September 24-25: [Customizing and Refactoring Gradle Builds][35] - Gradle Engineer Marc Philipp will present at Accento in Karlsruhe. * September 25: [Build Cache Deep Dive][36] - official online Gradle training. * September 25: [Maximize Developer Productivity with Fast and Reliable Gradle and Maven Builds][37] - official online Gradle (and Maven) training. * September 26: [CloudBees Days: Stockholm][38] * September 27-29: [NFJS Boston][39] * October 7-10: [SpringOne Platform][40] * October 12: [Softwerkskammer Ruhrgebiet Hackergarten][41] - Gradle Engineer Benedikt Ritter will lead a Gradle project team. * October 17: [Maximize Developer Productivity with Fast and Reliable Gradle and Maven Builds][42] - official online Gradle (and Maven) training. * October 17: [Dependency Management with Gradle][43] - Gradle Engineer Benedikt Ritter presents at Geektastic: Connect Düsseldorf. * October 25-26: [NFJS Chicago][44] * October 28-30: [DevOps Enterprise Summit: Las Vegas][45] ## Job opportunities The Gradle Inc. engineering team continues to grow. We're currently looking for: * Gradle Enterprise (remote/worldwide) -- [Solutions Engineer][46] * Gradle Enterprise (remote/worldwide) -- [Back-end][47] and [Front-end][48] Software Engineers * Gradle Build Tool (remote/worldwide) -- [Software Engineer][49] The details of these and other open positions are available at [gradle.com/careers][50]. ---- _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][17]._ Until next time! —The Gradle Team -- Gradle Inc. 325 9th Street San Francisco, CA 94103 https://gradle.org %%unsubscribe%% (Unsubscribe from future Gradle emails) [1]: https://blog.gradle.org/introducing-the-swift-plugins [2]: https://docs.gradle.org/5.6.2/release-notes.html [3]: https://twitter.com/gradle/status/1169605051251351552 [4]: https://gradle.com/enterprise/releases/2019.3/#changes-1 [5]: https://gradle.com/blog/the-cost-of-downloading-dependencies/ [6]: https://gradle.com/blog/improved-gradle-dependency-resolution-insights-in-build-scans/ [7]: https://www.droidcon.com/media-detail?video=352688995 [8]: https://developers.soundcloud.com/blog/gradle-remote-build-cache-misses [9]: https://mrhaki.blogspot.com/2019/09/gradle-goodness-stop-build-after-one.html [10]: https://www.droidcon.com/media-detail?video=352688993 [11]: https://quickbirdstudios.com/blog/gradle-kotlin-buildsrc-plugin-android/ [12]: https://developer.okta.com/blog/2019/09/03/gradle-tutorial [13]: https://dev.to/jmfayard/better-dependency-management-in-android-studio-3-5-with-gradle-buildsrcversions-34e9 [14]: https://medium.com/@sammytech/fixing-initializing-gradle-in-our-first-flutter-app-69218d8b2ce6 [15]: https://plugins.gradle.org/plugin/com.github.lkishalmi.gatling [16]: https://plugins.gradle.org/plugin/com.github.vlsi.checksum-dependency [17]: mailto:newsletter@gradle.com [18]: https://blog.gradle.org/introducing-source-dependencies [19]: https://blog.gradle.org/introducing-gradle-build-cache [20]: https://blog.gradle.org/introducing-composite-builds [21]: https://guides.gradle.org/using-the-worker-api/ [22]: https://gradle.com/build-scans?_ga=2.173576995.1239343519.1568021383-1289716050.1558358644 [23]: https://docs.gradle.org/current/userguide/swift_application_plugin.html [24]: https://docs.gradle.org/current/userguide/swift_library_plugin.html [25]: https://github.com/gradle/native-samples/tree/master/swift [26]: https://gradle.com/blog/speed-up-apache-maven-builds/ [27]: https://issues.apache.org/jira/browse/MNG-6720 [28]: https://maven.apache.org/docs/3.6.2/release-notes.html [29]: https://github.com/apache/maven/pull/242 [30]: https://docs.gradle.org/5.6.1/release-notes.html#fixed-issues [31]: https://docs.gradle.org/5.6.2/release-notes.html#fixed-issues [32]: https://docs.gradle.com/enterprise/maven-extension/#gradle_enterprise_maven_extension_release_history [33]: https://docs.gradle.com/build-scan-plugin/#plugin_release_history [34]: https://www.cloudbees.com/cloudbees-days#frankfurt [35]: https://2019.accento.dev/talks/customizing-gradle/ [36]: https://gradle.com/training/build-cache-deep-dive/?time=1566172800&utm_source=newsletter&utm_medium=email&utm_campaign=201909 [37]: https://gradle.com/training/developer-productivity-workshop/?time=1569369600 [38]: https://www.cloudbees.com/cloudbees-days#stockholm [39]: https://nofluffjuststuff.com/boston [40]: https://springoneplatform.io/ [41]: https://www.meetup.com/Softwerkskammer-Ruhrgebiet/events/259817215/ [42]: https://gradle.com/training/developer-productivity-workshop/?time=1571270400 [43]: https://www.meetup.com/Geektastic-CONNECT-Dusseldorf/events/264314132/ [44]: https://nofluffjuststuff.com/chicago [45]: https://events.itrevolution.com/us/ [46]: https://boards.greenhouse.io/gradle/jobs/1540307 [47]: https://boards.greenhouse.io/gradle/jobs/217786 [48]: https://boards.greenhouse.io/gradle/jobs/206107 [49]: https://boards.greenhouse.io/gradle/jobs/85251 [50]: https://gradle.com/careers?utm_source=newsletter&utm_medium=email&utm_campaign=201909