Releases: typelevel/cats
v2.12.0
Cats v2.12.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.5.
What's Changed
Features
Behind-the-Scenes
- Remove special ExecutionContextExecutor by @kapunga in #4601
- Bump base version to 2.12 by @mpilquist in #4606
Updates
- Update nscplugin, sbt-scala-native to 0.5.1 by @typelevel-steward in #4585
- Update discipline-munit to 2.0.0 by @typelevel-steward in #4605
New Contributors
Full Changelog: v2.11.0...v2.12.0
v2.11.0
Cats v2.11.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.
What's Changed
Features
- Add
OptionT#unlessM
by @m50d in #4519 - Add
mapOrKeep
to Functor by @jozic in #4582 - Expose FunctionK.liftFunction as a part of the Scala 3 API by @pomadchin in #4600
- FunctionKLift cross compiled liftFunction suite by @pomadchin in #4603
Optimizations
- Replaces other
Applicative.pure(())
with.unit
by @satorg in #4558 - Use
Applicative#unit
inFoldable#traverse_
by @valencik in #4557 - Optimize traverse by @TimWSpence in #4498
Fixes
- Fix EitherT Bifunctor priority, add Bifoldable instance by @joroKr21 in #4576
- fix ambiguous ContravariantShow[SortedSet[A]] (& SortedMap) by @chwthewke in #4575
- Reduce visibility of value member in the
NonEmptyMap
syntax by @TonioGela in #4559
Documentation
- Fix link to Fetch by @mainali123 in #4522
- update book's link to second edition by @naferx in #4524
- fix wording at end of Semigroup doc by @vreuter in #4551
- Fix
choice
alias render in docs by @Masynchin in #4580 - fix typo by @Ghurtchu in #4583
- Use syntax in Functor's doc examples by @jozic in #4599
Behind-the-scenes
- fix
MonadOps.scala
andFunctionKMacros.scala
dir by @xuwei-k in #4548 - Bump base version to 2.11 by @armanbilge in #4496
- add explicit type by @xuwei-k in #4508
- fix warning in
build.sbt
by @xuwei-k in #4518 - enforce new wildcard syntax by @xuwei-k in #4544
- Update copyright date by @geny200 in #4593
Updates
- Update sbt-typelevel, sbt-typelevel-site to 0.5.0 by @typelevel-steward in #4497
- Update sbt to 1.9.4 by @typelevel-steward in #4500
- Update scalafmt-core to 3.7.13 by @typelevel-steward in #4502
- Update scalafmt-core to 3.7.14 by @typelevel-steward in #4503
- Update sbt-jmh to 0.4.6 by @typelevel-steward in #4506
- Update scala3-library, ... to 3.3.1 by @typelevel-steward in #4507
- Update nscplugin, sbt-scala-native, ... to 0.4.15 by @typelevel-steward in #4505
- Update sbt-typelevel, sbt-typelevel-site to 0.5.1 by @typelevel-steward in #4509
- Update scala-library, scala-reflect to 2.13.12 by @typelevel-steward in #4510
- Update sbt-typelevel, sbt-typelevel-site to 0.5.2 by @typelevel-steward in #4511
- Update sbt to 1.9.5 by @typelevel-steward in #4512
- Update munit to 1.0.0-M9 by @typelevel-steward in #4513
- Update sbt to 1.9.6 by @typelevel-steward in #4515
- Update sbt-typelevel, sbt-typelevel-site to 0.5.3 by @typelevel-steward in #4517
- Update munit to 1.0.0-M10 by @typelevel-steward in #4516
- Update sbt-scalajs, scalajs-compiler, ... to 1.14.0 by @typelevel-steward in #4520
- Update sbt-typelevel, sbt-typelevel-site to 0.5.4 by @typelevel-steward in #4523
- Update flatMapF in nomenclature.md by @pera in #4525
- Update nscplugin, sbt-scala-native, ... to 0.4.16 by @typelevel-steward in #4526
- Update sbt-typelevel, sbt-typelevel-site to 0.6.0 by @typelevel-steward in #4527
- Update sbt to 1.9.7 by @typelevel-steward in #4529
- Update scalafmt-core to 3.7.15 by @typelevel-steward in #4530
- Update sbt-typelevel, sbt-typelevel-site to 0.6.1 by @typelevel-steward in #4532
- Update sbt-typelevel, sbt-typelevel-site to 0.6.2 by @typelevel-steward in #4535
- Update scalafmt-core to 3.7.17 by @typelevel-steward in #4536
- Update sbt-typelevel, sbt-typelevel-site to 0.6.3 by @typelevel-steward in #4538
- Update sbt-jmh to 0.4.7 by @typelevel-steward in #4539
- Update sbt to 1.9.8 by @typelevel-steward in #4541
- Update sbt-typelevel, sbt-typelevel-site to 0.6.4 by @typelevel-steward in #4542
- Update sbt-typelevel, sbt-typelevel-site to 0.6.5 by @typelevel-steward in #4546
- Update nscplugin, sbt-scala-native, ... to 0.4.17 by @typelevel-steward in #4550
- Update sbt-scalajs, scalajs-compiler, ... to 1.15.0 by @typelevel-steward in #4549
- Update munit to 1.0.0-M11 by @typelevel-steward in #4556
- Update sbt-typelevel, sbt-typelevel-site to 0.6.6 by @typelevel-steward in #4560
- Update scalafmt-core to 3.8.0 by @typelevel-steward in #4563
- Update sbt to 1.9.9 by @typelevel-steward in #4565
- Update sbt-typelevel, sbt-typelevel-site to 0.6.7 by @typelevel-steward in #4566
- Update scala-library, scala-reflect to 2.13.13 by @typelevel-steward in #4568
- Update scala-library, scala-reflect to 2.12.19 by @typelevel-steward in #4567
- Update scala3-library, ... to 3.3.3 by @typelevel-steward in #4571
- Update sbt-buildinfo to 0.12.0 by @typelevel-steward in #4577
- Update scalafmt-core to 3.8.1 by @typelevel-steward in #4578
- Update sbt-scalajs, scalajs-compiler, ... to 1.16.0 by @typelevel-steward in #4581
- Update discipline-core to 1.6.0 by @typelevel-steward in #4588
- Update scalacheck to 1.17.1 by @typelevel-steward in #4586
- Update sbt-typelevel, sbt-typelevel-site to 0.7.0 by @typelevel-steward in #4591
- Update munit to 1.0.0-RC1 by @typelevel-steward in #4592
- Update scala-library, scala-reflect to 2.13.14 by @typelevel-steward in #4594
- Update sbt to 1.10.0 by @typelevel-steward in #4596
- Update sbt-typelevel, sbt-typelevel-site to 0.7.1 by @typelevel-steward in #4597
- Update munit to 1.0.0 by @typelevel-steward in #4604
New Contributors
- @m50d made their first contribution in #4519
- @mainali123 made their first contribution in #4522
- @naferx made their first contribution in #4524
- @vreuter made their first contribution in #4551
- @chwthewke made their first contribution in #4575
- @Ghurtchu made their first contribution in #4583
- @geny200 made their first contribution in #4593
- @pomadchin made their first contribution in #4600
Full Changelog: v2.10.0...v2.11.0
v2.10.0
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
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
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...
Cats 2.7.0
The most significant change in this release is the incorporation of the Typelevel Algebra project within Cats. Cats has long been the primary downstream dependent of this library, and it has significant overlap with a lot of the Cats core mission. Note that this change was made without breaking binary compatibility for transitive downstream users of Algebra, meaning that the package remains algebra
rather than the more-conventional cats.algebra
. This will be adjusted in Cats 3, which has no timeline at present.
Additions
- #4052 Optimize
Alternative
(part 2): addprependK
/appendK
specializations for std containers by @satorg - #4014 optimize
Alternative
(part 1): introduceNonEmptyAlternative
withprependK
andappendK
methods by @satorg - #3931 Add missing methods to
VectorOps
by @satorg - #4036 Adding
Id.apply
by @BalmungSan - #4032
Invariant[Fractional]
by @tmccarthy - #4029 Add
parReduceMapA
by @isomarcte - #4007 Introduce
parReplicateA
by @RafalSumislawski - #4015 Implement
OptionT#foreachF
by @armanbilge - #3979 Add
Semifield
andCommutativeSemifield
to algebra by @armanbilge - #3963
NonEmptyMap
: add new methods by @satorg - #3987 Implement
InvariantCoyoneda
by @armanbilge
Changes
- #3997 Relax a constraint for
Alternative
's unite and separate methods fromMonad
toFlatMap
by @satorg - #4044 Incorrect deprecated messages by @jmgimeno
- #4046 Add missing else keyword to example by @Steve
- #4040 Add Adobe CCA team as users of Cats by @gatear
- #4039 Remove out-of-date comment by @TimWSpence
- #4037 Typo fix: ',' instead of '=>' by @JakubSzczerbinski
- #4026 Using
cats.syntax.all
instead ofcats.implicits
in the docs by @BalmungSan - #4024 Add library Jms4s to the ecosystem page by @benkio
- #4017 Adding Medidata as an Adopter in the README.md by @tmilner
- #4013 Add SEEK Limited to Adopter list by @bjing
- #4005 Typelevel ecosystem broken links fix by @benkio
- #3944 add identity hash to alleycats by @SimY4
- #3985 Add NetworkedAssets to adopters list by @RafalSumislawski
- #3984 Use OpenCollective GraphQL API to render sponsors by @armanbilge
- #3918 Binary-compatibly move typelevel/algebra into cats repo by @armanbilge
- #3972 Render sponsors from Open Collective REST API by @rossabaker
- #3967 override
toIterable
more and use it by @johnynek - #3960 Fix
traverse_
forList
andVector
to be stack safe by @johnynek - #3949 Added implementation of
Eq[Free]
by @djspiewak - #3956 Configure microsite image directory by @rossabaker
- #3958
Eq[NonEmptySet[A]]
now needsEq[A]
, notOrder[A]
by @domaspoliakas - #3945 Cleanup ScalaStyle things by @danicheg
- #3951 Override
map2Eval
inFlatMap
by @vasilmkd - #3943 Use new sbt syntax for fmt commands by @danicheg
- #3932 Add Tranzzo to adopters list by @gorbylov
- #3894 Test
FunctionK
in scala 3 by @bplommer - #3893 Deprecate
ifA
by @diesalbla - #3909 Add doctests to
Bifoldable
by @brs96 - #3906 Move
Id
instances into implicit scope for Scala 3 by @joroKr21
Cats 2.6.1
There are no noteworthy additions in this release, but it is the first Cats release for Scala 3!
Cats 2.6.0
Cats 2.6.0 is a binary-compatible release in the 2.x series. It provides support for Scala 2.12, 2.13, 3.0.0-RC2 and 3.0.0-RC3.
Additions
- #3831 Add composition to Representable by @TimWSpence
- #3832 Representable instance for Tuple2K by @TimWSpence
- #3837 Provide instance of
Alternative[Set]
in alleycats by @rtyley - #3836 RepresentableStoreT by @TimWSpence
Changes
- #3847 Make deprecated catsDataInstancesForNonEmptyMap not implicit by @joroKr21 (source breaking)
- #3720, #3852 fix show interpolation ambiguity with Seq/List by @tnielens
- #2254, #3856 Remove redundant Monad constraints from Parallel syntax by @joroKr21
- #3851 Update 'Jump Start Guide' page to modern cats by @chaitanyawaikar
Cats 2.5.0
Cats 2.5.0 is a binary-compatible release in the 2.x series. It provides support for Scala 2.12, 2.13, 3.0.0-RC1 and 3.0.0-RC2.
Additions
- #3808 Chain add fromOption factory method by @nikiforo
- #3826, #3827 Add syntax for parProduct and parAp by @nigredo-tori
- #3804, #3805 Add Ior.mergeWith and AlignMergeWith by @nigredo-tori
- #3806 Add Align instance for Nested by @nigredo-tori
- #3643, #3823 Add sumAll & productAll by @phongngtuan, @larsrh
Changes
- #3818 update Scala to 2.13.5 by @sh0hei
- #3825 Use -scalajs-mapSourceURI in Scala 3 builds by @fthomas
- #3377, #3807 Replace Band instance for NonEmptyMap with a Semigroup instance consistent with SortedMap by @nigredo-tori
- #3480, #3833 Rename master to main by @travisbrown, @larsrh
Documentation
Cats 2.4.2
Cats 2.4.2 is a small maintenance release, with added support Scala 3.0.0-RC1.
Additions
- #3793 Add BoundedEnumerable.reverse by @ashleymercer
Changes
- #3799 Fix scalafix rewriting for Foldable typeclass by @catostrophe
- #3801 Build for Scala 3.0.0-RC1 by @djspiewak
- #3792 Revert implicitness of Empty.fromEmptyK @joroKr21