Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help community Gradle plugins adopt the configuration cache #13490

Open
Tracked by #28341
eskatos opened this issue Jun 17, 2020 · 55 comments
Open
Tracked by #28341

Help community Gradle plugins adopt the configuration cache #13490

eskatos opened this issue Jun 17, 2020 · 55 comments
Assignees
Labels
a:epic a:investigation Issues requiring decision or investigation @configuration-cache in:configuration-cache Configuration Caching in:plugin-development roadmap Initiative on the public Gradle roadmap

Comments

@eskatos
Copy link
Member

eskatos commented Jun 17, 2020

With the introduction of the Gradle configuration cache, community plugins may need to be adjusted. The goal of this issue is to track the status of community plugins.

For configuration cache support in core Gradle plugins see #13454

For more information about the configuration cache, how to use it and troubleshoot problems, please read the dedicated user manual chapter.

Community plugins

The following table displays the state of the support for the configuration cache in various community Gradle plugins. We started this list with the topmost downloaded plugins and added others we stumbled upon in the builds we tested. The list is not exhaustive, keep reading if you don't find your favorite plugin in the list.

We will be updating that list continuously.

If you find a plugin that you use in this list, please upvote the linked issues to make the plugin authors aware of your interest.

Plugin Open issue(s) Support Version/Branch
Android Gradle Plugin N/A 7.1.0-alpha12 
Kotlin JVM N/A 1.5.0
Kotlin KAPT N/A 1.5.0
Kotlin Android N/A 1.5.0
Kotlin MPP (common) N/A 1.5.20
Kotlin JS N/A 1.5.20
Kotlin Native KT-43293 1.9.0
org.gradle.test-retry N/A 1.1.2
org.gradle.android.cache-fix N/A 2.1.1
org.gradle.playframework gradle/playframework#138 N/A
org.springframework.boot N/A v2.4.0
io.spring.dependency-management spring-gradle-plugins/dependency-management-plugin#312 N/A
org.sonarqube TODO N/A
com.github.johnrengelman.shadow
com.github.johnrengelman.plugin-shadow
N/A 6.1.0
com.moowork.grunt
com.moowork.gulp
com.moowork.node
N/A 🚫 Superseded by com.github.node-gradle.node
com.github.node-gradle.node N/A 3.0.0-rc7
com.jfrog.artifactory jfrog/build-info#356 N/A
com.github.spotbugs TODO N/A
com.gorylenko.gradle-git-properties N/A 2.3.1
org.ajoberstar.grgit TODO N/A
com.github.ben-manes.versions ben-manes/gradle-versions-plugin#410 ✅🙈 v0.42.0
io.franzbecker.gradle-lombok TODO N/A
de.undercouch.download N/A 4.1.0
org.flywaydb.flyway TODO N/A
com.bmuschko.docker-spring-boot-application
com.bmuschko.docker-java-application
com.bmuschko.docker-remote-api
TODO N/A
io.gitlab.arturbosch.detekt N/A v1.10.0-RC1
com.palantir.docker
com.palantir.docker-compose
com.palantir.docker-run
TODO N/A
com.diffplug.gradle.spotless diffplug/spotless#1274 N/A
net.ltgt.errorprone-javacplugin
net.ltgt.errorprone-base
net.ltgt.errorprone
N/A 1.2.0
org.asciidoctor.* asciidoctor/asciidoctor-gradle-plugin#564 N/A
com.github.hierynomus.license TODO N/A
org.jlleitschuh.gradle.ktlint
org.jlleitschuh.gradle.ktlint-idea
N/A v9.3.0
com.google.cloud.tools.jib GoogleContainerTools/jib#3132 N/A
com.google.protobuf N/A 0.8.15
com.jfrog.bintray TODO N/A
org.liquibase.gradle TODO N/A
com.google.gms.google-services N/A 4.3.5
com.google.firebase.crashlytics N/A 2.5.1
com.google.firebase.firebase-perf N/A 1.3.5
androidx.navigation.safeargs
androidx.navigation.safeargs.kotlin
N/A 2.3.1
androidx.benchmark N/A 1.1.0
dagger.hilt.android.plugin N/A 2.29.1-alpha
realm-java realm/realm-java#7299 N/A
nu.studer.rocker N/A 2.0
nu.studer.jooq N/A 5.0
com.slack.keeper N/A 0.6.0
org.nosphere.apache.rat N/A 0.7.0
org.nosphere.gradle.github.actions N/A 1.2.0
marathon-gradle-plugin MarathonLabs/marathon#378 N/A
com.squareup.wire N/A 3.3.0
de.benediktritter.maven-plugin-development britter/maven-plugin-development#8 N/A
com.jaredsburrows.spoon N/A 1.6.0
nebula.lint nebula-plugins/gradle-lint-plugin#309 N/A
nebula.dependency-recommender TODO N/A
nebula.plugin-plugin N/A  17.1.0
nebula.dependency-lock TODO N/A
nebula.resolution-rules TODO N/A
nebula.facet nebula.integtest N/A v8.0.0
com.bmuschko.tomcat TODO N/A
io.freefair.aspectj TODO N/A
dev.nokee.* nokeedev/gradle-native#87 N/A
com.getkeepsafe.dexcount N/A 2.0.0-RC1
dev.jacomet.logging-capabilities N/A v0.9.0
com.vanniktech.android.apk.size vanniktech/gradle-android-apk-size-plugin#96 🚫 Superseded by AGP
com.squareup.hephaestus
com.squareup.anvil 
N/A v2.0.5
com.osacky.fladle  N/A 0.11.0
org.jetbrains.dokka Kotlin/dokka#1217 N/A
com.bugsnag.android.gradle N/A v5.0.0
com.osacky.doctor N/A v0.6.0
de.fayard.refreshVersions
de.fayard.refreshVersions-core
Splitties/refreshVersions#228 ✅🙈 v0.40.1
com.squareup.sqldelight N/A 1.4.4
me.champeau.gradle.jmh N/A 0.5.2
com.commercehub.gradle.plugin.avro N/A 0.22.0
com.google.osdetector N/A 1.7.0
jacoco-android TODO N/A
com.jakewharton.butterknife TODO N/A
net.saliman.properties stevesaliman/gradle-properties-plugin#39 N/A
com.palantir.baseline-* palantir/gradle-baseline#1719 N/A
de.thetaphi.forbiddenapis N/A 3.3
com.github.bjornvester.xjc bjornvester/xjc-gradle-plugin#20 N/A
org.jetbrains.intellij N/A 1.1.4
com.avast.gradle.docker-compose N/A 0.16.0
com.github.sherter.google-java-format sherter/google-java-format-gradle-plugin#55 N/A
biz.aQute.bnd.builder N/A 6.1.0
net.bytebuddy.byte-buddy-gradle-plugin N/A 1.12.3
org.unbroken-dome.xjc unbroken-dome/gradle-xjc-plugin#39 N/A
org.jetbrains.kotlinx.kover N/A 0.5.1
com.alibaba.arouter alibaba/ARouter#984 N/A
ru.vyarus.animalsniffer  xvik/gradle-animalsniffer-plugin#26 N/A
com.newrelic.agent.android  #13490 (comment) N/A
com.vanniktech.maven.publish  vanniktech/gradle-maven-publish-plugin#259 N/A
de.mannodermaus.android-junit5 N/A 1.8.2.1
dev.icerock.mobile.multiplatform-resources icerockdev/moko-resources#311 N/A
com.dropbox.focus N/A 0.4.0
com.dropbox.dependency-guard dropbox/dependency-guard#28 ✅🙈 0.2.0

