Skip to content

Releases: gradle-plugins/toolbox

v1.9.0

16 Jul 00:14
Compare
Choose a tag to compare

This release improves the gradlePlugin extension by introducing a new dependencies feature. This simplifies the declaration of dependencies by organizing them into declarable buckets, enhancing support for version catalogues and improving code completion. Additionally, test suites received significant improvements.

The gradlePlugin.dependencies extension is designed to clarify intent compared to using project.dependencies. Configuring implementation dependencies with the project DependencyHandler targets the main source set, which may be misleading if developers configure the gradlePlugin.pluginSourceSet. We maintain clear intentions by deferring dependencies configuration until pluginSourceSet is finalized thanks to the dependencies extension. Future versions will assert consistency if pluginSourceSet changes unexpectedly.

Additionally, new dependency types for plugin authors allow easier and more stable dependencies on other plugins. Instead of knowing a plugin's Maven coordinates, you can now use gradlePlugin('<plugin-id>:<version>'), which returns an ExternalModuleDependency to the plugin JAR:

gradlePlugin {
    dependencies {
        implementation(gradlePlugin("com.example.my-plugin:4.2"))
    }
}

dependencies {
    compileOnly(gradlePlugin("com.example.my-plugin:4.2"))
}

v1.8.0

10 Jul 03:54
01b10bd
Compare
Choose a tag to compare

This release introduces the capability to distinguish the plugin API and implementation. The distinction can be made using two jar tasks or source sets. The following example shows a glance of what this new capability is about:

// Remove `api` packages from implementation JAR
tasks.named('jar', Jar) {
    exclude('**\/api\/**')
}

// Configure Gradle plugin API as a custom JAR that only include `api` packages
gradlePlugin {
    api {
        jarTask = tasks.register('apiJar', Jar) {
            from(sourceSet.flatMap { it.output.elements })
            include('**\/api\/**')
            archiveClassifier = 'api'
        }
    }
}

Note this feature may receive breaking changes over the next few releases. Feel free to give it a try and report any issue you encounter.

v1.7.2

10 Jul 01:21
Compare
Choose a tag to compare

This release fixes an issue introduced in version 1.7.1 regarding the declaration of dependencies on test suites.

v1.7.1

09 Jul 21:19
Compare
Choose a tag to compare

This release fixes a compatibility issue with the Kotlin plugin (their fault, not ours).

v1.7.0

09 Jul 14:42
Compare
Choose a tag to compare

This release adds support for decorating the dependencyResolutionManagement.repositories with gradlePluginDevelopment() through dev.gradleplugins.gradle-plugin-development plugin.

v1.6.13

08 Jul 20:08
d99b746
Compare
Choose a tag to compare

This release updates how the plugins configure the JVM and Gradle compatibilities which fixes #95. This work is to prepare the support for Gradle library plugin development.

v1.6.12

01 Jul 00:20
Compare
Choose a tag to compare

This release includes Gradle runtime information in GradleRuntimeCompatibility up to Gradle 8.8.

v1.6.11

09 Mar 01:09
Compare
Choose a tag to compare

This release includes Gradle runtime information in GradleRuntimeCompatibility up to Gradle 8.6. We also introduced lastPatchedVersionOf and lastMinorReleaseOf to help deal with Gradle minor and patch versions.

As part of this release, we no longer publish gradle-fixtures-source-elements. Instead, the project was extracted into gradle-plugins/source-elements. This work will evolve organically as required.

v1.6.10

19 Oct 09:00
Compare
Choose a tag to compare

This release includes Gradle runtime information in GradleRuntimeCompatibility up to Gradle 8.4.

The release also contains fixes to deprecation warnings introduced in Gradle 8+ and removes reliance on some internal Gradle types.

v1.6.9

28 Nov 16:24
Compare
Choose a tag to compare

This release includes Gradle 7.6 runtime information in GradleRuntimeCompatibility.