Skip to content

v1.0.0-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@ybasket ybasket released this 12 Apr 21:04
· 1236 commits to main since this release
efb97ce

This release is the first release candidate for fs2-data 1.0.0 which brings three main changes:

  • Cats Effect 3.0 and fs2 3.0: These libraries are the foundation fs2-data builds on. As some fundamentals have changed significantly, fs2-data had to adjust as well and can now profit from the cleaner type class hierarchy and the performance improvements coming with these major updates. The current 0.10.x will be the last version line that builds against CE 2.x and fs2 2.x.
  • More input flexibility: All text-based parsers now build on top of the CharLikeChunks, so the boilerplaty conversion of input streams to Char is now obsolete. Char, String and to some extent Byte streams are now supported directly. To cover this change, there's a scalafix migration you can use from this repo directly or wait until the final 1.0.0 that is supposed to have this migration via Scala Steward.
  • New CSV data types & pipes: The CSV pipes known from the 0.x version of fs2-data work nicely, but for most use cases, several of them had to be combined, leading to more boilerplate than what should be necessary to solve the most common problems the library is used for. So 1.0.0-RC1 introduces a new high-level API on top of the existing (which is moved to fs2.data.csv.lowlevel) to provide more concise and easy-to-understand solutions to these. Also, the CsvRow and Row are now not separate classes anymore, but type aliases on a more generic implementation called RowF. Source compatibility should be given for (almost) all use cases, a scalafix making some pattern more idiomatic on the new API is planned additionally.

In addition, some dependencies have been updated. More small changes are likely come before a final 1.0.0, especially around Scala 3 compatibility and error handling in CSV decoding.

The release is cross-published for Scala 2.12.13 and 2.13.5, for both JVM and Scala.js.

All feedback to the new version is very welcome, either via GitHub issue or Gitter.