✅ Supported, works with no problem reported
🙈 Declares incompatible tasks, works but disables the configuration cache when used
⚠️ Partially supported, works to some extent, reports problems
❌ Unsupported, fails
🚫 Abandoned, won't fix
❓ Untested

Reporting problems to community plugins

If you have tried the configuration cache on your build and found a problematic plugin, please report an issue to the plugin's bug tracker. The troubleshooting section of the dedicated user guide chapter explain how to reason about encountered problems.

A good way to report such problems to community plugin authors is by providing:

  • a link to the configuration cache documentation,
  • steps to reproduce, e.g. plugin version, configuration and which of the plugin's tasks you ran,
  • the HTML report for configuration cache problems you got, so the plugin author can easily reason about the problems,
  • a reproducer build, so the plugin author can easily reproduce the problems.

Here's a good example issue for a community plugin you can use as a template: michel-kraemer/gradle-download-task#156

Then please comment on this issue with a link to the plugin issue so we can add it to the list.

A plugin is missing in the list?

If you have tried the configuration cache on your build and found a problematic plugin that is not in the list above, please report an issue to the plugin's bug tracker as explained in the previous section and comment on this issue with a link to that issue so we can add it to the list.

If you are the author of a plugin that you want to make support the configuration cache or that already supports it, please comment on this issue so we can add it to the list.

@eskatos eskatos changed the title Help popular Gradle plugins to adopt the configuration cache Help third party Gradle plugins to adopt the configuration cache Jun 17, 2020
@eskatos eskatos changed the title Help third party Gradle plugins to adopt the configuration cache Help third party Gradle plugins adopt the configuration cache Jun 17, 2020
@eskatos eskatos changed the title Help third party Gradle plugins adopt the configuration cache Help community Gradle plugins adopt the configuration cache Jun 21, 2020
@eskatos eskatos self-assigned this Jun 26, 2020
@ZakTaccardi
Copy link

@eskatos I created JLLeitschuh/ktlint-gradle#364 for org.jlleitschuh.gradle.ktlint

