Kotlin / dataframe

Structured data processing in Kotlin
https://kotlin.github.io/dataframe/overview.html
Apache License 2.0
772 stars 48 forks source link

Add option to prevent Gradle plugin from adding dependency on KSP #571

Closed koperagen closed 5 months ago

koperagen commented 5 months ago

We add plugin automatically for better onboarding experience, but it makes project depend on some specific KSP version. KSP complains when people use it with different version of compiler: ksp-1.9.0-1.0.12 is too old for kotlin-1.9.21. Please upgrade ksp or downgrade kotlin-gradle-plugin to 1.9.0.

Still, it's ok to use preprocessor built for 1.9.0 with KSP 1.9.21. That's why we need an option for people to decide version of KSP they need in their project. People will be able to use our preprocessor built for older versions of KSP API most of the time without problems thanks to backward compatibility In dataframe project itself we always need to update Kotlin version in two steps. With this change (and one more PR later) it won't be necessary anymore

koperagen commented 5 months ago

Let's keep this somewhat internal for a while. I'll come up with good explanation for setup page later. For now i'd like to merge it without docs and update our own project to use it to simplify publishing process.

Jolanrensen commented 4 months ago

One problem I found: If kotlin.dataframe.add.ksp=false, KspPluginApplier isn't run which skips the line that makes ksp depend on symbol-processor-all.

This makes it so that the processor doesn't work at all.