Enable Gradle Configuration Cache
- Dominant language
- Kotlin
- Stars
- 1.1k
- Forks
- 83
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 30
Description
>The Configuration Cache improves build performance by caching the result of the [configuration phase](https://docs.gradle.org/current/userguide/build_lifecycle_intermediate.html#build_lifecycle) and reusing it for subsequent builds.
https://docs.gradle.org/current/userguide/configuration_cache.html
Who knows how far we'll get to enabling configuration cache. Our project is quite complex after all... However, to improve build time, this would be a fantastic goal!
It probably needs to be broken down into smaller steps. For one, I know KoDEx doesn't [yet](https://github.com/Jolanrensen/KoDEx/issues/94) support configuration cache. We will also need to revisit other interconnected dependencies of tasks and builds.
Current collection of warnings enabling configuration cache:
```
13 problems were found storing the configuration cache, 10 of which seem unique.
- Task `:core:changeJarTask` of type `org.gradle.api.DefaultTask`: cannot serialize Gradle script object references as these are not supported with the configuration cache.
- Task `:core:processKDocsMain` of type `nl.jolanrensen.kodex.gradle.RunKodexTask`: cannot serialize object of type 'org.gradle.api.internal.project.DefaultProject', a subtype of 'org.gradle.api.Project', as these are not supported with the configuration cache.
- Task `:dataframe-csv:changeJarTask` of type `org.gradle.api.DefaultTask`: cannot serialize Gradle script object references as these are not supported with the configuration cache.
- Task `:dataframe-csv:processKDocsMain` of type `nl.jolanrensen.kodex.gradle.RunKodexTask`: cannot serialize object of type 'org.gradle.api.internal.project.DefaultProject', a subtype of 'org.gradle.api.Project', as these are not supported with the configuration cache.
- Task `:plugins:dataframe-gradle-plugin:processIntegrationTestResources` of type `org.gradle.language.jvm.tasks.ProcessResources`: cannot serialize object of type 'org.gradle.api.internal.project.DefaultProject', a subtype of 'org.gradle.api.Project', as these are not supported with the configuration cache.
- Task `:plugins:dataframe-gradle-plugin:processResources` of type `org.gradle.language.jvm.tasks.ProcessResources`: cannot serialize object of type 'org.gradle.api.internal.project.DefaultProject', a subtype of 'org.gradle.api.Project', as these are not supported with the configuration cache.
- Task `:plugins:dataframe-gradle-plugin:processTestResources` of type `org.gradle.language.jvm.tasks.ProcessResources`: cannot serialize object of type 'org.gradle.api.internal.project.DefaultProject', a subtype of 'org.gradle.api.Project', as these are not supported with the configuration cache.
- Task `:plugins:expressions-converter:test` of type `org.gradle.api.tasks.testing.Test`: cannot serialize Gradle script object references as these are not supported with the configuration cache.
- Task `:plugins:kotlin-dataframe:test` of type `org.gradle.api.tasks.testing.Test`: cannot serialize Gradle script object references as these are not supported with the configuration cache.
- Task `:core:changeJarTask` of type `org.gradle.api.DefaultTask`: invocation of 'Task.project' at execution time is unsupported with the configuration cache.
```
Contributor guide
Research direction
Start with Gradle's configuration-cache documentation and the listed task warnings, especially :core:changeJarTask and :core:processKDocsMain; KoDEx's limitation is tracked in issue 94. Done means configuration cache can be enabled for the project without the reported configuration-cache problems.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100