@CristianGM
Copy link
Contributor

KeepSafe/dexcount-gradle-plugin#303 for com.getkeepsafe.dexcount

@CristianGM
Copy link
Contributor

dexcount gradle plugin fixed at 2.0.0-SNAPSHOT

a new issue created for: com.vanniktech.android.apk.size
vanniktech/gradle-android-apk-size-plugin#96

@rciovati
Copy link

google/play-services-plugins#148 for google-services-plugin

@CristianGM
Copy link
Contributor

com.vanniktech.android.apk.size archived, so it won't be fixed
Fair enough because I hasn't been maintained for years (and I should ask to my team why we are still using it)

@ZakTaccardi
Copy link

@eskatos added ben-manes/gradle-versions-plugin#410

@vRallev
Copy link

vRallev commented Jul 29, 2020

The list contains com.squareup.hephaestus, which was renamed to com.squareup.anvil.

@ZacSweers
Copy link

The bugsnag android gradle plugin is probably used in a lot of projects, filed this issue to track as they're in a big rewrite right now: bugsnag/bugsnag-android-gradle-plugin#253

@LouisCAD
Copy link
Contributor

I'm the maintainer of refreshversions (de.fayard.refreshVersions and de.fayard.refreshVersions-core on the Gradle portal plugin), and I'd like to support configuration cache.

I created an issue: Splitties/refreshVersions#228

@dsvoronin
Copy link

nebula-plugins/nebula-project-plugin#67 Found this problem for nebula plugins family

@simtel12
Copy link
Contributor

@eskatos With https://youtrack.jetbrains.com/issue/KT-43605 still open, shouldn't Kotlin still be listed with warnings? And maybe link that issue into the list? :)

@mochadwi
Copy link

mochadwi commented Mar 1, 2021

stevesaliman/gradle-properties-plugin#39 unsupported configuration cache also occurred in this plugins

@joschi
Copy link
Contributor

joschi commented Mar 22, 2021

PR for com.gorylenko.gradle-git-properties: n0mer/gradle-git-properties#164

@Goooler
Copy link

Goooler commented Sep 4, 2022

Link cashapp/licensee#72.

@TylerMcCraw
Copy link

@dsvensson
Copy link

dsvensson commented Oct 25, 2022

Currently closed due to lack of community interest, please show some interest if you're a flyway user, flyway/flyway#3550

@eskatos maybe update the table with link to issue for increased visibility.

@mpetuska
Copy link

mpetuska commented Nov 7, 2022

npm-publish@3.1.0 now supports configuration cache too mpetuska/npm-publish#61

@martinbonnin
Copy link
Contributor

com.apollographql.apollo3 version 3.7.0 supports config cache (test here). Previous versions might support it too but the test was introduced more recently

@NicklasWallgren
Copy link

Missing support for configuration cache in the Hibernate gradle plugin, https://hibernate.atlassian.net/browse/HHH-16078

@dsvensson
Copy link

Missing support for configuration cache in the Gradle License Report plugin, jk1/Gradle-License-Report#255

@nbrugger-tgm
Copy link

gg.jte.gradle fails in configuration stage casid/jte#204

@NikolayMetchev
Copy link

launch4j TheBoegl/gradle-launch4j#142

@gabrielittner
Copy link

com.vanniktech.maven.publish can be changed to partially supported, see vanniktech/gradle-maven-publish-plugin#259 (comment)

@nbrugger-tgm
Copy link

gg.jte.gradle is fully supported now: casid/jte#204

@sergeykad
Copy link

cz.habarta.typescript-generator has no support.
vojtechhabarta/typescript-generator#828

@jbduncan
Copy link

jbduncan commented Sep 4, 2023

org.openrewrite.rewrite is not configuration-cache-compatible, but I'm seeing if I can fix this in openrewrite/rewrite-gradle-plugin#227 and openrewrite/rewrite-gradle-plugin#228.

@ov7a ov7a added the a:investigation Issues requiring decision or investigation label Sep 5, 2023
@tnielens-centrica
Copy link

net.researchgate.release might be worth listing in the description. Related ticket researchgate/gradle-release#346.

@TWiStErRob
Copy link
Contributor

Add dependency-analysis-gradle-plugin to the list, it's ✅ since 1.28.0.

@oleg-nenashev oleg-nenashev self-assigned this Mar 5, 2024
@oleg-nenashev
Copy link
Member

The list needs to be the updated

@Herudaio
Copy link

Both KT-43293 and related KT-49933 were fixed for Kotlin Native

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:epic a:investigation Issues requiring decision or investigation @configuration-cache in:configuration-cache Configuration Caching in:plugin-development roadmap Initiative on the public Gradle roadmap
Projects
Status: In Progress
Status: In Progress
Development

No branches or pull requests