Skip to content

v1.0.0-Beta2: On our way to 1.0!

Latest
Compare
Choose a tag to compare
@Jolanrensen Jolanrensen released this 13 May 12:23

We are working hard to make DataFrame 1.0 and the compiler plugin happen, but due to KotlinConf our time is limited, so detailed release notes will be given later.
You can track our progress for the next beta here.

Try this release in Kotlin Notebook which is now bundled with IntelliJ IDEA 2025.1 and available in IntelliJ IDEA Community:

%useLatestDescriptors
%use dataframe(v=1.0.0-Beta2)

Known issues

  • The Gradle plugin might be broken... Something went wrong during publishing, resulting in Could not find org.jetbrains.kotlinx.dataframe:symbol-processor-all:1.0.0-Beta1-dev-7097-0.12.0.429. This will be fixed as soon as possible.
  • In Kotlin Notebook (in K1 mode), min, max, median, and percentile might not work. This is because of a bug in REPL. Will be solved in K2 mode.
  • median and percentile require explicit type arguments for non-numeric columns
  • Using DataFrame on Android might cause compilation issues #1217
    • Fixed by #1218 on 1.0.0-dev-7277+
  • IntelliJ support for the DataFrame Kotlin compiler plugin is on its way! But it might not be available in your IDE just yet. It will work out-of-the-box from version 2025.2 (in K2 mode) and be ready for testing once the EAP builds become available.
  • The documentation website might not be up-to-date yet
  • Example notebooks need to be updated: #1216
  • See the 1.0.0-Beta3 milestone

Deprecations and important notes

  • OpenAPI 3.0 support is turned experimental: #1115
  • We are in the progress of deprecating the KProperties- and Column Accessor Access APIs in favor of the DataFrame Kotlin compiler plugin. A migration guide will follow.
  • Statistics functions have been rewritten, some types might have changed
  • dataframe-jupyter is now a separate module, which means:
    • The dataframe.json descriptor has changed, so if something works unexpectedly in your notebook, add %useLatestDescriptors before %use dataframe.
    • When running your notebook with your project as its dependency (and you're not using %use dataframe), make sure the notebook has access to the dataframe-core and dataframe-jupyter dependencies. You can do the latter, for instance, by adding USE { dependencies("org.jetbrains.kotlinx:dataframe-jupyter:1.0.0-Beta1") } to the notebook.
  • dataframe-json is now a separate module, no longer part of dataframe-core, but included with dataframe by default.
  • DataFrame can now read Float from JSON. Careful, this means type inference might change for you.
  • dataframe-csv is now included with dataframe by default. DataFrame.readCSV() is deprecated in favor of the new DataFrame.readCsv().
  • JDBC support is still in progress. This means that the API can still change or we could decide to not include it by default with dataframe.
  • Lot's more smaller things, see below
  • Later:
    • While @DataSchema column accessor generation via the KSP/Gradle plugin will still work for now, this will also be replaced in favor of the DataFrame Kotlin compiler plugin later on. You don't need to worry about created data schemas though, they will work exactly the same :).
    • Schema inference by data sample (so using @file:ImportDataSchema in .kt files, or dataframes { schema { data = } } in Gradle) is still up for debate. We will probably remove it in the future to replace it with something more stable. Remember that you can always call df.generateInterfaces().print() to get a copy-pastable data schema interface from a dataframe instance.

What's Changed (GitHub autogenerated)

New Contributors

Full Changelog: v0.15.0...v1.0.0-Beta2