Releases: typelevel/cats-tagless
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 #429
- check binary compatibility with v0.14.0 wherever possible by @bpholt in #430
- Added examples project by @vasiliybondarenko in #418
- Fix microsite links by @joroKr21 in #437
- Support Semigroupal for more complex types by @joroKr21 in #438
- Quality of life improvements in DeriveMacros by @joroKr21 in #439
- Fix FunctorK when F occurs only in contravariant position by @joroKr21 in #440
- Add FunctorK instance for FS2 Stream by @m50d in #443
- Derive SemigroupK by @joroKr21 in #441
- Derive MonoidK, fix SemigroupK by @joroKr21 in #445
- Update Ruby and Jekyll by @joroKr21 in #507
- Exclude metals.sbt from scalafmt by @joroKr21 in #511
- Scala3 FunctorK macros by @pomadchin in #442
- Scala3 SemigroupalK and InvariantK macros by @pomadchin in #513
- Scala3 ContravariantK macros by @pomadchin in #518
- Scala3 ApplyK macros and SemigroupalK derivation improvement by @pomadchin in #516
- Handle repeated and by-name parameters by @joroKr21 in #519
- Hacky solution of the Tuple2K problem by @joroKr21 in #520
- [Scala 3] Use Semigroup to combine results in SemigroupalK derivation by @joroKr21 in #521
- Consolidate Derive API between Scala 2 and Scala 3 by @joroKr21 in #522
Dependency Updates
- Update sbt to 1.9.0 by @typelevel-steward in #431
- Update nscplugin, sbt-scala-native, ... to 0.4.13 by @typelevel-steward in #432
- Update sbt-typelevel, ... to 0.4.22 by @typelevel-steward in #433
- Update nscplugin, sbt-scala-native, ... to 0.4.14 by @typelevel-steward in #434
- Update scala-compiler, scala-library, ... to 2.12.18 by @typelevel-steward in #435
- Update scala-compiler, scala-library, ... to 2.13.11 by @typelevel-steward in #436
- Update scalafmt-core to 3.7.4 by @typelevel-steward in #426
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.2 by @typelevel-steward in #444
- Update sbt to 1.9.1 by @typelevel-steward in #446
- Update scalafmt-core to 3.7.5 by @typelevel-steward in #447
- Update scalafmt-core to 3.7.6 by @typelevel-steward in #448
- Update scalafmt-core to 3.7.7 by @typelevel-steward in #449
- Update sbt-scala-native-crossproject to 1.3.2 by @typelevel-steward in #450
- Update sbt to 1.9.2 by @typelevel-steward in #451
- Update scalafmt-core to 3.7.8 by @typelevel-steward in #452
- Update scalafmt-core to 3.7.9 by @typelevel-steward in #453
- Update scalafmt-core to 3.7.10 by @typelevel-steward in #454
- Update sbt to 1.9.3 by @typelevel-steward in #455
- Update scalafmt-core to 3.7.11 by @typelevel-steward in #456
- Update fs2-core to 3.8.0 by @typelevel-steward in #457
- Update scalafmt-core to 3.7.12 by @typelevel-steward in #458
- Update cats-core, cats-free, cats-laws, ... to 2.10.0 by @typelevel-steward in #459
- Update sbt to 1.9.4 by @typelevel-steward in #461
- Update scalafmt-core to 3.7.13 by @typelevel-steward in #462
- Update fs2-core to 3.9.0 by @typelevel-steward in #463
- Update fs2-core to 3.9.1 by @typelevel-steward in #464
- Update circe-core to 0.14.6 by @typelevel-steward in #465
- Update scalafmt-core to 3.7.14 by @typelevel-steward in #466
- Update nscplugin, sbt-scala-native, ... to 0.4.15 by @typelevel-steward in #467
- Update scala3-library, ... to 3.3.1 by @typelevel-steward in #468
- Update sbt-typelevel, ... to 0.5.2 by @typelevel-steward in #471
- Update scala-compiler, scala-library, ... to 2.13.12 by @typelevel-steward in #470
- Update fs2-core to 3.9.2 by @typelevel-steward in #472
- Update sbt to 1.9.5 by @typelevel-steward in #473
- Update sbt to 1.9.6 by @typelevel-steward in #474
- Update sbt-typelevel, ... to 0.5.3 by @typelevel-steward in #475
- Update sbt-scalajs, scalajs-compiler, ... to 1.14.0 by @typelevel-steward in #476
- Update sbt-typelevel, ... to 0.5.4 by @typelevel-steward in #477
- Update sbt-mdoc to 2.3.8 by @typelevel-steward in #478
- Update nscplugin, sbt-scala-native, ... to 0.4.16 by @typelevel-steward in #479
- Update sbt-typelevel, ... to 0.6.0 by @typelevel-steward in #480
- Update sbt-mdoc to 2.4.0 by @typelevel-steward in #481
- Update sbt to 1.9.7 by @typelevel-steward in #482
- Update scalafmt-core to 3.7.15 by @typelevel-steward in #483
- Update sbt-typelevel, ... to 0.6.1 by @typelevel-steward in #484
- Update fs2-core to 3.9.3 by @typelevel-steward in #485
- Update sbt-mdoc to 2.5.0 by @typelevel-steward in #486
- Update sbt-microsites to 1.4.4 by @typelevel-steward in #487
- Update sbt-mdoc to 2.5.1 by @typelevel-steward in #488
- Update sbt-typelevel, ... to 0.6.2 by @typelevel-steward in #490
- Update scalafmt-core to 3.7.17 by @typelevel-steward in #491
- Update sbt-typelevel, ... to 0.6.3 by @typelevel-steward in #492
- Update sbt-typelevel, ... to 0.6.4 by @typelevel-steward in #494
- Update sbt to 1.9.8 by @typelevel-steward in #493
- Update sbt-mdoc to 2.5.2 by @typelevel-steward in #495
- Update sbt-typelevel, ... to 0.6.5 by @typelevel-steward in #496
- Update sbt-scalajs, scalajs-compiler, ... to 1.15.0 by @typelevel-steward in #497
- Update nscplugin, sbt-scala-native, ... to 0.4.17 by @typelevel-steward in #498
- Update fs2-core to 3.9.4 by @typelevel-steward in #499
- Update sbt-typelevel, ... to 0.6.6 by @typelevel-steward in #500
- Update scalafmt-core to 3.8.0 by @typelevel-steward in #501
- Update sbt to 1.9.9 by @typelevel-steward in #502
- Update kind-projector to 0.13.3 by @typelevel-steward in #503
- Update sbt-typelevel, ... to 0.6.7 by @typelevel-steward in #504
- Update scala-compiler, s...
v0.15.0
Now available for Scala 2.12, 2.13 and partially for Scala 3 on the JVM, JS and Native. Many thanks to all contributors ❤️
This is the first release that adds partial support for Scala 3 to the core
and laws
modules! 🥳
This means that the typeclasses themselves and their laws are published for Scala 3, but not yet automatic derivation.
We will need to have a little more patience for this long awaited addition, but hopefully some users can already be unblocked.
Special thanks to @pomadchin for this release and for the ongoing work on cats-tagless for Scala 3.
This involves no less than a complete rewrite of typeclass derivation with the new macro system!
What's Changed
- Add ReaderT test demonstrating lifting side-effecting algebras by @joroKr21 in #250
- Fix doctest after scalafmt update by @joroKr21 in #265
- Enable -Xsource:3 and remove instances which become unnecessary by @joroKr21 in #273
- Migrate to sbt-typelevel by @armanbilge in #314
- Documentation: Warning and resolution for multiple annotations by @msinton in #328
- Setup Mergify with sbt-typelevel by @joroKr21 in #332
- Fix typelevel-steward bot name by @joroKr21 in #354
- Updates come from typelevel-steward now by @armanbilge in #348
- Replace deprecated Sonatype repos by @joroKr21 in #363
- Add one more ReaderT test with effectful provider by @joroKr21 in #366
- Move Circe-based tests to shared sources by @joroKr21 in #373
- Make tests a pure cross project by @joroKr21 in #375
- Rewrite to new syntax by @joroKr21 in #386
- Initial Core Scala 3 cross compilation support by @pomadchin in #425
Dependency updates:
- Update sbt to 1.5.1 by @scala-steward in #235
- Update sbt-microsites to 1.3.4 by @scala-steward in #236
- Update scalacheck to 1.15.4 by @scala-steward in #237
- Update sbt to 1.5.2 by @scala-steward in #238
- Update discipline-munit to 1.0.9 by @scala-steward in #241
- Update discipline-core to 1.1.5 by @scala-steward in #240
- Update cats-core, cats-free, cats-laws, ... to 2.6.1 by @scala-steward in #239
- Update mdoc, sbt-mdoc to 2.2.21 by @scala-steward in #242
- Update scala-compiler, scala-library, ... to 2.13.6 by @scala-steward in #243
- Update sbt-tpolecat to 0.1.18 by @scala-steward in #244
- Update sbt-github-actions to 0.11.0 by @scala-steward in #245
- Update sbt-spiewak-sonatype to 0.21.0 by @scala-steward in #246
- Update circe-core to 0.14.0 by @scala-steward in #247
- Update sbt-tpolecat to 0.1.19 by @scala-steward in #249
- Update circe-core to 0.14.1 by @scala-steward in #248
- Update scala-compiler, scala-library, ... to 2.12.14 by @scala-steward in #251
- Update sbt to 1.5.3 by @scala-steward in #252
- Update sbt-tpolecat to 0.1.20 by @scala-steward in #253
- Update sbt-github-actions to 0.12.0 by @scala-steward in #254
- Update sbt-scalajs, scalajs-library, ... to 1.6.0 by @scala-steward in #255
- Update sbt to 1.5.4 by @scala-steward in #256
- Update sbt-scala-native-crossproject, ... to 1.1.0 by @scala-steward in #257
- Update sbt-scalafmt to 2.4.3 by @scala-steward in #258
- Update sbt to 1.5.5 by @scala-steward in #259
- Update mdoc, sbt-mdoc to 2.2.22 by @scala-steward in #260
- Update sbt-scalajs, scalajs-compiler, ... to 1.7.0 by @scala-steward in #262
- Update sbt-github-actions to 0.13.0 by @scala-steward in #263
- Update scalafmt-core to 3.0.0 by @scala-steward in #264
- Update sbt-spiewak-sonatype to 0.22.0 by @scala-steward in #266
- Update kind-projector to 0.13.1 by @scala-steward in #267
- Update mdoc, sbt-mdoc to 2.2.23 by @scala-steward in #268
- Update scalafmt-core to 3.0.1 by @scala-steward in #269
- Update kind-projector to 0.13.2 by @scala-steward in #271
- Update scalafmt-core to 3.0.2 by @scala-steward in #270
- Update scalafmt-core to 3.0.3 by @scala-steward in #272
- Update sbt-spiewak-sonatype to 0.22.1 by @scala-steward in #275
- Update scalafmt-core to 3.0.4 by @scala-steward in #276
- Update scala-compiler, scala-library, ... to 2.12.15 by @scala-steward in #274
- Update scalafmt-core to 3.0.5 by @scala-steward in #277
- Update scalafmt-core to 3.0.6 by @scala-steward in #278
- Update sbt-scalajs, scalajs-compiler, ... to 1.7.1 by @scala-steward in #279
- Update discipline-core to 1.2.0 by @scala-steward in #280
- Update mdoc, sbt-mdoc to 2.2.24 by @scala-steward in #281
- Update scalafmt-core to 3.0.7 by @scala-steward in #282
- Update auxlib, javalib, nativelib, nscplugin, ... to 0.4.1 by @scala-steward in #283
- Update discipline-core to 1.3.0 by @scala-steward in #284
- Update scalafmt-core to 3.0.8 by @scala-steward in #285
- Update scala-compiler, scala-library, ... to 2.13.7 by @scala-steward in #286
- Update scalafmt-core to 3.1.0 by @scala-steward in #287
- Update scalafmt-core to 3.1.1 by @scala-steward in #288
- Update sbt-scalafmt to 2.4.4 by @scala-steward in #289
- Update scalafmt-core to 3.1.2 by @scala-steward in #290
- Update scalafmt-core to 3.2.0 by @scala-steward in #292
- Update sbt-github-actions to 0.14.2 by @scala-steward in #295
- Update scalafmt-core to 3.2.1 by @scala-steward in #296
- Update sbt-scalafmt to 2.4.5 by @scala-steward in #297
- Update auxlib, javalib, nativelib, nscplugin, ... to 0.4.2 by @scala-steward in #298
- Update discipline-core to 1.4.0 by @scala-steward in #299
- Update sbt to 1.5.6 by @scala-steward in #300
- Update sbt-scalajs, scalajs-compiler, ... to 1.8.0 by @scala-steward in #301
- Update sbt to 1.5.7 by @scala-steward in #302
- Update sbt to 1.5.8 by @scala-steward in #303
- Update scalafmt-core to 3.2.2 by @scala-steward in #304
- Update scalafmt-core to 3.3.0 by @scala-steward in #306
- Update sbt-scalafmt to 2.4.6 by @scala-steward in #305
- Update sbt to 1.6.0 by @scala-steward in #307
- Update sbt to 1.6.1 by @scala-steward in #308
- Update scalafmt-core to 3.3.1 by @scala-steward in #309
- Update scala-compiler, scala-library, ... to 2.13.8 by @scala-steward in #312
- Update scalafmt-core to 3.3.2 by @scala-steward in #313
- Update auxlib, javalib, nativelib, nscplugin, ... to 0.4.3 by @scala-steward in ht...
Cats-tagless 0.14.0
Now available for Scala 2.12 and 2.13 on JVM, JS and Native. Thanks to all contributors ❤️
New - extended support for SemigroupalK
, credit to @ivan-klass for the idea!
Feature enhancements
Documentation improvements
- Fix documentation for ContravariantK (#230 by @ivan-klass)
Build changes
- Stop publishing snapshots (#229 by @joroKr21)
- Remove GPG_TTY environment variable (#228 by @joroKr21)
Dependency updates
- Update mdoc, sbt-mdoc to 2.2.20 (#234 by @scala-steward)
- Update discipline-munit to 1.0.8 (#232 by @scala-steward)
- Update cats-core, cats-free, cats-laws, ... to 2.6.0 (#233 by @scala-steward)
Cats-tagless 0.13.0
Now available for Scala 2.12 and 2.13. Thanks to all contributors ❤️
New - first release supporting Scala Native 🎉
Build changes
- Add Scala native support (#211 by @joroKr21)
- Replace sbt-catalyst with sbt-spiewak (#210 by @joroKr21)
- Converted from Travis to sbt-github-actions (#179 by @djspiewak)
- remove explicit scalatestplus-scalacheck dependency (#178 by @larsrh)
- Setup scalafmt (#167 by @joroKr21)
- Fix root project and publish snapshots (#227 by @joroKr21)
- Delete version.sbt (#226 by @joroKr21)
- Configure organization at ThisBuild level (#225 by @joroKr21)
- Fix doc options and don't publish snapshots (#221 by @joroKr21)
- Add GPG_TTY environment variable (#217 by @joroKr21)
- Add setup-gpg step (#216 by @joroKr21)
- Build fixes to enable publishing (#215 by @joroKr21)
Documentation
- Migrating microsite to Mdoc (#105 by @gvolpe)
- Don't evaluate and print huge stack overflow error (#195 by @joroKr21)
- Call out need for -Ymacro-annotations (#182 by @keirlawson)
Refactoring
Dependency updates
- Update sbt to 1.5.0 (#224 by @scala-steward)
- Update sbt-scalajs, scalajs-compiler, ... to 1.5.1 (#223 by @scala-steward)
- Update sbt-microsites to 1.3.3 (#222 by @scala-steward)
- Update cats-core, cats-free, cats-laws, ... to 2.5.0 (#219 by @scala-steward)
- Update discipline-munit to 1.0.7 (#220 by @scala-steward)
- Update mdoc_2.12, mdoc_2.13, sbt-mdoc to 2.2.19 (#218 by @scala-steward)
- Update sbt-tpolecat to 0.1.17 (#214 by @scala-steward)
- Update sbt to 1.4.9 (#213 by @scala-steward)
- Update sbt to 1.4.8 (#212 by @scala-steward)
- Scala 2.13.5 (#209 by @joroKr21)
- Update cats-core, cats-free, cats-laws, ... to 2.4.2 (#204 by @scala-steward)
- Update discipline-scalatest to 2.1.2 (#206 by @scala-steward)
- Update sbt-catalysts to 0.43 (#207 by @scala-steward)
- Update mdoc_2.12, sbt-mdoc to 2.2.18 (#205 by @scala-steward)
- Update cats-core, cats-free, cats-laws, ... to 2.4.1 (#202 by @scala-steward)
- Update cats-core, cats-free, cats-laws, ... to 2.4.0 (#201 by @scala-steward)
- Update mdoc_2.12, sbt-mdoc to 2.2.17 (#200 by @scala-steward)
- Update sbt-microsites to 1.3.2 (#199 by @scala-steward)
- Update sbt to 1.4.7 (#198 by @scala-steward)
- Scala 2.12.13 (#196 by @joroKr21)
- Update sbt-microsites to 1.3.1 (#197 by @scala-steward)
- Update sbt-microsites to 1.3.0 (#193 by @scala-steward)
- Update mdoc, sbt-mdoc to 2.2.16 (#194 by @scala-steward)
- Update sbt-catalysts to 0.42 (#191 by @scala-steward)
- Update sbt-github-actions to 0.10.1 (#189 by @scala-steward)
- Update sbt-doctest to 0.9.9 (#190 by @scala-steward)
- Update kind-projector to 0.11.3 (#187 by @scala-steward)
- Update sbt to 1.4.6 (#186 by @scala-steward)
- Update discipline-scalatest to 2.1.1 (#185 by @scala-steward)
- Update cats-core, cats-free, cats-laws, ... to 2.3.1 (#184 by @scala-steward)
- Update sbt to 1.4.5 (#183 by @scala-steward)
- Update kind-projector to 0.11.2 (#181 by @scala-steward)
- Scala 2.13.4 (#180 by @joroKr21)
- Update cats-core, cats-free, cats-laws, ... to 2.3.0 (#176 by @scala-steward)
- Update sbt to 1.4.4 (#175 by @scala-steward)
- Update kind-projector to 0.11.1 (#174 by @scala-steward)
- Update sbt to 1.4.3 (#173 by @scala-steward)
- Update discipline-scalatest to 2.1.0 (#172 by @scala-steward)
- Update sbt-doctest to 0.9.8 (#171 by @scala-steward)
- Update sbt to 1.4.2 (#168 by @scala-steward)
Cats-tagless 0.12
Now available for Scala 2.12 and 2.13. Thanks to all contributors ❤️
API / Feature enhancements
- Bring back algebraName at Instrumentation and add it to Aspect (#155 by @Fristi)
- (Inv/Cov/Con)-FunctorK and SemigroupalK instances for core cats classes (#97 by @cosmin33)
- Dependency injection via ReaderT (#153 by @joroKr21)
- Add laws for Aspect and Instrument (#156 by @joroKr21)
- Add Aspect that can do a form of AOP in Tagless Final with type classes (#141 by @joroKr21)
- Add derivation of const / void algebra implementations (#152 by @joroKr21)
Bug fixes
- Fix byname parameters when they have to be transformed (#134 by @joroKr21)
- Fix swapped type parameters of contramapK in mapK (#115 by @joroKr21)
Documentation enhancements
Test improvements
Build changes
Dependency updates
- Update sbt-catalysts to 0.41 (#166 by @scala-steward)
- Update sbt to 1.4.1 (#165 by @scala-steward)
- Update sbt to 1.4.0 (#164 by @scala-steward)
- Update cats-core, cats-free, cats-laws, ... to 2.2.0 (#163 by @scala-steward)
- Update discipline-scalatest to 2.0.1 (#161 by @scala-steward)
- Update scalacheck-1-14 to 3.2.2.0 (#160 by @scala-steward)
- Update sbt-doctest to 0.9.7 (#158 by @scala-steward)
- Update scalacheck-1-14 to 3.2.1.0 (#157 by @scala-steward)
- Update sbt-catalysts to 0.40 (#154 by @scala-steward)
- Update scalacheck-1-14 to 3.2.0.0 (#146 by @scala-steward)
- Update discipline-scalatest to 2.0.0 (#149 by @scala-steward)
- update sbt-catalysts and Scala versions (#150 by @larsrh)
- Update sbt to 1.3.13 (#147 by @scala-steward)
- Update sbt to 1.3.12 (#145 by @scala-steward)
- Update sbt to 1.3.11 (#144 by @scala-steward)
- Update scalacheck-1-14 to 3.1.2.0 (#142 by @scala-steward)
- Update sbt-header to 5.6.0 (#137 by @scala-steward)
- Update sbt to 1.3.10 (#132 by @scala-steward)
- Update sbt-header to 5.5.0 (#131 by @scala-steward)
- Update sbt to 1.3.9 (#130 by @scala-steward)
- Fix build by updating macro paradise and kind-projector (#129 by @joroKr21)
- Update Scala versions in Travis config (#127 by @joroKr21)
- Update discipline-scalatest to 1.0.1 (#124 by @scala-steward)
- Update scalacheck-1-14 to 3.1.1.1 (#123 by @scala-steward)
- Update scalacheck-1-14 to 3.1.1.0 (#122 by @scala-steward)
- Update sbt to 1.3.8 (#119 by @scala-steward)
- Update sbt-catalysts to 0.36 (#118 by @scala-steward)
- Update sbt-doctest to 0.9.6 (#117 by @scala-steward)
- Update discipline-scalatest to 1.0.0 (#116 by @scala-steward)
- Update test dependencies (#114 by @joroKr21)
Cats-tagless 0.9
Cats-tagless 0.8
cats-tagless 0.7
scala-meta annotations were replaced with scala-reflect ones.
Available on Scala 2.13.0-RC2
Cats-tagless 0.6
add support for Scala 2.13-RC1