Skip to content

Make :examples be separate projects and use the compiler plugin #1614

@Jolanrensen

Description

@Jolanrensen

Because :examples are include()'d in from the main settings.gradle.kts, they are built using the "raw" dataframe sources. This is great for making sure changing our API does not break our tests, but it comes with some limits:

  • we need to inherit versions of libraries, like the Kotlin version
  • Enabling the compiler plugin in modules inside :dataframe is not that easy and requires a lot of boilerplate build-code that I don't think our users would appreciate to find in our examples.

Some other examples, like :examples/android-example and :examples/kotlin-dataframe-plugin-example use includeBuild() to avoid these issues. However, they come with the downside of using their own versions (which are easily forgotten to be bumped after releases), and as they use their own version of dataframe, they will not fail when we break our API until it's too late.

Maybe we can find a middle ground in Gradle where we dó use includeBuild but can still substitute or override dependencies, or we make a generic "enable the compiler plugin for local modules" function we can call from all local modules in such a way that users can identify and omit them for themselves.

Metadata

Metadata

Assignees

Labels

Compiler pluginAnything related to the DataFrame Compiler PluginexamplesSomething related to the examplesinfrastructureGitHub actions, Gradle Scripts, Writerside, etc.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions