Changelog History
Page 2
-
v2.2.0-RC3 Changes
August 15, 2020๐ This is the third release candidate for Cats 2.2.0. We decided to publish another release candidate because since 2.2.0-RC2 we've received contributions that add new type class instances and new methods, fix some issues related to laziness and stack-safety, and improve performance.
๐ This release is verified to be backward binary compatible with all 2.1.x and 2.0.x releases (and also with 1.x for the non-laws modules), but not with any of the other 2.2.0 milestones or release candidates. It breaks binary compatibility with the previous release candidates only in removing a single unnecessary type class instance, the
catsTraverseForEither
method inTraverse
, which was introduced in 2.2.0-M1.๐ The largest change since 2.2.0-RC2 is @LukaJCB's migration of the Cats tests from ScalaTest to MUnit, which makes it easier for us to track current Dotty releases, but this switch has no effect on any published artifacts.
1 bug fix
- #3565 Fix ReducibleLaws causing stack overflow by calling
Eval.now
early by @bastewart
15 API / feature enhancements
- #3569 Change AndThen to directly check isRightAssociated by @johnynek
- #3567 Avoid all evaluation of LazyList#foldRightDefer by @takayahilton
- #3560 Improve AndThen use of Single by @johnynek
- #3553 add ifElseM by @mtomko
- #3556 Order for writert by @TimWSpence
- #3527 Add toRightAssociated to AndThen by @johnynek
- #3555 Order for IorT by @TimWSpence
- #3554 Order for Ior by @TimWSpence
- ๐ #3540 Remove traverseForEither in Traverse companion object by @LukaJCB
- #3549 Enable breakout in Reducible[NonEmptyVector].reduceMapA by @takayahilton
- #3545 Enable breakout in functions nonEmptyTraverse_ and nonEmptySequence_ by @takayahilton
- ๐ #3533 Improve invariants and performance in Chain by @johnynek
- #3535 Improve traverseViaChain API by @johnynek
- #3538 Preliminary Munit port by @LukaJCB
- โก๏ธ #3528 Optimize toNonEmptyList of Reducible[NonEmptyChain] by @takayahilton
๐ 4 documentation improvements
- #3562 Comments on NonEmptyReducible not being a typeclass by @akopich
- #3537 add coulomb-cats to ecosystem list by @erikerlandson
- #3531 adding Hootsuite Inc. to the list of Adopters by @jyoo980
- โก๏ธ #3526 Update README.md by @Immozentral
๐ 11 build improvements
- ๐ #3564 Remove redundant parentheses by @barambani
- โก๏ธ #3561 Update munit-scalacheck to 0.7.11 by @scala-steward
- โก๏ธ #3558 Update sbt-doctest to 0.9.7 by @scala-steward
- โก๏ธ #3557 Update sbt-buildinfo to 0.10.0 by @scala-steward
- โ #3546 Fix alleycats-tests on Scala.js by @joroKr21
- โ #3548 Test freeJS with FastOptStage to save some CO2 by @joroKr21
- #3544 Scala 2.12.3 and 2.12.12 by @barambani
- โก๏ธ #3543 Update discipline-munit to 0.2.3 by @scala-steward
- โก๏ธ #3542 Update sbt-scalafmt to 2.4.2 by @scala-steward
- โก๏ธ #3539 Update discipline-core to 1.0.3 by @scala-steward
- โก๏ธ #3530 Update discipline-scalatest to 2.0.0 by @scala-steward
- #3565 Fix ReducibleLaws causing stack overflow by calling
-
v2.2.0-RC2 Changes
July 21, 2020๐ This is the second release candidate for Cats 2.2.0. We decided to publish another release candidate because of several significant implementation improvements by @johnynek, including in particular #3519 and #3521. This release is verified to be backward binary compatible with 2.2.0-RC1, 2.2.0-M3, and all 2.1.x and 2.0.x releases (and also with 1.x for the non-laws modules), but not with 2.2.0-M1 or 2.2.0-M2.
7 API / feature enhancements
- #3524 A method
StateT.fromState
turningState[A, F[B]]
intoStateT[F,A, B]
is added. by @akopich - #3498 Enable breakout in functions reduceRightToOption and reduceRightTo. by @takayahilton
- ๐ #3519 remove casts from Eval, fix stack overflow in Eval by @johnynek
- #3521 make collection traversals stack safe by @johnynek
- #3516 Override some Option Apply/Applicative methods by @johnynek
- ๐ #3518 remove some casts in AndThen by @johnynek
- #3515 Add some more implementations to Function0 and Function1 Monads by @johnynek
๐ 3 build improvements
- โก๏ธ #3525 Update scalafmt-core to 2.6.4 by @scala-steward
- โก๏ธ #3520 Update sbt-scalafix to 0.9.19 by @scala-steward
- #3514 Scalafmt-core 2.6.3 by @barambani
- #3524 A method
-
v2.2.0-RC1 Changes
July 06, 2020๐ This is the first release candidate for Cats 2.2.0, and it will become 2.2.0 if no major issues turn up in the next week or two. It includes some minor changes that technically break source compatibility with 2.2.0-M3 (for example), but these should not affect normal usage. It is backward binary compatible with 2.2.0-M3 and all 2.1.x and 2.0.x releases (and also with 1.x for the non-laws modules), but it is not binary compatible with 2.2.0-M1 or 2.2.0-M2.
๐ Please note that this release follows 2.2.0-M3 in dropping support for Scala.js 0.6.
10 API / feature enhancements
- #3458 Enum typeclass by @yilinwei
- ๐ #3508 Put implicit support for evidence from predef types by @johnynek
- #3459 attemptTap by @RaasAhsan
- #3502 Add Tuple2K Semigroupal by @rmehri01
- ๐ #3495 Add implicit variance support for Profunctor typeclass by @gagandeepkalra
- #3358 ApplicativeError: add raiseOption operation. by @diesalbla
- #3493 Don't skip PartialOrder antisymmetry and transitivity by @rossabaker
- #3336 some convenient for IndexedReaderWriterStateT by @enzief
- ๐ #3486 Another attempt at Dotty cross-building by @travisbrown
- ๐ #3485 Remove unnecessary type parameter by @travisbrown
๐ 7 documentation improvements
- ๐ #3501 improved MonoidK docs by @kazchimo
- ๐ #3492 Add invariant docs by @kazchimo
- #3497 Modify document expressions by @yu-croco
- #3390 Add document about Arrow Choice by @jcouyang
- ๐ #3481 Improve documentation for typeclasses by @kkalavantavanich
- ๐ #3478 Add ior docs by @kazchimo
- #3479 Clean up Community Announcements a little by @travisbrown
๐ 14 build improvements
- ๐ #3496 Fix cross-versioning for docs by @travisbrown
- โก๏ธ #3506 Update scalafmt-core to 2.6.2 by @scala-steward
- โก๏ธ #3506 Update sbt-scalafix to 0.9.18 by @scala-steward
- โก๏ธ #3507 Update sbt-sonatype to 3.9.4 by @scala-steward
- #3496 Review Simulacrum Scalafix annotation practices by @travisbrown
- โก๏ธ #3504 Update sbt-scalajs, scalajs-compiler to 1.1.1 by @scala-steward
- โก๏ธ #3500 Update sbt to 1.3.13 by @scala-steward
- โก๏ธ #3491 Update sbt-sonatype to 3.9.3 by @scala-steward
- ๐ #3490 Fixed formatting on master by @barambani
- #3488 Scalafmt core 2.6.1 by @barambani
- โ #3484 Add ScalaTest 3.2.0 dependencies by @travisbrown
- #3482 Rerun Simulacrum after rearrangement for Scala.js by @travisbrown
- โก๏ธ #3476 Update to Scalafmt 2.6.0 by @travisbrown
- ๐ #3475 Merge 2.2.x after 2.2.0-M3 release by @travisbrown
-
v2.2.0-M3 Changes
June 17, 2020Please note that while this release is verified to be backward binary compatible with all 2.1.x and 2.0.x releases (and with 1.x for the non-laws modules), it is not binary compatible with either 2.2.0-M1 or 2.2.0-M2, primarily because of #3397. It should be source compatible with the previous 2.2.0 milestones, with the exception of some non-standard usage (e.g. calling instance methods like
catsFunctorFilterForMap
explicitly) and theap
method onKleisli
(see #3462).๐ This is the first Cats release that drops Scala.js 0.6 cross-building and only supports Scala.js 1.x. It's likely that the next release will be a 2.2.0 release candidate, but we don't currently have a definite timeline for 2.2.0.
1 source breaking change
15 API / feature enhancements
- #3467 Add Parallel traverseFilter functions by @LukaJCB
- #3464 Add BinCompat extensions to syntax.apply import by @gagandeepkalra
- #3463 Added CommutativeMonoid for Option to scope by @barambani
- #3457 Add EitherT and IorT constructors from Option with monad left value by @ivan-klass
- #3456 Override map2Eval and combineKEval for monad transformers by @LukaJCB
- #3451 Issue 3447: Add more foldMapK shortcircuiting by @barambani
- #3446 Add combineKEval and add short-circuiting for foldMapK by @LukaJCB
- #3440 Mark Ops traits as Serializable by @travisbrown
- #3439 Make boilerplate syntax classes extend Serializable by @ceedubs
- #3436 Add auto variance as additional import by @LukaJCB
- #3432 NonEmptyList.groupByNelA by @pk044
- ๐ #3397 Remove Order constraints from SortedMap and NonEmptyMap instances by @joroKr21
- #3396 Syntax for function1 kleisli-composition by @valenterry
- #3392 Add PartialFunction instance for Profunctor typeclass by @gagandeepkalra
- #3382 Optimise NonEmptyTraverse implementation by @gagandeepkalra
๐ 3 documentation improvements
- ๐ #3469 Move nomenclature questions below introductory paragraph by @rmehri01
- #3468 Add Filippo Mariotti as a maintainer by @LukaJCB
- โก๏ธ #3455 Update faq for ammonite by @psilospore
๐ 14 build improvements
- โก๏ธ #3471 Some travis ci updates by @barambani
- ๐ท #3466 Adding travis job names by @barambani
- โก๏ธ #3461 Update sbt-scalafix to 0.9.17 by @scala-steward
- โก๏ธ #3448 Update simulacrum-scalafix-annotations to 0.3.0 by @scala-steward
- โก๏ธ #3445 Update sbt to 1.3.12 by @scala-steward
- #3444 Scalafmt 2.5.3 by @travisbrown
- ๐ #3442 Deprecate Simulacrum ops objects by @travisbrown
- โก๏ธ #3441 Update sbt to 1.3.11 by @scala-steward
- #3438 Change value-level kind-projector syntax by @travisbrown
- โก๏ธ #3437 Update sbt-scalafix to 0.9.16 by @scala-steward
- #3435 Use FullOptStage by @travisbrown
- ๐ง #3428 Configure codecov to simplify PR comments by @travisbrown
- โก๏ธ #3425 Update Scalafmt to 2.5.2 by @travisbrown
- โก๏ธ #3357 Update Scala.js to 1.0, disable Scala.js coverage reporting by @travisbrown
-
v2.2.0-M2 Changes
May 25, 2020๐ This release fixes two minor bugs (a couple of instances were missing from the implicit scope additions in 2.2.0-M1, and some
WriterT
instances weren't property prioritized). It also includes several API additions and build-related version updates.๐ There's also been a significant change to the way
cats.syntax
enrichment method boilerplate is generated (see #3424 and #3192 for details). This change should not have any user-facing effects, but if you notice anything unusual please let us know.This release is verified to be backward binary compatible with all previous 2.1.x and 2.0.x releases, and the non-laws modules are binary compatible with all 1.x releases. It also happens to be binary compatible with the previous 2.2.0-M1 milestone, although we don't guarantee compatibility between milestones.
๐ This release is cross-published for Scala.js 0.6 (specifically 0.6.33) and 1.1.0. Like the last few releases, this may be the last that supports Scala.js 0.6; we're planning to move the build to 1.x soon.
๐ The warnings in the 2.2.0-M1 release notes apply to this milestone as well. Please try it out, but be careful, and if possible report any issues you run into.
๐ Any feedback about these milestones (either positive or negative) would be useful for us in planning the 2.2.0 release. We don't currently have a definite timeline, but it's likely to happen in June.
๐ 2 bug fixes
- #3394 WriterTInstances: insufficient prioritization by @barambani
- #3380 First two missing instances by @travisbrown
7 API / feature enhancements
- #3423 Add toNev to NonEmptyList variants by @saraiva132
- #3421 Functor - fproductLeft by @pk044
- #3415 Add partialComparison syntax by @joroKr21
- โก๏ธ #3412 Update sbt-microsites to 1.2.1 by @scala-steward
- #3408 Tweak EitherT.pure and rightT to avoid a map call by @joroKr21
- #3403 Add Cont alias to ContT by @RaasAhsan
- #3335 Add foldF, cataF and emptyflatTap to OptionT by @ybasket
๐ 3 documentation improvements
- #3419 fix scalaz source url. s/As.scala/Liskov.scala/ by @xuwei-k
- ๐ #3393 Remove TODO from guidelines by @DieBauer
- ๐ #3383 Fix a link in the documentation for Traverse by @justinhj
โ 2 test improvements
- ๐ #3378 Remove cats.instances from tests by @travisbrown
- #3375 Add laws to check Short-Circuiting behaviour by @gagandeepkalra
๐ 11 build improvements
- #3430 Fix Simulacrum exclusion in POM by @travisbrown
- #3424 Use Simulacrum Scalafix by @travisbrown
- โก๏ธ #3417 Update sbt-scalafmt to 2.4.0 by @scala-steward
- โก๏ธ #3416 Update scalacheck-1-14 to 3.1.2.0 by @scala-steward
- โก๏ธ #3413 Update sbt-scalajs, scalajs-compiler to 0.6.33 by @scala-steward
- โก๏ธ #3399 Update sbt-microsites to 1.2.0 by @scala-steward
- โก๏ธ #3395 Update sbt to 1.3.10 by @scala-steward
- โก๏ธ #3389 Update sbt-scalafmt to 2.3.4 by @scala-steward
- โก๏ธ #3388 Update sbt-scalafmt to 2.3.3 by @scala-steward
- ๐ #3379 Merge 2.2.x after 2.2.0-M1 release by @travisbrown
- โก๏ธ #3376 Update sbt to 1.3.9 by @scala-steward
-
v2.2.0-M1 Changes
2020 March 31
3 source breaking changes
- ๐ #3043 Move standard library type class instances into implicit scope by @travisbrown
- #3241 Reimplemented MonadError[FreeT[...]] to be correct by @djspiewak
- #3361 Restrict attemptNarrow to subtypes of Throwable by @travisbrown
๐ 2 bug fixes
- #3306 Make cats.syntax.flatMap include untilDefinedM by @travisbrown
- #3305 Add cats.syntax.hash by @travisbrown
31 API/feature enhancements
- #3321 Reinstate @johnynek's intercalate optimization from #3279 by @travisbrown
- #3374 Add EitherT.liftAttemptK by @kubukoz
- #3168 Use
getOrElse
inNonEmptyList#last
by @PeterPerhac - #2689 Add
orElseRaise
syntax forApplicativeError
by @kubukoz - #3372 Add zipAll to Align typeclass by @dantb
- #3328 Fix short circuiting behaviour in
traverse
andtraverseFilter
by @gagandeepkalra - #3362 Prepend a Vector to a NonEmptyVector by @ssanj
- #3361 Restrict attemptNarrow to subtypes of Throwable by @travisbrown
- #3346 Add Either.unit, use in Applicative[Either[A, ?]] by @rossabaker
- #3323 Re-encode relationships to avoid implicit conversion functions by @travisbrown
- #3316 Add semiflatTap and leftSemiflatTap functions to EitherT by @matwojcik
- #3324 Use ArraySeq.untagged instead of ClassTag[Nothing] by @travisbrown
- #3235 Added flatMapK to FreeT by @djspiewak
- #3279 Add Semigroup and Monoid combinators reverse and intercalate by @johnynek
- #3303 Use unlimited MathContext for BigDecimal arithmetic by @travisbrown
- #3307 Clean up some NonEmpty stuff by @travisbrown
- โก๏ธ #3283 Optimize traverse by @travisbrown
- ๐ #3294 Add traverseEither by @LukaJCB
- #3302 ArraySeq instance follow-up by @travisbrown
- #3278 Issue 2304: Missing functions for RWST by @barambani
- #3273 Adding instances for ArraySeq by @BalmungSan
- #3274 Add ContT.liftF and ContT.liftK by @lavrov
- #3263 Avoid syntax methods in implementations in cats-core by @travisbrown
- โ #3261 Fix compiler warnings in tests by @travisbrown
- โ #3255 More Dotty compat stuff in tests by @travisbrown
- #3254 Use dotty-friendly kind-projector placeholder by @travisbrown
- โ #3253 Some Dotty compat for tests by @travisbrown
- #3239 add List#scanLeftNel and List#scanRightNel by @enzief
- #3237 Follow up to #3233 by @strong-zero
- #3233 Add when and unless to OptionT by @strong-zero
- #3230 Add two casts to satisfy Dotty by @travisbrown
- ๐ #3225 Publicize Free#foldStep by @djspiewak
๐ 11 documentation improvements
- ๐ฆ #3301 Cats package: add comprehensive scaladoc. by @diesalbla
- #3364 Fix typo by @MaT1g3R
- #3314 Fix doc examples for Ior.map by @ybasket
- โก๏ธ #3290 Update readme with latest cats-core version by @leusgalvan
- ๐ #3285 Remove machinist from colophon microsite page by @markusa380
- ๐ #3272 Fix typo on Chain docs by @LLCampos
- #3265 Copyright and license by @travisbrown
- ๐ #3229 fixes #3206 remove references to waffle.io by @ssikdar1
- โก๏ธ #3226 Update kind-projector and simulacrum url by @xuwei-k
- #3224 Add a Developer-Comment regarding an unused parameter. by @diesalbla
- โ๏ธ #3221 Fix typos by @bwignall
๐ 38 build improvements
- #3193 Expand kind-projector's syntax for polymorphic function values by @travisbrown
- โก๏ธ #3365 Update sbt-microsites to 1.1.5 by @scala-steward
- โก๏ธ #3371 Update sbt-sonatype to 3.9.2 by @scala-steward
- โ #3325 Specific commutativity and associativity tests for BigDecimal by @travisbrown
- โ
#3342 Fix
Foldable
doctest to useseparateFoldable
instead ofseparate
by @gagandeepkalra - โก๏ธ #3352 Update sbt-microsites to 1.1.3 by @scala-steward
- #3354 Change review policy for PRs that don't target master by @travisbrown
- โก๏ธ #3319 Update changelog by @travisbrown
- โก๏ธ #3337 Update Scalafmt to 2.4.2 by @travisbrown
- โก๏ธ #3331 Update sbt-mima-plugin to 0.7.0 by @scala-steward
- โก๏ธ #3326 Update snakeyaml to 1.26 by @scala-steward
- โก๏ธ #3344 Update sbt-scalafmt to 2.3.2 by @scala-steward
- โ #3350 Add Align lawful tests for Option instance by @gagandeepkalra
- โ #3304 Replace instance trait inheritance with imports in tests by @travisbrown
- #3322 Add parentheses for Dotty by @travisbrown
- โก๏ธ #3311 Update sbt-microsites to 1.1.2 by @scala-steward
- โก๏ธ #3310 Update discipline-scalatest by @travisbrown
- โก๏ธ #3308 Update scalacheck-1-14 to 3.1.1.0 by @scala-steward
- โก๏ธ #3291 Update sbt-scalajs-crossproject to 1.0.0 by @scala-steward
- โก๏ธ #3284 Update sbt to 1.3.8 by @scala-steward
- โก๏ธ #3288 Update sbt-mima-plugin to 0.6.4 by @scala-steward
- โก๏ธ #3282 Update sbt-mima-plugin to 0.6.3 by @scala-steward
- โก๏ธ #3276 Update sbt-unidoc to 0.4.3 by @scala-steward
- โก๏ธ #3267 Update sbt-scalajs to 0.6.32 by @scala-steward
- โก๏ธ #3268 Update sbt-doctest with ScalaTest 3.1.0 and Dotty fixes by @travisbrown
- โก๏ธ #3266 Update discipline-scalatest to 1.0.0 by @scala-steward
- โก๏ธ #3277 Update sbt-scalafmt to 2.3.1 by @scala-steward
- #3246 Minor changes for Scala.js 1.0 compatibility by @travisbrown
- โก๏ธ #3259 Update discipline-scalatest by @travisbrown
- ๐ #3258 Update sbt-release to 1.0.13 by @scala-steward
- โก๏ธ #3257 Update sbt to 1.3.7 by @scala-steward
- โก๏ธ #3251 Update sbt-microsites to 1.1.0 by @scala-steward
- โ #3250 Avoid ScalaTest 3.1.0 deprecations by @travisbrown
- โก๏ธ #3244 Update discipline-scalatest and scalatestplus dependency by @travisbrown
- ๐ #3243 Remove unused Scala Native sbt plugin by @travisbrown
- โก๏ธ #3232 Update Scalafmt to 2.3.2 by @travisbrown
- #3231 Drop cats-macros project by @travisbrown
- โก๏ธ #3227 Update sbt to 1.3.6 by @scala-steward
-
v2.1.1 Changes
2020 February 25
๐ This release introduces support for Scala.js 1.0.0. There are no changes since 2.1.0 for the ๐ Scala.js 0.6 or JVM artifacts. This is likely to be the last Cats release supporting Scala.js 0.6, โฌ๏ธ and we encourage Scala.js users to upgrade to 1.0.0 as soon as possible.
-
v2.1.0 Changes
2019 December 18
๐ This release currently only supports Scala 2.12 and 2.13. It provides the same binary compatibility guarantees as Cats 2.0 (note that it is not guaranteed to be binary-compatible with the 2.1.0 ๐ release candidates).
3 API / feature enhancements
- #3208 Add Defer.fix by @johnynek
- #3215 Replace kind-projector placeholders in infix types by @travisbrown
- #3207 Avoid kind-projector syntax with variance annotations by @travisbrown
๐ 1 documentation improvement
- โก๏ธ #3218 Update sbt-microsites by @travisbrown
๐ 4 build improvements
-
v2.1.0-RC3 Changes
2019 December 11
๐ This release candidate provides the same binary compatibility guarantees as Cats 2.0.
1 bug fix
- #3203 Fix more bincompat breakage by @travisbrown
14 API / feature enhancements
- #3199 Fix foldA, reduceA, and reduceMapA short-circuiting by @travisbrown
- #3198 Rename rangeE for clarity by @travisbrown
- #3150 Add foldA, reduceA, and reduceMapA by @Twizty
- โก๏ธ #3174 Optimize Iterable instances implementation. by @takayahilton
- #3186 Avoid unusual kind-projector syntax by @travisbrown
- #3187 Helping out Dotty's type inference by @travisbrown
- #3190 Mark match that is unchecked by Scala 2 as unchecked by @travisbrown
- #3191 Add type for implicit val by @travisbrown
- #3158 add
filterNot
to FunctorFilter by @gagandeepkalra - #3188 Add explicit type annotations for implicit Ordering vals by @travisbrown
- #3189 Replace do-while by @travisbrown
- โก๏ธ #3185 Update Function0 syntax by @travisbrown
- ๐ #3183 Remove redundant final modifiers on objects by @travisbrown
- #3182 Parenthesize lambda parameters with type annotations by @travisbrown
๐ 4 documentation improvements
- โ #3155 Enable and fix doctests on 2.13 by @travisbrown
- ๐ #3178 Add ApplicativeError for EitherT documentation by @tg44
- #3181 Fix typo by @msinton
- ๐ #3173 Fix typo in Alternative docs by @SimY4
๐ 1 build improvement
- โก๏ธ #3197 Update sbt-scalafmt to 2.3.0 by @scala-steward
-
v2.1.0-RC2 Changes
_2019 November 26
๐ This release candidate provides the same binary compatibility guarantees as Cats 2.0.
๐ 2 bug fixes
- #3163 Fix broken binary compatibility by @travisbrown
- #3162 Add adaptError override to MonadError by @travisbrown
3 API / feature enhancements
- #3165 Add catchOnly to ApplicativeError by @takayahilton
- #3159 Some minor optimizations by @travisbrown
- 0๏ธโฃ #3167 Make default reduceMapM lazy if reduceRightTo is lazy by @travisbrown
๐ 3 documentation improvements
- #3172 Fix typo by @bwignall
- #3153 Activating Open Collective by @monkeywithacupcake
- โก๏ธ #3160 update links to sustainability program by @kailuowang
๐ 4 build improvements