Description
As explained here and in the Cats 2019 roadmap, we dropped support for Scala 2.11 on the Cats master branch after the 2.0.0 release, and we're relying on Scala 2.11 users to backport features from master to the scala_2.11
branch for all future Cats releases.
We're planning to publish Cats 2.1.0-RC1 this Friday (15 November) and 2.1.0 by the end of this month. I've backported many of the build config changes and dependency updates to the 2.11 branch, but there are still many features that need to be backported in order for us to publish Cats 2.1.0 for Scala 2.11 (we're not necessarily aiming for 100% source compatibility between the 2.11 and 2.12 releases, but want to be close).
Note that many of the changes listed below are substantially more difficult to make on Scala 2.11 than on 2.12+ because adding methods to traits on 2.11 breaks binary compatibility (which is why we dropped decided to drop 2.11 support on master in the first place 😄). You can see an example of what's necessary in this pre-2.0 PR adding an ifA
method for Apply
.
Pull requests currently merged on master that still need to be backported:
- Add
unzip
toFunctor
: add unzip to Functor #3062 - Add
ifF
toFunctor
: AddifF
on Functor #3040 - Add
Align
: Add Align typeclass #3076 - Add
bifold
toBifoldable
: #2947 Added bifold to Bifoldable typeclass #3088 - Properly arrange
Parallel
instances: Issue 3059: Move Parallel instances into instance packages for the type constructors they characterize #3099 - Fix
Vector
instances: Issue 2891 - Ambiguous Vector instances #3100 - Add
attemptNarrow
toApplicativeErrorOps
: add attemptNarrow to ApplicativeErrorOps #2863 - Add
TraverseFilter
instance forQueue
: Add TraverseFilter instance for Queue. #3103 - Fix
Eq
instances for tuples: Issue 2701 - Ambiguous Eq instances for tuples #3105 - Add
minimumByOption
, etc.: Add minimumBy/maximumBy/Option to Foldable #3084, Fix constraints and names for new Foldable methods #3122 - Add
sum
forSemigroupK
: SemigroupK sum: F[A], F[B] => F[A Either B] #3124 - Add
foldMapA
: Minor clean up. Removed duplication. #3135 - Add instances for
TailCalls.TailRec
: Add scala.util.control.TailCalls.TailRec instances #3041 - Use
Foldable
'sfoldRight
forTraverse
, etc.: Use Foldable foldRight for Traverse and TraverseFilter. #3015 -
CommutativeMonoid
forOption
fromCommutativeSemigroup
: CommutativeMonoid[Option[A]] from CommutativeSemigroup #2834 - Add
foldRightDefer
toFoldable
: Add foldRightDefer to Foldable #2772 - Fix constraint for
Hash
instances forMap
: Remove Order constraint from Hash instance for Map #3126 - Add
combineAllOption
toFoldable
: Add combineAllOption to Foldable #2380 - Fix
NonEmptyChain.fromSeq
signature: Fix NonEmptyChain.fromSeq signature on 2.12 #3133 (in progress: Backports #3133 to scala_2.11 #3134) - Add
separateFoldable
: Added separateFoldable #2742 - Add
redeem
andredeemWith
: Add redeem and redeemWith #3146
Not yet merged but likely to be in 2.1.0-RC1:
- Move
adaptError
: Move adaptError #3148
I'll keep these checklists updated, and you can find a complete list of what will be included in 2.1.0-RC1 in the milestone.
If most of these PRs aren't backported by the end of the month, it's unlikely that we'll publish Cats 2.1.0 for Scala 2.11. (We will continue to publish 2.0.x bugfix releases for Scala 2.11, and 2.1.0 will be backwards binary-compatible with 2.0, so even if we do drop 2.11 support in 2.1.0, that generally shouldn't cause major problems for Cats users who are still on Scala 2.11.)
Please comment here to let us know if you're working on backporting any of these changes, and please feel free to request reviews or other feedback from me or other Cats maintainers for backport PRs.