diff --git a/build.sbt b/build.sbt index 149b03398e..cc4e2d361b 100644 --- a/build.sbt +++ b/build.sbt @@ -31,6 +31,8 @@ val kindProjectorVersion = "0.10.3" lazy val commonScalaVersionSettings = Seq(scalaVersion := "2.11.12") +ThisBuild / mimaFailOnNoPrevious := false + lazy val commonSettings = commonScalaVersionSettings ++ Seq( scalacOptions ++= commonScalacOptions(scalaVersion.value), resolvers ++= Seq(Resolver.sonatypeRepo("releases"), Resolver.sonatypeRepo("snapshots")), @@ -347,7 +349,18 @@ def mimaSettings(moduleName: String) = exclude[IncompatibleMethTypeProblem]("cats.arrow.FunctionKMacros.lift"), exclude[MissingTypesProblem]("cats.arrow.FunctionKMacros$"), exclude[IncompatibleMethTypeProblem]("cats.arrow.FunctionKMacros#Lifter.this"), - exclude[IncompatibleResultTypeProblem]("cats.arrow.FunctionKMacros#Lifter.c") + exclude[IncompatibleResultTypeProblem]("cats.arrow.FunctionKMacros#Lifter.c"), + exclude[DirectMissingMethodProblem]("cats.arrow.FunctionKMacros.compatNewTypeName") + ) ++ //package private classes no longer needed + Seq( + exclude[MissingClassProblem]("cats.kernel.compat.scalaVersionMoreSpecific$"), + exclude[MissingClassProblem]("cats.kernel.compat.scalaVersionMoreSpecific"), + exclude[MissingClassProblem]( + "cats.kernel.compat.scalaVersionMoreSpecific$suppressUnusedImportWarningForScalaVersionMoreSpecific" + ) + ) ++ // Only narrowing of types allowed here + Seq( + exclude[IncompatibleSignatureProblem]("*") ) } ) @@ -603,9 +616,12 @@ lazy val bench = project .enablePlugins(JmhPlugin) lazy val binCompatTest = project - .disablePlugins(CoursierPlugin) .settings(noPublishSettings) .settings( + // workaround because coursier doesn't understand dependsOn(core.jvm % Test) + // see https://github.com/typelevel/cats/pull/3079#discussion_r327181584 + // see https://github.com/typelevel/cats/pull/3026#discussion_r321984342 + useCoursier := false, commonScalaVersionSettings, addCompilerPlugin("org.typelevel" %% "kind-projector" % kindProjectorVersion), libraryDependencies ++= List( diff --git a/core/src/main/scala/cats/data/Op.scala b/core/src/main/scala/cats/data/Op.scala index a582dc3e6c..1ad065656c 100644 --- a/core/src/main/scala/cats/data/Op.scala +++ b/core/src/main/scala/cats/data/Op.scala @@ -24,7 +24,7 @@ sealed abstract private[data] class OpInstances extends OpInstances0 { new OpEq[Arr, A, B] { def Arr: Eq[Arr[B, A]] = ArrEq } @deprecated("Use catsDataEqForOp", "2.0.0-RC2") - private[data] def catsKernelEqForOp[Arr[_, _], A, B](implicit ArrEq: Eq[Arr[B, A]]): Eq[Op[Arr, A, B]] = + def catsKernelEqForOp[Arr[_, _], A, B](implicit ArrEq: Eq[Arr[B, A]]): Eq[Op[Arr, A, B]] = catsDataEqForOp[Arr, A, B] } diff --git a/core/src/main/scala/cats/instances/ScalaVersionSpecificParallelInstances.scala b/core/src/main/scala/cats/instances/ScalaVersionSpecificParallelInstances.scala index 5e687e047a..55ab7e7de3 100644 --- a/core/src/main/scala/cats/instances/ScalaVersionSpecificParallelInstances.scala +++ b/core/src/main/scala/cats/instances/ScalaVersionSpecificParallelInstances.scala @@ -22,7 +22,7 @@ trait ParallelInstances extends ParallelInstances1 { } @deprecated("Use OptionT.catsDataParallelForOptionT", "2.0.0") - private[instances] def catsParallelForOptionTNestedOption[M[_]]( + def catsParallelForOptionTNestedOption[M[_]]( implicit P: Parallel[M] ): Parallel.Aux[OptionT[M, *], Nested[P.F, Option, *]] = OptionT.catsDataParallelForOptionT[M] @@ -69,7 +69,7 @@ trait ParallelInstances extends ParallelInstances1 { } @deprecated("Use EitherT.catsDataParallelForEitherTWithParallelEffect", "2.0.0") - private[instances] def catsParallelForEitherTNestedParallelValidated[M[_], E: Semigroup]( + def catsParallelForEitherTNestedParallelValidated[M[_], E: Semigroup]( implicit P: Parallel[M] ): Parallel.Aux[EitherT[M, E, *], Nested[P.F, Validated[E, *], *]] = EitherT.catsDataParallelForEitherTWithParallelEffect[M, E] diff --git a/core/src/main/scala/cats/instances/parallel.scala b/core/src/main/scala/cats/instances/parallel.scala index c1f5fbf929..1e8860fafa 100644 --- a/core/src/main/scala/cats/instances/parallel.scala +++ b/core/src/main/scala/cats/instances/parallel.scala @@ -8,7 +8,7 @@ import cats.{~>, Applicative, Monad, Parallel} private[instances] trait ParallelInstances1 { @deprecated("Use EitherT.catsDataParallelForEitherTWithSequentialEffect", "2.0.0") - private[instances] def catsParallelForEitherTNestedValidated[M[_]: Monad, E: Semigroup] + def catsParallelForEitherTNestedValidated[M[_]: Monad, E: Semigroup] : Parallel.Aux[EitherT[M, E, *], Nested[M, Validated[E, *], *]] = new Parallel[EitherT[M, E, *]] { type F[x] = Nested[M, Validated[E, *], x] diff --git a/core/src/main/scala/cats/instances/sortedMap.scala b/core/src/main/scala/cats/instances/sortedMap.scala index 8ed33c47d7..4ac4721cfb 100644 --- a/core/src/main/scala/cats/instances/sortedMap.scala +++ b/core/src/main/scala/cats/instances/sortedMap.scala @@ -9,11 +9,11 @@ import scala.collection.immutable.SortedMap trait SortedMapInstances extends SortedMapInstances2 { @deprecated("2.0.0-RC2", "Use cats.kernel.instances.sortedMap.catsKernelStdHashForSortedMap") - private[instances] def catsStdHashForSortedMap[K: Hash: Order, V: Hash]: Hash[SortedMap[K, V]] = + def catsStdHashForSortedMap[K: Hash: Order, V: Hash]: Hash[SortedMap[K, V]] = cats.kernel.instances.sortedMap.catsKernelStdHashForSortedMap[K, V] @deprecated("2.0.0-RC2", "Use cats.kernel.instances.sortedMap.catsKernelStdCommutativeMonoidForSortedMap") - private[instances] def catsStdCommutativeMonoidForSortedMap[K: Order, V: CommutativeSemigroup] = + def catsStdCommutativeMonoidForSortedMap[K: Order, V: CommutativeSemigroup] = cats.kernel.instances.sortedMap.catsKernelStdCommutativeMonoidForSortedMap[K, V] implicit def catsStdShowForSortedMap[A: Order, B](implicit showA: Show[A], showB: Show[B]): Show[SortedMap[A, B]] = @@ -115,13 +115,13 @@ trait SortedMapInstances extends SortedMapInstances2 { private[instances] trait SortedMapInstances1 { @deprecated("2.0.0-RC2", "Use cats.kernel.instances.sortedMap.catsKernelStdEqForSortedMap") - private[instances] def catsStdEqForSortedMap[K: Order, V: Eq]: Eq[SortedMap[K, V]] = + def catsStdEqForSortedMap[K: Order, V: Eq]: Eq[SortedMap[K, V]] = new SortedMapEq[K, V] } private[instances] trait SortedMapInstances2 extends SortedMapInstances1 { @deprecated("2.0.0-RC2", "Use cats.kernel.instances.sortedMap.catsKernelStdMonoidForSortedMap") - private[instances] def catsStdMonoidForSortedMap[K: Order, V: Semigroup]: Monoid[SortedMap[K, V]] = + def catsStdMonoidForSortedMap[K: Order, V: Semigroup]: Monoid[SortedMap[K, V]] = new SortedMapMonoid[K, V] } diff --git a/core/src/main/scala/cats/instances/sortedSet.scala b/core/src/main/scala/cats/instances/sortedSet.scala index 7f55f58fe3..8b6e84936d 100644 --- a/core/src/main/scala/cats/instances/sortedSet.scala +++ b/core/src/main/scala/cats/instances/sortedSet.scala @@ -76,7 +76,7 @@ private[instances] trait SortedSetInstances1 { cats.kernel.instances.sortedSet.catsKernelStdHashForSortedSet[A] @deprecated("2.0.0-RC2", "Use cats.kernel.instances.sortedSet.catsKernelStdSemilatticeForSortedSet") - private[instances] def catsKernelStdSemilatticeForSortedSet[A: Order]: BoundedSemilattice[SortedSet[A]] = + def catsKernelStdSemilatticeForSortedSet[A: Order]: BoundedSemilattice[SortedSet[A]] = cats.kernel.instances.sortedSet.catsKernelStdBoundedSemilatticeForSortedSet[A] } diff --git a/project/build.properties b/project/build.properties index c0bab04941..6adcdc753f 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.2.8 +sbt.version=1.3.3 diff --git a/project/plugins.sbt b/project/plugins.sbt index a43c3602e2..1454d23a71 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,8 +1,7 @@ -addSbtCoursier addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.2") addSbtPlugin("com.github.gseitz" %% "sbt-release" % "1.0.11") addSbtPlugin("com.jsuereth" % "sbt-pgp" % "2.0.0-M2") -addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.3.0") +addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.6.1") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.3.7") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.6.0") addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "1.0.0") diff --git a/project/project/plugins.sbt b/project/project/plugins.sbt deleted file mode 100644 index 7e59b447e1..0000000000 --- a/project/project/plugins.sbt +++ /dev/null @@ -1 +0,0 @@ -addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.3")