Skip to content

Releases: typelevel/cats

Cats 2.2.0-RC1

06 Jul 14:56
v2.2.0-RC1
a7becf7
Compare
Choose a tag to compare
Cats 2.2.0-RC1 Pre-release
Pre-release

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

7 documentation improvements

14 build improvements

Cats 2.2.0-M3

17 Jun 12:32
v2.2.0-M3
de9f7a6
Compare
Choose a tag to compare
Cats 2.2.0-M3 Pre-release
Pre-release

Please 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 the ap method on Kleisli (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

3 documentation improvements

14 build improvements

Cats 2.2.0-M2

25 May 10:45
v2.2.0-M2
5835ef6
Compare
Choose a tag to compare
Cats 2.2.0-M2 Pre-release
Pre-release

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

7 API / feature enhancements

3 documentation improvements

2 test improvements

11 build improvements

Cats 2.2.0-M1

31 Mar 16:38
v2.2.0-M1
72637ce
Compare
Choose a tag to compare
Cats 2.2.0-M1 Pre-release
Pre-release

Please note that this is a milestone release and should be considered experimental. It includes significant changes that may break source compatibility in some situations we haven't foreseen, and it's likely to be followed by subsequent milestone releases in the 2.2.x series that are not guaranteed to be binary-compatible with their milestone predecessors. We're excited about this release and want people to try it out, but please do so carefully (and let us know if you run into issues).

The biggest change in this release is that Cats's type class instances for standard library types are now available in implicit scope, and no longer have to be imported. This has a number of benefits, including faster compile times and fewer things to think about. Please see this pull request, this blog post, or the migration guide below for more information about this change.

While this release is guaranteed by MiMa to be binary compatible with all 2.x releases (and with 1.x for most modules), and while we believe the implicit scope change should be fully source compatible, there are many other changes that may cause your code not to compile, or to behave differently. In particular Cats's BigDecimal arithmetic now works slightly differently on Scala 2.13 than it did in previous releases, the short-circuiting behavior of traverse and traverseFilter has been changed for some instances, and attemptNarrow will no longer compile if its type parameter isn't a subtype of Throwable. If you run into compilation errors or changes you don't understand, please let us know, either by asking a question in the Cats Gitter channel or opening an issue here.

We're also no longer publishing cats-macros artifacts. This module has been empty since Cats 1.x, but if you explicitly depend on it for some reason, you'll have to remove it from your build.

This release is published for Scala 2.12 and 2.13, and for Scala.js 0.6 and 1.x.

We don't currently have a definite timeline for Cats 2.2.0, but it's likely to be out by the end of April (2020).

3 source breaking changes

2 bug fixes

31 API/feature enhancements

11 documentation improvements

38 build improvements

Read more

Cats 2.1.1

25 Feb 10:46
v2.1.1
caef3bd
Compare
Choose a tag to compare

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.

Cats 2.1.0

18 Dec 18:39
v2.1.0
bf04ab3
Compare
Choose a tag to compare

Please see the release notes for the three 2.1.0 release candidates for a complete list of changes since 2.0.0:

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).

This release introduces support for Scala.js 1.0.0-RC2.

3 API / feature enhancements

1 documentation improvement

4 build improvements

Cats 2.1.0-RC3

11 Dec 15:25
v2.1.0-RC3
Compare
Choose a tag to compare
Cats 2.1.0-RC3 Pre-release
Pre-release

This release fixes a few more instances of broken binary compatibility that were accidentally introduced in 2.1.0-RC1 (see the RC2 release notes for more detail). It provides the same binary compatibility guarantees as Cats 2.0.

We'll publish Cats 2.1.0 in one week, on 18 December, unless any major issues come up before then.

1 bug fix

14 API / feature enhancements

4 documentation improvements

1 build improvement

Cats 2.1.0-RC2

26 Nov 09:07
v2.1.0-RC2
8644fdb
Compare
Choose a tag to compare
Cats 2.1.0-RC2 Pre-release
Pre-release

2019 November 26

This release fixes a few instances of broken binary compatibility that were accidentally introduced in 2.1.0-RC1 and reported by Ben Stewart. Unfortunately MiMa didn't catch this breakage because of a bug, but we've confirmed that this release fixes all instances of this particular kind of breakage (see #3162 for details).

The issue in the previous release candidate should only affect users who are calling the adaptError syntax method when the MonadError instance is defined in a library that depends on a previous version of Cats, but we encourage everyone to upgrade as soon as possible.

This release candidate provides the same binary compatibility guarantees as Cats 2.0.

2 bug fixes

3 API / feature enhancements

3 documentation improvements

4 build improvements

Cats 2.1.0-RC1

15 Nov 18:22
v2.1.0-RC1
2b698e5
Compare
Choose a tag to compare
Cats 2.1.0-RC1 Pre-release
Pre-release

2019 November 15

This is the first release candidate for Cats 2.1.0. The most significant change since 2.0.0 is that Scala 2.11 is no longer supported on the master branch, which has freed us up to make more significant improvements without breaking binary compatibility. This 2.1.0-RC1 release is currently only published for Scala 2.12 and 2.13, not for 2.11, although that may change.

The release provides the same binary compatibility guarantees as Cats 2.0 (and is verified by MiMa to be fully binary-compatible with 2.0 itself).

There are changes in this release that break source compatibility with 2.0. Most methods that were deprecated in Cats 1.x have been made package-private (which maintains binary compatibility but cleans up the documentation), and cats.instances.parallel imports will need to be rewritten (see #3059 for details).

We don't currently have additional changes planned for 2.1.0, although that may change. If no major issues come up we'll publish 2.1.0 by the end of this month.

Note that this is pre-release software! Please use with care, and let us know if you run into problems.

2 source breaking changes

  • #3154 Make 1.x deprecation targets package-private by @travisbrown
  • #3099 Issue 3059: Move Parallel instances into instance packages for the type constructors they characterize by @barambani

3 bug fixes

25 API / feature enhancements

12 documentation improvements

29 build improvements

Cats 2.0.0

10 Sep 02:14
v2.0.0
beb3358
Compare
Choose a tag to compare

Version 2.0.0

2019 September 9

Cats 2.0.0 is available for Scala 2.11, 2.12, 2.13, and Scala.js 0.6. This release maintains binary compatibility with Cats 1.x.x in the cats-kernel, cats-core and cats-free modules, but not cats-laws, cats-kernel-laws, cats-testkit, or alleycats.

2 source breaking changes

  • #3046 Infer dependent parameter in NonEmpty/ParallelTests/Laws by @djspiewak
  • #3042 Remove unused type parameter for Parallel instances by @Billzabob

1 bug fix

1 documentation improvement