Cats v2.10.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.3+ with Scala.js 1.13+ and Scala Native 0.4.
This release includes #4477 which fixes the encoding of Apply
(and Semigroupal
) syntax to avoid allocating an intermediate "Ops
" wrapper class. This affected commonly-used operators such as *>
. Unfortunately libraries will need to re-compile and re-publish against Cats v2.10.0 to use the new allocation-free syntax.
Thanks to all the contributors to this release! There are many accumulated changes.
What's Changed
Features
- Add
OptionT
combinators for effectful Boolean by @ivan-klass in #4390 - Add
Bifunctor#leftLiftTo
by @eugkhp in #4336 - Add
Kleisli.localK
FunctionK
helper by @ivan-klass in #4406 - add
zip
forNonEmptySeq
by @CristinaHG in #4431 - Add
Functor#composeBifunctor
by @bpholt, @armanbilge in #4434 - Add
Validated.unit
by @VladKopanev in #4420 - Add
raiseWhen
/raiseUnless
convenience methods toEitherObjectOps
by @Daenyth in #4436 OneAnd
: addPartialOrder
andOrder
instances by @satorg in #4460- Add
Defer
instances forEq
,Hash
,Order
,Show
, and variants by @morgen-peschke in #4414 - Fix ambiguous
Const
instances and add missing instances by @joroKr21 in #4458
Optimizations
- Avoid allocating an
Option
inNonEmptyList#last
by @valencik in #4417 - Improve
foldRight
forSeq
instance by @rudolmi in #4440
Fixes
- Move
catsTraverseForSeq
to lower-priority implicit scope by @UlisesTorrella in #4373 - Making
Map.unorderedTraverse
stack safe by @TonioGela in #4463 - Fix unnecessary syntax allocation by @mox692 in #4477
Documentation
- Nomenclature for the
SemigroupK
hierarchy by @TimWSpence in #4329 - Fix readme by @danicheg in #4368
- Fix the nested unordered list HTML view of docs/typeclasses/alternative.md by @ShapelessCat in #4371
- Fix typo by @Masynchin in #4381
- Add missing syntax highlightning by @Masynchin in #4382
- Add a link about fs2-throttler by @kovstas in #4359
- Publish alleycats docs on website by @armanbilge in #4393
cats.implicits._
->cats.syntax.all._
by @armanbilge in #4394- Update no script links in readme by @RawToast in #4397
- Update CONTRIBUTING.md microsite information by @fabianhjr in #4399
- Improve
Chain
Documentation by @reardonj in #4386 - Add API documentation links by @reardonj in #4401
f >>> g
in symbols table by @jose-puente in #4411- Fix outdated edit link in algebra docs by @lenguyenthanh in #4418
- Update version in readme by @lenguyenthanh in #4422
- Fix typo in
Ior
docs by @fighur in #4423 - Update Ring-like table in Algebra for Semifield added in #3979 by @benhutchison in #4426
- Add
foldr
note toFoldable
doc by @lenguyenthanh in #4425 - Bump versions in law testing doc by @lenguyenthanh in #4424
- ExhaustiveCheck is a list, not a stream by @rossabaker in #4442
- Fix
traverseWithIndex
=>traverseWithIndexM
by @lenguyenthanh in #4443 - Fix typo in core's package object docs by @fatalem0 in #4446
- Fix
jump_start_guide.md
typo by @BokChoyWarrior in #4465 - Remove
Either
documentation page by @reardonj in #4400 - Add doctest for
IdT
by @bulatkhabib in #4445 - Fix typo by @bwignall in #4482
Adopters
- Add IPONWEB as an adopter by @bio-aeon in #4384
- Update ADOPTERS.md by @ehsun7b in #4435
- Add PITS Globale Datenrettungsdienste as an adopter by @arnoldberlin in #4472
Behind-the-scenes
- Bump base version to 2.10 by @armanbilge in #4341
- Remove plugins we get via sbt-typelevel by @armanbilge in #4344
- Clean up benchmarks' dependencies by @danicheg in #4355
- Fix Native CI by @armanbilge in #4363
- remove unused version number by @kailuowang in #4358
- Move
NonEmptyReducible
into its own file by @fabianhjr in #4398 - Delete PR template by @joroKr21 in #4459
- Replaced
traverse
benchmarks with something more representative by @djspiewak in #4403 - Update to sbt-typelevel 0.5.0 by @armanbilge in #4478
Updates
- Update scala3-library, ... to 3.3.0 by @typelevel-steward in #4448
- Update nscplugin, sbt-scala-native, ... to 0.4.14 by @typelevel-steward in #4454
- Update scala-library, scala-reflect to 2.12.18 by @typelevel-steward in #4455
- Update scala-library, scala-reflect to 2.13.11 by @typelevel-steward in #4456
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.2 by @typelevel-steward in #4464
New Contributors
- @ShapelessCat made their first contribution in #4371
- @UlisesTorrella made their first contribution in #4373
- @Masynchin made their first contribution in #4381
- @bio-aeon made their first contribution in #4384
- @kovstas made their first contribution in #4359
- @fabianhjr made their first contribution in #4398
- @reardonj made their first contribution in #4386
- @eugkhp made their first contribution in #4336
- @jose-puente made their first contribution in #4411
- @lenguyenthanh made their first contribution in #4418
- @fighur made their first contribution in #4423
- @ehsun7b made their first contribution in #4435
- @CristinaHG made their first contribution in #4431
- @VladKopanev made their first contribution in #4420
- @rudolmi made their first contribution in #4440
- @fatalem0 made their first contribution in #4446
- @BokChoyWarrior made their first contribution in #4465
- @arnoldberlin made their first contribution in #4472
- @bulatkhabib made their first contribution in #4445
- @mox692 made their first contribution in #4477
Full Changelog: v2.9.0...v2.10.0