v2.8.0
Cats v2.8.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.1+ with Scala.js 1.8+ and Scala Native 0.4. This release is the first to support Scala 3 on the Native platform.
Features
- Add
foldF
toIorT
by @isomarcte in #4075 - Add
toIorT
onEitherT
by @isomarcte in #4108 - Add
Order
andPartialOrder
ForSortedMap
by @isomarcte in #4092 SemigroupK
/MonoidK
methods by @TimWSpence in #4084- added
ifF
toFunctor
by @atais in #4146 - Alleycats: upgrade
Iterable
instance fromFoldable
toTraverse
, addTraverseFilter
by @bplommer in #4152 - Add
Chain#knownSize
andChain#lengthCompare
(sizeCompare
) methods by @satorg in #4159 - Add missing
Chain#distinctBy
method by @satorg in #4156 - Move
contain_
toUnorderedFoldable
by @BalmungSan in #4183 - Added
flatMapN
by @domaspoliakas in #4009 - Add
getOrRaise
forOptionT
,EitherT
andIorT
by @geirolz in #4212 - Support lifting polymorphic functions to
FunctionK
in Scala 3 by @bplommer in #3895 - Add
mapAccumulate
toTraverse
by @BalmungSan in #4209 - Add
replicateA_
,parReplicateA_
by @rabinarai1 in #4208 - Cross-build for Scala 3 + Native by @armanbilge in #4228
Optimizations
- More efficient
slidingN
functions by @joroKr21 in #4067 - Optimize
Chain
length methods by @bplommer in #4166 - A few more
Chain
optimizations by @johnynek in #4170 - Optimise
Kleisli
with specializedFunction1
implementation by @bplommer in #4211 - override more
mapAccumulate
methods inTraverse
by @johnynek in #4214 - Optimize
replicateA
to have same recursive structure asreplicateA_
by @johnynek in #4233 - Tail-recursive
replicateA
by @armanbilge in #4234
Fixes
- Add
Semigroupal[Id]
to implicit scope by @joroKr21 in #4056 - Remove
@implicitNotFound
annotations by @armanbilge in #4060 - Return stack-safe
Function0
andFunction1
fromSemigroup#combine
by @mrdziuban in #4093 - remove unused
Apply#tupleN
type param by @xuwei-k in #4142 - Make
catsInstancesForIdCompat2_6_1
package-private by @armanbilge in #4191 - Make
whenA
/unlessA
syntax by-name lazy by @catostrophe, @armanbilge in #4207 - weaken constraint on
ParallelApOps
andParallelApplyOps
methods by @jbwheatley in #4078 - Prevent
Chain
instances being backed by mutable or lazySeq
by @bplommer in #4169 - Use spurious
Fractional[MiniInt]
to testInvariant[Fractional]
by @tmccarthy in #4216 - Expose newtype objects to Mima by @satorg in #4219
Deprecations
-
Recommend Cats Effect
IO
as a replacement for every use case ofFuture
by @BalmungSan, @johnynek, @armanbilge in #4230Any non-pure use of
Future
with Cats is error prone (particularly the semantics oftraverse
with regard to execution order are unspecified). We recommend using Cats EffectIO
as a replacement for every use case ofFuture
. However, at this time there are no plans to remove these instances from Cats.See also: #4176 Changes in
Future
traverse
behavior between 2.6 and 2.7
Documentation
- Update maintainers by @rossabaker in #4073
- cats and category theory in readme by @SethTisue in #4090
- Add documentation for
Bimonad
by @gatear in #4076 - readme updates by @SethTisue in #4096
- Remove unused type parameter in
Choice
typeclass doc by @b-vennes in #4113 - DocTests for
OptionT
by @FelAl in #4038 - Documentation/update adopters & contibuting by @benkio in #4124
- Fix readme by @danicheg in #4141
- more doctests to
Reducible
by @dseer0 in #4148 - Minor typo by @lodamar in #4164
- Fix graphic in README by @armanbilge in #4174
- Add copyright notices and Scala license for code derived from the standard library by @DavidGregory084 in #4196
- adding all three Bartosz Milewski's parts for the Category Theory for Programmers course by @gokyo in #3992
- Readme: Remove references to old Scala versions by @bplommer in #4213
- Fix broken URLs in README.md by @maksymilianrozanski in #4218
- Make
Bifoldable
docs by @gatear in #4109 StateT
Documentation by @benkio in #4126
Adopters
- add lego and disney by @kailuowang in #4087
- Add iofod to users by @qkorbit in #4095
- Added OVO Energy to the list by @CoderDanUK in #4110
- add ClearScore to Adopters by @LydiaSkuse in #4155
- Prometeus -> Prometheus by @Marcus-Rosti in #4198
- Add Cognite to list of adopters by @hakontro in #4201
- Update README.md by @OnAirEntertainment-Scala in #4205
- Add Etsy as an adopter by @JasnaMRB in #4217
Behind-the-scenes
- Rm Jabba index by @danicheg in #4081
- Rename
isDotty
->isScala3
by @armanbilge in #4119 - Clean up
GenTupleParallelSyntax
by @danicheg in #4127 - Reduce compilation warnings in
tests
by @satorg in #4083 - Migrate to sbt-typelevel by @armanbilge in #4160
- Build cleanups by @armanbilge in #4181
- temporarily disable
tlFatalWarningsInCi
by @satorg in #4186 - Add Scala Steward conf by @danicheg in #4197
- Remove unnecessary MiMa filters by @armanbilge in #4204
- Remove simulacrum by @BalmungSan in #4210
- Add new maintainers to developer list by @armanbilge in #4237
Updates
- Update scalafmt-core to 3.2.0 by @scala-steward in #4058
- Update sbt-github-actions to 0.14.0 by @scala-steward in #4064
- Update scalafmt-core to 3.2.1 by @scala-steward in #4069
- Update sbt-scalafmt to 2.4.5 by @scala-steward in #4071
- Update auxlib, javalib, nativelib, nscplugin, ... to 0.4.2 by @scala-steward in #4072
- Update discipline-core to 1.4.0 by @scala-steward in #4074
- Update sbt to 1.5.6 by @scala-steward in #4080
- Update sbt to 1.5.7 by @scala-steward in #4085
- Update snakeyaml to 1.30 by @scala-steward in #4086
- Update sbt to 1.5.8 by @scala-steward in #4091
- Update sbt-scalafmt to 2.4.6 by @scala-steward in #4098
- Update sbt to 1.6.0 by @scala-steward in #4099
- Update sbt to 1.6.1 by @scala-steward in #4100
- Update scalafmt-core to 3.3.0 by @satorg in #4101
- Update sbt-scalafix to 0.9.34 by @scala-steward in #4107
- Update scala-library, scala-reflect to 2.13.8 by @scala-steward in #4111
- Update auxlib, javalib, nativelib, nscplugin, ... to 0.4.3 by @scala-steward in #4115
- Update scalafmt-core to 3.3.3 by @scala-steward in #4116
- Update scalafmt-core to 3.4.0 by @scala-steward in #4121
- Update sbt to 1.6.2 by @scala-steward in #4122
- Update scalafmt-core to 3.4.2 by @scala-steward in #4129
- Update sbt-sonatype to 3.9.11 by @scala-steward in #4130
- Update scalafmt-core to 3.4.3 by @scala-steward in #4131
- Update sbt-buildinfo to 0.11.0 by @scala-steward in #4135
- Update sbt-sonatype to 3.9.12 by @scala-steward in #4136
- Update auxlib, javalib, nativelib, nscplugin, ... to 0.4.4 by @scala-steward in #4140
- Update sbt-scala-native-crossproject, ... to 1.2.0 by @scala-steward in #4150
- Update sbt-doctest to 0.10.0 by @scala-steward in #4151
- Update scalafmt-core to 3.5.0 by @scala-steward in #4157
- Update scalafmt-core to 3.5.1 by @scala-steward in #4163
- Update sbt-mima-plugin to 1.1.0 by @scala-steward in #4165
- Update fs2-core to 0.10.7 by @scala-steward in #4172
- Update scalaz-core to 7.2.34 by @scala-steward in #4173
- Update sbt-typelevel, sbt-typelevel-site to 0.4.9 by @scala-steward in #4180
- Update scalafmt-core to 3.5.2 by @scala-steward in #4192
- Update sbt-scalafix to 0.10.0 by @scala-steward in #4167
- Update scalaz-core to 7.3.6 by @scala-steward in #4179
- Update sbt-typelevel, sbt-typelevel-site to 0.4.10 by @typelevel-steward in #4226
- Update scalafmt-core to 3.5.8 by @typelevel-steward in #4223
- Update sbt-typelevel, sbt-typelevel-site to 0.4.11 by @typelevel-steward in #4227
- Update scala-library, scala-reflect to 2.12.16 by @typelevel-steward in #4231
- Update scala3-library, ... to 3.1.2 by @typelevel-steward in #4221
- Update sbt-typelevel, sbt-typelevel-site to 0.4.12 by @typelevel-steward in #4232
- Update sbt-scalajs, scalajs-compiler, ... to 1.10.0 by @typelevel-steward in #4220
- Update scalacheck to 1.16.0 by @typelevel-steward in #4222
- Update discipline-core to 1.5.1 by @typelevel-steward in #4225
Acknowledgements
A round of applause for the 38 contributors to this release, especially for keeping your PRs fresh while reviews were backlogged. We appreciate you so much!
And special thanks to the Cats' maintainers for their work on this release and especially their tireless, diligent PR reviews.
New Contributors
- @qkorbit made their first contribution in #4095
- @mrdziuban made their first contribution in #4093
- @CoderDanUK made their first contribution in #4110
- @b-vennes made their first contribution in #4113
- @FelAl made their first contribution in #4038
- @atais made their first contribution in #4146
- @dseer0 made their first contribution in #4148
- @LydiaSkuse made their first contribution in #4155
- @lodamar made their first contribution in #4164
- @Marcus-Rosti made their first contribution in #4198
- @hakontro made their first contribution in #4201
- @OnAirEntertainment-Scala made their first contribution in #4205
- @jbwheatley made their first contribution in #4078
- @geirolz made their first contribution in #4212
- @JasnaMRB made their first contribution in #4217
- @maksymilianrozanski made their first contribution in #4218
- @typelevel-steward made their first contribution in #4226
- @rabinarai1 made their first contribution in #4208
Full Changelog: v2.7.0...v2.8.0