Writing Gradle plugins that users will love

Track: Tools and techniques
Abstract
One of the great things about Gradle Build Tool is that plugins are easy to write and there is a thriving ecosystem of freely available community plugins. It's easy to find one or more plugins that implement desired functionality, however, it's hugely disappointing when a plugin provides an awesome capability, but wreaks havoc on the performance of the build, creates undesirable side effects, or doesn't work with a certain version of Gradle. If only every Gradle plugin was written and tested well. This talk is intended for Gradle plugin authors who want to learn how to write plugins that consumers will love to use. We'll explore the following concerns by looking at an example plugin and discussing ways to improve it: - Plugin architecture - Task configuration avoidance - Configuration cache compatibility - Planning for and testing with the build cache - Backwards compatibility testing You'll learn strategies for not only writing your plugin well, but keeping it healthy and well behaved as it evolves and new versions of Gradle are released.
Gary Hale
Gary is a software engineer at Gradle with a passion for improving developer productivity. He is an IT generalist with over 20 years experience in software development, operations, architecture and everything in between. Gary has worked extensively on the Gradle Build Tool itself as well as authored numerous community plugins. He has conducted dozens of training classes on Gradle build tool and speaks on topics related to devops, software development and developer productivity.