From d4f475526c3b21f1afae93fd65deb38eb0f4d627 Mon Sep 17 00:00:00 2001 From: Lars Hupel Date: Mon, 23 Sep 2019 20:11:40 +0200 Subject: [PATCH 1/3] un-private deprecated implicits --- .../instances/ScalaVersionSpecificParallelInstances.scala | 4 ++-- .../instances/ScalaVersionSpecificParallelInstances.scala | 4 ++-- core/src/main/scala/cats/data/Op.scala | 2 +- core/src/main/scala/cats/instances/parallel.scala | 2 +- core/src/main/scala/cats/instances/sortedMap.scala | 8 ++++---- core/src/main/scala/cats/instances/sortedSet.scala | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/src/main/scala-2.12/cats/instances/ScalaVersionSpecificParallelInstances.scala b/core/src/main/scala-2.12/cats/instances/ScalaVersionSpecificParallelInstances.scala index 5e687e047a..55ab7e7de3 100644 --- a/core/src/main/scala-2.12/cats/instances/ScalaVersionSpecificParallelInstances.scala +++ b/core/src/main/scala-2.12/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-2.13+/cats/instances/ScalaVersionSpecificParallelInstances.scala b/core/src/main/scala-2.13+/cats/instances/ScalaVersionSpecificParallelInstances.scala index e85ffaa8d7..ae37f968fe 100644 --- a/core/src/main/scala-2.13+/cats/instances/ScalaVersionSpecificParallelInstances.scala +++ b/core/src/main/scala-2.13+/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] @@ -84,7 +84,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/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/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] } From f82f3abe54c6ac4db6424a196f07f2774fe9abcc Mon Sep 17 00:00:00 2001 From: Lars Hupel Date: Sun, 22 Sep 2019 11:28:34 +0200 Subject: [PATCH 2/3] update to sbt 1.3.x, uses coursier by default --- build.sbt | 14 +++++++++++--- project/build.properties | 2 +- project/plugins.sbt | 3 +-- project/project/plugins.sbt | 1 - 4 files changed, 13 insertions(+), 7 deletions(-) delete mode 100644 project/project/plugins.sbt diff --git a/build.sbt b/build.sbt index 6f734aca3a..6729f36edb 100644 --- a/build.sbt +++ b/build.sbt @@ -63,6 +63,8 @@ lazy val commonScalaVersionSettings = Seq( commonScalaVersionSettings +ThisBuild / mimaFailOnNoPrevious := false + lazy val commonSettings = commonScalaVersionSettings ++ Seq( scalacOptions ++= commonScalacOptions(scalaVersion.value), Compile / unmanagedSourceDirectories ++= scalaVersionSpecificFolders("main", baseDirectory.value, scalaVersion.value), @@ -390,7 +392,8 @@ 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$"), @@ -398,8 +401,10 @@ def mimaSettings(moduleName: String) = exclude[MissingClassProblem]( "cats.kernel.compat.scalaVersionMoreSpecific$suppressUnusedImportWarningForScalaVersionMoreSpecific" ) + ) ++ // Only narrowing of types allowed here + Seq( + exclude[IncompatibleSignatureProblem]("*") ) - } ) @@ -652,9 +657,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/project/build.properties b/project/build.properties index c0bab04941..8522443ded 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.2.8 +sbt.version=1.3.2 diff --git a/project/plugins.sbt b/project/plugins.sbt index 90a6d28cbb..320b04e16d 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") From c3484a5afcec760efa99304f1bed08c9041e33e2 Mon Sep 17 00:00:00 2001 From: Lars Hupel Date: Mon, 23 Sep 2019 21:42:49 +0200 Subject: [PATCH 3/3] bump sbt in scalafix --- scalafix/project/build.properties | 2 +- scalafix/project/plugins.sbt | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/scalafix/project/build.properties b/scalafix/project/build.properties index c0bab04941..8522443ded 100644 --- a/scalafix/project/build.properties +++ b/scalafix/project/build.properties @@ -1 +1 @@ -sbt.version=1.2.8 +sbt.version=1.3.2 diff --git a/scalafix/project/plugins.sbt b/scalafix/project/plugins.sbt index acbf579ed2..a0452d5128 100644 --- a/scalafix/project/plugins.sbt +++ b/scalafix/project/plugins.sbt @@ -1,3 +1,2 @@ addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.5") -addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.2") addSbtPlugin("org.lyranthe.sbt" % "partial-unification" % "1.1.2")