Releases: typelevel/cats
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
Cats 2.4.1 (hotfix)
This release fixes a problem in Cats 2.4.0. It is not binary compatible with Cats 2.4.0. We urge everyone to skip 2.4.0 and upgrade directly to 2.4.1.
Cats 2.4.1 is a hotfix release in the 2.x series. It is binary compatible to every previous release in the 2.x series, except for Cats 2.4.0.
The following release notes contain all cumulative changes since Cats 2.3.1.
Additions
- #3220, #3222, #3773 Add Invariant instances for Numeric and Integral by @tmccarthy & @kubukoz
- #3650, #3579 add grouped to NonEmptyCollection by @bbstilson & @larsrh
- #3299, #3293 Generate Show instances for Tuple3 and higher by @barambani
- #3727 .slidingN using tuples by @Slakah
- #3750, #1549 Support scala-native 0.4 by @arashi01
- #3771 add NonEmptyChain.of by @larsrh
- #3318 add syntax for unzip on functors by @yangzai
- #3680 Add more group-like methods to NonEmptyList & Chain by @BalmungSan
- #3748 Delimited continuations via shiftT/resetT for ContT by @TimWSpence
- #3747 Add callCC to ContT by @TimWSpence
- #3765 Add NonEmptyList.take by @saeltz
- #2087, #3753 add Monoid[Comparison] for lexographical ordering by @adelbertc & @larsrh
- #3759 Provide BoundedEnumerable[Byte] instance by @ashleymercer
- #3699 Allow finding a list of maxiumum/minimum items for Foldable/Reducible by @Billzabob & @larsrh
- #3730 Add NonEmptyList.zip by @saeltz
- #3724 Trivial semigroup instances by @RaasAhsan
- #3707, #3710 Add missing Free.liftK and Free.liftId by @phongngtuan
Changes
- #3776, #3777 Removed and replaced inconsistent Parallel derivation for EitherT by @djspiewak
- this change is potentially source-breaking: an existing
implicit
has been made un-implicit
, but anotherimplicit
with a different semantics has been provided (core) - more discussion at typelevel/cats-effect#1645
- this change emits new deprecation warnings
- this change is potentially source-breaking: an existing
- #3734, #3772 Cogen for (Finite)Duration to fix test failures by @larsrh
- this change is only internal in tests
- #2207, #3758 deprecate Free.inject by @larsrh
- this change emits new deprecation warnings
- #3702 specialized EqOps by @YannMoisan
- #3677 Added EmptyK instance for Map by @LMnet
- this change marks a previously non-
implicit
method asimplicit
(alleycats)
- this change marks a previously non-
Documentation
- #3722 Rename productM to mproduct in the glossary by @BenFradet
- #3745 Adjust to GitHub Actions by @sh0hei
- #3744 Improve scaladoc for EitherT.rethrowT by @majk-p
- #3732 scaladoc fixes for PartialOrder by @martijnhoekstra
- #3728 Fix a link in typelevelEcosystem.md by @akiomik
- #3726 update README by @gokyo
Cats 2.4.0 (broken, see notes)
Cats 2.4.0 contains an unintended source-breaking change, please upgrade directly to 2.4.1.
Cats 2.4.0 is a binary-compatible release in the 2.x series. It is the first release with support for Scala Native.
Additions
- #3220, #3222, #3773 Add Invariant instances for Numeric and Integral by @tmccarthy & @kubukoz
- #3650, #3579 add grouped to NonEmptyCollection by @bbstilson & @larsrh
- #3299, #3293 Generate Show instances for Tuple3 and higher by @barambani
- #3727 .slidingN using tuples by @Slakah
- #3750, #1549 Support scala-native 0.4 by @arashi01
- #3771 add NonEmptyChain.of by @larsrh
- #3318 add syntax for unzip on functors by @yangzai
- #3680 Add more group-like methods to NonEmptyList & Chain by @BalmungSan
- #3748 Delimited continuations via shiftT/resetT for ContT by @TimWSpence
- #3747 Add callCC to ContT by @TimWSpence
- #3765 Add NonEmptyList.take by @saeltz
- #2087, #3753 add Monoid[Comparison] for lexographical ordering by @adelbertc & @larsrh
- #3759 Provide BoundedEnumerable[Byte] instance by @ashleymercer
- #3699 Allow finding a list of maxiumum/minimum items for Foldable/Reducible by @Billzabob & @larsrh
- #3730 Add NonEmptyList.zip by @saeltz
- #3724 Trivial semigroup instances by @RaasAhsan
- #3707, #3710 Add missing Free.liftK and Free.liftId by @phongngtuan
Changes
- #3776, #3777 Removed and replaced inconsistent Parallel derivation for EitherT by @djspiewak
- this change is potentially source-breaking: an existing
implicit
has been made un-implicit
, but anotherimplicit
with a different semantics has been provided (core) - more discussion at typelevel/cats-effect#1645
- this change emits new deprecation warnings
- this change is potentially source-breaking: an existing
- #3734, #3772 Cogen for (Finite)Duration to fix test failures by @larsrh
- this change is only internal in tests
- #2207, #3758 deprecate Free.inject by @larsrh
- this change emits new deprecation warnings
- #3702 specialized EqOps by @YannMoisan
- this change accidentally broke source compatibility, please upgrade to 2.4.1
- #3677 Added EmptyK instance for Map by @LMnet
- this change marks a previously non-
implicit
method asimplicit
(alleycats)
- this change marks a previously non-
Documentation
- #3722 Rename productM to mproduct in the glossary by @BenFradet
- #3745 Adjust to GitHub Actions by @sh0hei
- #3744 Improve scaladoc for EitherT.rethrowT by @majk-p
- #3732 scaladoc fixes for PartialOrder by @martijnhoekstra
- #3728 Fix a link in typelevelEcosystem.md by @akiomik
- #3726 update README by @gokyo