Skip to content

v0.14: Kotlin 2.0 and many stability improvements

Latest
Compare
Choose a tag to compare
@Jolanrensen Jolanrensen released this 23 Sep 10:25
c583503

This release can mostly be described as a quality-of-life release. While there are not many new groundbreaking features at the moment, almost every part of the library has had some improvement. See the full list of changes below, but to highlight a few:

  • We now officially support Kotlin 2.0+. The library is built with 2.0.20 now, so it will work with KSP 2.0.20 too.
  • We've continued our work on the DataFrame Kotlin Compiler Plugin. While it is still experimental, it introduces an exciting new approach to working with your data in a zero-boilerplate, type safe way leveraging the amazing power the Kotlin 2.0 compiler gives us. See this demo project to experiment with it yourself.
  • See this notebook for some of the small yet exciting features of the 0.14 release!

0.14.1

Includes the fix: #872 which fixes compatibility with Kandy v0.7.1.

Features

  • Compiler plugin by @koperagen in #729
  • added toDataFrame for float- and double iterables by @Jolanrensen in #631
  • Allow any ArrowReader implementation to be use for reading Arrow data #627 by @fb64 in #628
  • add random parameter to shuffle by @koperagen in #643
  • apply ksp to multiplatform configs in multiplatform modules by @mgroth0 in #647
  • Add separator parameter to DataFrame.flatten by @zaleslaw in #667
  • POJO toDataFrame support (and array improvements) by @Jolanrensen in #650
  • Add JDBC credentials extraction from env variables and improve exception handling by @zaleslaw in #692
  • Added MS SQL support for the dataframe-jdbc module by @zaleslaw in #689
  • Update SQL all table/schemas reading functions to return maps with table names by @zaleslaw in #718
  • Add a support for H2 modes by @zaleslaw in #720
  • Add delimiter parameter to readDelimStr by @koperagen in #743
  • Add an option to read Excel cell values as a String regardless of their content type by @koperagen in #745
  • Add castTo to help working with implicitly generated schemas in notebooks and plugin by @koperagen in #747
  • Replace Klaxon with kotlinx-serialization by @devcrocod in #603
  • Add df.convertTo(schemaFrom) overload by @koperagen in #764
  • Add Convert.asFrame function by @koperagen in #781
  • Add extension functions for the ResultSet by @zaleslaw in #772

Work on the compiler plugin

  • then operation in pivot column selection DSL inside aggregate by @koperagen in #617
  • Compiler plugin fixes by @koperagen in #740
  • Compiler plugin update by @koperagen in #755
  • Adding utils to help ensure that compile time schema ~ runtime schema by @koperagen in #767
  • Improve codegen for stdlib <-> df interop workflow by @koperagen in #763
  • Add initial support for CS DSL in the compiler plugin by @koperagen in #783
  • Refactor toDataFrame implementation in compiler plugin by @koperagen in #782
  • [Compiler plugin] Avoid throwing debugging exceptions in user projects because of false positives by @koperagen in #788
  • [Compiler plugin] silently abort interpretation in case of invariant errors by @koperagen in #812
  • [Compiler plugin ] Support ColumnName annotation in extension properties codegen by @koperagen in #818
  • Update compiler plugin by @koperagen in #832

Fixes

Docs and Examples

Version Updates

Known Issues

  • Incompatibility with Kandy 0.7.0 for some functions requiring statBin. Resolved in Kandy 0.7.1 and DF 0.14.1.
  • isOpenApiStr logger leaks to Gradle in #785
  • Compiler plugin is still experimental in #704
  • Jupyter importDataSchema() does not generate column accessors in #696
  • Describe breaks on Number column (and other statistics inconsistencies) in #558
  • CSV reading can be slow and needs some rework in #827
  • KDocs are lacking in #811
  • Many more, see issues and feel free to help us :)

New Contributors

Full Changelog: v0.13.1...v0.14.0