Releases: typelevel/cats
v2.13.0
Cats v2.13.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.17 and Scala Native 0.5.
What's Changed
The release comes with new APIs, as well as bugfixes and optimizations. While it is binary- and source- compatible, it is recommended for downstream projects to start replacing calls to sequence_ and traverse_ functions (along with their unordered* and par* counterparts) with sequenceVoid, traverseVoid, etc., correspondingly.
Features
- Add FunctionN.liftN, parLiftN by @kubukoz in #4340
- Add distinctBy to NonEmptyCollection and all impls by @cybersaurus in #4608
- Add Hash and Order Instances for NonEmptyVector by @isomarcte in #4612
- Semigroup object additions by @igstan in #4625
- Issue #4631: Make Later covariant by @yanns in #4632
- Add
EitherOps#leftMapOrKeepandEitherOps#leftFlatMapOrKeepby @danicheg in #4638 - Add Defer.recursiveFn to aid in recursion by @johnynek in #4656
- Add
unorderedFoldMapAmethod by @m50d in #4662 - alleycats - Extract[F[_]] the only way to get the syntax is the deprecated one by @aluscent in #4670
- Use alignWith in alignMergeWith by @joroKr21 in #4676
- Aliases
traverseVoid/sequenceVoidand their counterparts by @satorg in #4682 - Add take/takeRight/drop/dropRight to Chain by @johnynek in #4694
Bugfixes
- Fix alleycats Set Functor ambiguous implicits by @LaurenceWarne in #4678
Optimizations
- Override Foldable#toIterable for Chain by @durban in #4693
- Optimize Chain.traverseVoid by @johnynek in #4695
Documentation
- add Blue Insight Digital to ADOPTERS.md by @ahoy196 in #4528
- correct & add documentation links by @performantdata in #4613
- Fix typo in Newtype scaladoc by @i-am-the-slime in #4619
- Fix broken internal link by @bwignall in #4622
- Point to sbt 1.x by @bwignall in #4624
- Fix typos by @bwignall in #4634
- Replace tut with mdoc on the colophon page by @danicheg in #4641
- Fix the broken link on the typeclasses page by @danicheg in #4645
- Fix foldLeft nomenclature signature by @Masynchin in #4648
- Fix some awkward imports by @satorg in #4659
- Fix Sponsors section by @valencik in #4660
- Change IPONWEB to Criteo in ADOPTERS.md by @bio-aeon in #4679
Behind-the-scenes
- Use helper functions in generated code by @joroKr21 in #4303
- Fix/suppress warnings in kernel and kernel-laws by @satorg in #4614
- Adjust the JVM options to heal the Native build on CI by @danicheg in #4623
- Rename root -> cats in build.sbt by @danicheg in #4644
- use
&instead ofwithby @xuwei-k in #4673
Updates
- Update GraalVM from 17 to 21 by @mzuehlke in #4667
- Update auxlib, clib, javalib, nativelib, ... to 0.5.2 by @typelevel-steward in #4607
- Update auxlib, clib, javalib, nativelib, ... to 0.5.3 by @typelevel-steward in #4609
- Update auxlib, clib, javalib, nativelib, ... to 0.5.4 by @typelevel-steward in #4627
- Update auxlib, clib, javalib, nativelib, ... to 0.5.5 by @typelevel-steward in #4646
- Update auxlib, clib, javalib, nativelib, ... to 0.5.6 by @typelevel-steward in #4675
- Update munit to 1.0.1 by @typelevel-steward in #4643
- Update munit to 1.0.2 by @typelevel-steward in #4653
- Update munit to 1.0.3 by @typelevel-steward in #4684
- Update munit to 1.0.4 by @typelevel-steward in #4697
- Update sbt to 1.10.1 by @typelevel-steward in #4633
- Update sbt to 1.10.2 by @typelevel-steward in #4655
- Update sbt to 1.10.3 by @typelevel-steward in #4666
- Update sbt to 1.10.4 by @typelevel-steward in #4669
- Update sbt to 1.10.5 by @typelevel-steward in #4672
- Update sbt, scripted-plugin to 1.10.6 by @typelevel-steward in #4683
- Update sbt, scripted-plugin to 1.10.7 by @typelevel-steward in #4691
- Update sbt-buildinfo to 0.13.0 by @typelevel-steward in #4671
- Update sbt-buildinfo to 0.13.1 by @typelevel-steward in #4674
- Update sbt-doctest to 0.11.0 by @typelevel-steward in #4668
- Update sbt-doctest to 0.11.1 by @typelevel-steward in #4688
- Update sbt-scalajs, scalajs-compiler, ... to 1.17.0 by @typelevel-steward in #4685
- Update sbt-typelevel, sbt-typelevel-site to 0.7.2 by @typelevel-steward in #4636
- Update sbt-typelevel, sbt-typelevel-site to 0.7.3 by @typelevel-steward in #4651
- Update sbt-typelevel, sbt-typelevel-site to 0.7.4 by @typelevel-steward in #4665
- Update sbt-typelevel, sbt-typelevel-site to 0.7.5 by @typelevel-steward in #4692
- Update sbt-typelevel, sbt-typelevel-site to 0.7.6 by @typelevel-steward in #4701
- Update scala-library, scala-reflect to 2.12.20 by @typelevel-steward in #4649
- Update scala-library, scala-reflect to 2.13.15 by @typelevel-steward in #4657
- Update scala-library, scala-reflect to 2.13.16 by @typelevel-steward in #4699
- Update scala3-library, ... to 3.3.4 by @typelevel-steward in #4658
- Update scalacheck to 1.18.1 by @typelevel-steward in #4654
- Update scalafmt-core to 3.8.2 by @typelevel-steward in #4620
- Update scalafmt-core to 3.8.4 by @typelevel-steward in #4698
- Update scalafmt-core to 3.8.5 by @typelevel-steward in #4700
New Contributors
- @cybersaurus made their first contribution in #4608
- @performantdata made their first contribution in #4613
- @i-am-the-slime made their first contribution in #4619
- @yanns made their first contribution in #4632
- @mzuehlke made their first contribution in #4667
- @ahoy196 made their first contribution in #4528
- @LaurenceWarne made their first contribution in #4678
- @aluscent made their first contribution in #4670
Full Changelog: v2.12.0...v2.13.0
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#unlessMby @m50d in #4519 - Add
mapOrKeepto 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.unitby @satorg in #4558 - Use
Applicative#unitinFoldable#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
NonEmptyMapsyntax 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
choicealias 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.scalaandFunctionKMacros.scaladir 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.sbtby @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
OptionTcombinators for effectful Boolean by @ivan-klass in #4390 - Add
Bifunctor#leftLiftToby @eugkhp in #4336 - Add
Kleisli.localKFunctionKhelper by @ivan-klass in #4406 - add
zipforNonEmptySeqby @CristinaHG in #4431 - Add
Functor#composeBifunctorby @bpholt, @armanbilge in #4434 - Add
Validated.unitby @VladKopanev in #4420 - Add
raiseWhen/raiseUnlessconvenience methods toEitherObjectOpsby @Daenyth in #4436 OneAnd: addPartialOrderandOrderinstances by @satorg in #4460- Add
Deferinstances forEq,Hash,Order,Show, and variants by @morgen-peschke in #4414 - Fix ambiguous
Constinstances and add missing instances by @joroKr21 in #4458
Optimizations
- Avoid allocating an
OptioninNonEmptyList#lastby @valencik in #4417 - Improve
foldRightforSeqinstance by @rudolmi in #4440
Fixes
- Move
catsTraverseForSeqto lower-priority implicit scope by @UlisesTorrella in #4373 - Making
Map.unorderedTraversestack safe by @TonioGela in #4463 - Fix unnecessary syntax allocation by @mox692 in #4477
Documentation
- Nomenclature for the
SemigroupKhierarchy 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
ChainDocumentation by @reardonj in #4386 - Add API documentation links by @reardonj in #4401
f >>> gin 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
Iordocs by @fighur in #4423 - Update Ring-like table in Algebra for Semifield added in #3979 by @benhutchison in #4426
- Add
foldrnote toFoldabledoc 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=>traverseWithIndexMby @lenguyenthanh in #4443 - Fix typo in core's package object docs by @fatalem0 in #4446
- Fix
jump_start_guide.mdtypo by @BokChoyWarrior in #4465 - Remove
Eitherdocumentation page by @reardonj in #4400 - Add doctest for
IdTby @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
NonEmptyReducibleinto its own file by @fabianhjr in #4398 - Delete PR template by @joroKr21 in #4459
- Replaced
traversebenchmarks 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
updatedtoTraverseby @nikololiahim in #4248 - Added
zipWithLongIndex,mapWithLongIndexandtraverseWithLongIndexMby @nikololiahim in #4247 - Add
collectFirstto theNonEmptyCollectioninterface by @DavidGregory084 in #4275 - Added discipline tests for the new
Traverselaws by @nikololiahim in #4283 - Add
traverseCollecttoTraverseFiltertypeclass by @emilhotkowski in #4277 - Add
NonEmptyList#prependAllby @saeltz in #4267 - Add
EitherT#biSemiflatTapwhich combinesleftSemiflatTapandsemiflatTapby @exp0nge in #4293 - Optimize
Alternative(part 3): addprependK/appendKspecializations for Cats NE wrappers by @satorg in #4055 - Added
parFlatMapNby @TonioGela in #4243 - Added
Aligninstances forIdandKleisliby @atnoya in #4287 - Add
ApplicativeError#voidErrorby @armanbilge in #4324
Optimizations
- Change the ordering of invocations in
Defer#fixby @TimWSpence in #4252 - Optimise boilerplate generators, use instance constructors by @joroKr21 in #3871
- Avoid using
NonFatal.unapplyby @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
Monoidinstances where possible by @bplommer in #4309 - Make string building a bit more efficient for
NonEmptySeqby @danicheg in #4326
Fixes
- Don't require
Orderfor the value onCogenforSortedMapandNonEmptyMapby @cquiroz in #4296 - Make
cats.compata package object forfor2_13Use3compatibility by @TonioGela in #4315 - Fix ambiguous
contains_syntax by @armanbilge in #4320
Deprecations
- Deprecate
HashLaws#sameAsUniversalHashby @armanbilge in #4319
Documentation
- Remove LEGO from adopters list by @hejfelix in #4242
- Fix Free Monad example by @youta32449999 in #4253
- Mention
asRightandasLeftfor constructing Either values by @benhutchison in #4257 - Fix comment in Free Monad example by @youta32449999 in #4259
- Add proof of inconsistency for a
ValidatedMonad by @TonioGela in #4255 - Mention
tupledsyntax, a Cats workhorse that deserves to be more well known by @benhutchison in #4269 - Add missing
scalamodifier 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
ApplicativeinOptionTby @yoshinorin in #4321 - Add more DocTests for
OptionTby @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
ChainandCollectiveMonoidbenchmarks by @TonioGela in #4264 - Fix obvious and straightforward warnings by @satorg in #4323
- Add commits to
.git-blame-ignore-revsby @armanbilge in #4334 - Add stack-safety test for
ContT#mapby @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
foldFtoIorTby @isomarcte in #4075 - Add
toIorTonEitherTby @isomarcte in #4108 - Add
OrderandPartialOrderForSortedMapby @isomarcte in #4092 SemigroupK/MonoidKmethods by @TimWSpence in #4084- added
ifFtoFunctorby @atais in #4146 - Alleycats: upgrade
Iterableinstance fromFoldabletoTraverse, addTraverseFilterby @bplommer in #4152 - Add
Chain#knownSizeandChain#lengthCompare(sizeCompare) methods by @satorg in #4159 - Add missing
Chain#distinctBymethod by @satorg in #4156 - Move
contain_toUnorderedFoldableby @BalmungSan in #4183 - Added
flatMapNby @domaspoliakas in #4009 - Add
getOrRaiseforOptionT,EitherTandIorTby @geirolz in #4212 - Support lifting polymorphic functions to
FunctionKin Scala 3 by @bplommer in #3895 - Add
mapAccumulatetoTraverseby @BalmungSan in #4209 - Add
replicateA_,parReplicateA_by @rabinarai1 in #4208 - Cross-build for Scala 3 + Native by @armanbilge in #4228
Optimizations
- More efficient
slidingNfunctions by @joroKr21 in #4067 - Optimize
Chainlength methods by @bplommer in #4166 - A few more
Chainoptimizations by @johnynek in #4170 - Optimise
Kleisliwith specializedFunction1implementation by @bplommer in #4211 - override more
mapAccumulatemethods inTraverseby @johnynek in #4214 - Optimize
replicateAto have same recursive structure asreplicateA_by @johnynek in #4233 - Tail-recursive
replicateAby @armanbilge in #4234
Fixes
- Add
Semigroupal[Id]to implicit scope by @joroKr21 in #4056 - Remove
@implicitNotFoundannotations by @armanbilge in #4060 - Return stack-safe
Function0andFunction1fromSemigroup#combineby @mrdziuban in #4093 - remove unused
Apply#tupleNtype param by @xuwei-k in #4142 - Make
catsInstancesForIdCompat2_6_1package-private by @armanbilge in #4191 - Make
whenA/unlessAsyntax by-name lazy by @catostrophe, @armanbilge in #4207 - weaken constraint on
ParallelApOpsandParallelApplyOpsmethods by @jbwheatley in #4078 - Prevent
Chaininstances being backed by mutable or lazySeqby @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
IOas a replacement for every use case ofFutureby @BalmungSan, @johnynek, @armanbilge in #4230Any non-pure use of
Futurewith Cats is error prone (particularly the semantics oftraversewith regard to execution order are unspecified). We recommend using Cats EffectIOas 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
Futuretraversebehavior 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
Bimonadby @gatear in #4076 - readme updates by @SethTisue in #4096
- Remove unused type parameter in
Choicetypeclass doc by @b-vennes in #4113 - DocTests for
OptionTby @FelAl in #4038 - Documentation/update adopters & contibuting by @benkio in #4124
- Fix readme by @danicheg in #4141
- more doctests to
Reducibleby @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
Bifoldabledocs by @gatear in #4109 StateTDocumentation 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->isScala3by @armanbilge in #4119 - Clean up
GenTupleParallelSyntaxby @danicheg in #4127 - Reduce compilation warnings in
testsby @satorg in #4083 - Migrate to sbt-typelevel by @armanbilge in #4160
- Build cleanups by @armanbilge in #4181
- temporarily disable
tlFatalWarningsInCiby @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/appendKspecializations for std containers by @satorg - #4014 optimize
Alternative(part 1): introduceNonEmptyAlternativewithprependKandappendKmethods by @satorg - #3931 Add missing methods to
VectorOpsby @satorg - #4036 Adding
Id.applyby @BalmungSan - #4032
Invariant[Fractional]by @tmccarthy - #4029 Add
parReduceMapAby @isomarcte - #4007 Introduce
parReplicateAby @RafalSumislawski - #4015 Implement
OptionT#foreachFby @armanbilge - #3979 Add
SemifieldandCommutativeSemifieldto algebra by @armanbilge - #3963
NonEmptyMap: add new methods by @satorg - #3987 Implement
InvariantCoyonedaby @armanbilge
Changes
- #3997 Relax a constraint for
Alternative's unite and separate methods fromMonadtoFlatMapby @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.allinstead ofcats.implicitsin 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
toIterablemore and use it by @johnynek - #3960 Fix
traverse_forListandVectorto 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
map2EvalinFlatMapby @vasilmkd - #3943 Use new sbt syntax for fmt commands by @danicheg
- #3932 Add Tranzzo to adopters list by @gorbylov
- #3894 Test
FunctionKin scala 3 by @bplommer - #3893 Deprecate
ifAby @diesalbla - #3909 Add doctests to
Bifoldableby @brs96 - #3906 Move
Idinstances 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