v2.9.0
Cats v2.9.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.2+ with Scala.js 1.8+ and Scala Native 0.4.
What's Changed
Features
- Added
updated
toTraverse
by @nikololiahim in #4248 - Added
zipWithLongIndex
,mapWithLongIndex
andtraverseWithLongIndexM
by @nikololiahim in #4247 - Add
collectFirst
to theNonEmptyCollection
interface by @DavidGregory084 in #4275 - Added discipline tests for the new
Traverse
laws by @nikololiahim in #4283 - Add
traverseCollect
toTraverseFilter
typeclass by @emilhotkowski in #4277 - Add
NonEmptyList#prependAll
by @saeltz in #4267 - Add
EitherT#biSemiflatTap
which combinesleftSemiflatTap
andsemiflatTap
by @exp0nge in #4293 - Optimize
Alternative
(part 3): addprependK
/appendK
specializations for Cats NE wrappers by @satorg in #4055 - Added
parFlatMapN
by @TonioGela in #4243 - Added
Align
instances forId
andKleisli
by @atnoya in #4287 - Add
ApplicativeError#voidError
by @armanbilge in #4324
Optimizations
- Change the ordering of invocations in
Defer#fix
by @TimWSpence in #4252 - Optimise boilerplate generators, use instance constructors by @joroKr21 in #3871
- Avoid using
NonFatal.unapply
by @jhnsmth in #4282 - Use SAM syntax for typeclass instances where possible by @joroKr21 in #4279
- Singleton monoid instances by @TimWSpence in #4314
- Avoid allocations for
Monoid
instances where possible by @bplommer in #4309 - Make string building a bit more efficient for
NonEmptySeq
by @danicheg in #4326
Fixes
- Don't require
Order
for the value onCogen
forSortedMap
andNonEmptyMap
by @cquiroz in #4296 - Make
cats.compat
a package object forfor2_13Use3
compatibility by @TonioGela in #4315 - Fix ambiguous
contains_
syntax by @armanbilge in #4320
Deprecations
- Deprecate
HashLaws#sameAsUniversalHash
by @armanbilge in #4319
Documentation
- Remove LEGO from adopters list by @hejfelix in #4242
- Fix Free Monad example by @youta32449999 in #4253
- Mention
asRight
andasLeft
for constructing Either values by @benhutchison in #4257 - Fix comment in Free Monad example by @youta32449999 in #4259
- Add proof of inconsistency for a
Validated
Monad by @TonioGela in #4255 - Mention
tupled
syntax, a Cats workhorse that deserves to be more well known by @benhutchison in #4269 - Add missing
scala
modifier to code block by @armanbilge in #4274 - Build docs on 2.13 by @armanbilge in #4238
- Fix list formatting in docs / site by @valencik in #4290
- Move the adopters' companies list to a separate file/page by @danicheg in #4291
- Keep the cats version up to date on the website by @danicheg in #4294
- Include laws in published API docs by @armanbilge in #4318
- Fix markdown syntax for link to
Applicative
inOptionT
by @yoshinorin in #4321 - Add more DocTests for
OptionT
by @timo-schmid in #4311
Behind-the-scenes
- Ignore updates to cats-core by @armanbilge in #4241
- Bump base version to 2.9 by @armanbilge in #4239
- Refactored
Chain
andCollectiveMonoid
benchmarks by @TonioGela in #4264 - Fix obvious and straightforward warnings by @satorg in #4323
- Add commits to
.git-blame-ignore-revs
by @armanbilge in #4334 - Add stack-safety test for
ContT#map
by @eigenvariable in #4335 - Add release notes config by @armanbilge in #4330
Updates
- Update sbt-scalajs, scalajs-compiler, ... to 1.10.1 by @typelevel-steward in #4254
- Update nscplugin, sbt-scala-native, ... to 0.4.7 by @typelevel-steward in #4289
- Update scalacheck to 1.17.0 by @typelevel-steward in #4297
- Update scala3-library, ... to 3.2.1 by @typelevel-steward in #4337
New Contributors
- @hejfelix made their first contribution in #4242
- @youta32449999 made their first contribution in #4253
- @nikololiahim made their first contribution in #4248
- @TonioGela made their first contribution in #4255
- @emilhotkowski made their first contribution in #4277
- @valencik made their first contribution in #4290
- @exp0nge made their first contribution in #4293
- @cquiroz made their first contribution in #4296
- @atnoya made their first contribution in #4287
- @yoshinorin made their first contribution in #4321
- @eigenvariable made their first contribution in #4335
- @timo-schmid made their first contribution in #4311
Full Changelog: v2.8.0...v2.9.0