v0.16.0
This is the first release with support for type class derivation on Scala 3! 🥳
It adds derivation for the type classes FunctorK, ContravariantK, InvariantK, SemigroupalK and ApplyK. One caveat compared to Scala 2 is that algebras with type members are not supported. The derivation macros are experimental meaning that call-sites need to be annotated with @experimental. Alternatively, users can enable the -experimental compiler option starting with Scala 3.4. The reasons for both limitations are rooted in the underlying macro APIs.
What's Changed
- Update scala3-library, ... to 3.3.0 by @pomadchin in https://github.com/typelevel/cats-tagless/pull/429
- check binary compatibility with v0.14.0 wherever possible by @bpholt in https://github.com/typelevel/cats-tagless/pull/430
- Added examples project by @vasiliybondarenko in https://github.com/typelevel/cats-tagless/pull/418
- Fix microsite links by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/437
- Support Semigroupal for more complex types by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/438
- Quality of life improvements in DeriveMacros by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/439
- Fix FunctorK when F occurs only in contravariant position by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/440
- Add FunctorK instance for FS2 Stream by @m50d in https://github.com/typelevel/cats-tagless/pull/443
- Derive SemigroupK by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/441
- Derive MonoidK, fix SemigroupK by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/445
- Update Ruby and Jekyll by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/507
- Exclude metals.sbt from scalafmt by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/511
- Scala3 FunctorK macros by @pomadchin in https://github.com/typelevel/cats-tagless/pull/442
- Scala3 SemigroupalK and InvariantK macros by @pomadchin in https://github.com/typelevel/cats-tagless/pull/513
- Scala3 ContravariantK macros by @pomadchin in https://github.com/typelevel/cats-tagless/pull/518
- Scala3 ApplyK macros and SemigroupalK derivation improvement by @pomadchin in https://github.com/typelevel/cats-tagless/pull/516
- Handle repeated and by-name parameters by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/519
- Hacky solution of the Tuple2K problem by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/520
- [Scala 3] Use Semigroup to combine results in SemigroupalK derivation by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/521
- Consolidate Derive API between Scala 2 and Scala 3 by @joroKr21 in https://github.com/typelevel/cats-tagless/pull/522
Dependency Updates
- Update sbt to 1.9.0 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/431
- Update nscplugin, sbt-scala-native, ... to 0.4.13 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/432
- Update sbt-typelevel, ... to 0.4.22 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/433
- Update nscplugin, sbt-scala-native, ... to 0.4.14 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/434
- Update scala-compiler, scala-library, ... to 2.12.18 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/435
- Update scala-compiler, scala-library, ... to 2.13.11 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/436
- Update scalafmt-core to 3.7.4 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/426
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.2 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/444
- Update sbt to 1.9.1 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/446
- Update scalafmt-core to 3.7.5 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/447
- Update scalafmt-core to 3.7.6 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/448
- Update scalafmt-core to 3.7.7 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/449
- Update sbt-scala-native-crossproject to 1.3.2 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/450
- Update sbt to 1.9.2 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/451
- Update scalafmt-core to 3.7.8 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/452
- Update scalafmt-core to 3.7.9 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/453
- Update scalafmt-core to 3.7.10 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/454
- Update sbt to 1.9.3 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/455
- Update scalafmt-core to 3.7.11 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/456
- Update fs2-core to 3.8.0 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/457
- Update scalafmt-core to 3.7.12 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/458
- Update cats-core, cats-free, cats-laws, ... to 2.10.0 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/459
- Update sbt to 1.9.4 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/461
- Update scalafmt-core to 3.7.13 by @typelevel-steward in https://github.com/typelevel/cats-tagless/pull/462
New Contributors
- @vasiliybondarenko made their first contribution in https://github.com/typelevel/cats-tagless/pull/418
- @m50d made their first contribution in https://github.com/typelevel/cats-tagless/pull/443
Full Changelog: https://github.com/typelevel/cats-tagless/compare/v0.15.0...v0.16.0