diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a5156b3..80d98db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,4 +14,4 @@ jobs: with: java-version: 8 distribution: temurin - - run: sbt -v scalafmtSbtCheck scalafmtCheckAll "+ scalapropsMagnoliaJVM/test" "+ scalapropsMagnoliaJS/test" + - run: sbt -v scalafmtSbtCheck scalafmtCheckAll "+ test" diff --git a/build.sbt b/build.sbt index 5a78a0d..56dc1a2 100644 --- a/build.sbt +++ b/build.sbt @@ -1,6 +1,5 @@ import sbtrelease._ import ReleaseStateTransformations._ -import sbtcrossproject.CrossPlugin.autoImport.{crossProject, CrossType} ThisBuild / onChangedBuildSource := ReloadOnSourceChanges @@ -63,8 +62,7 @@ lazy val commonSettings = nocomma { ) } -lazy val scalapropsMagnolia = crossProject(JVMPlatform, JSPlatform) - .crossType(CrossType.Pure) +lazy val scalapropsMagnolia = project .in(file(".")) .settings( scalapropsCoreSettings, @@ -109,9 +107,10 @@ lazy val scalapropsMagnolia = crossProject(JVMPlatform, JSPlatform) } scalapropsVersion := "0.9.1" libraryDependencies ++= Seq( - "com.propensive" %%% "magnolia" % "0.14.5", - "com.github.scalaprops" %%% "scalaprops-gen" % scalapropsVersion.value, - "com.github.scalaprops" %%% "scalaprops" % scalapropsVersion.value % "test" + "org.scala-lang" % "scala-reflect" % scalaVersion.value % Provided, + "com.softwaremill.magnolia1_2" %% "magnolia" % "1.1.9", + "com.github.scalaprops" %% "scalaprops-gen" % scalapropsVersion.value, + "com.github.scalaprops" %% "scalaprops" % scalapropsVersion.value % "test" ) (Compile / doc / scalacOptions) ++= { val tag = tagOrHash.value @@ -123,24 +122,3 @@ lazy val scalapropsMagnolia = crossProject(JVMPlatform, JSPlatform) ) } }) - .jsSettings( - scalacOptions += { - val a = (LocalRootProject / baseDirectory).value.toURI.toString - val g = "https://raw.githubusercontent.com/scalaprops/scalaprops-magnolia/" + tagOrHash.value - s"-P:scalajs:mapSourceURI:$a->$g/" - } - ) - -lazy val notPublish = nocomma { - publishArtifact := false - publish := {} - publishLocal := {} - PgpKeys.publishSigned := {} - PgpKeys.publishLocalSigned := {} -} - -commonSettings -notPublish -name := "root" -Compile / sources := Nil -Test / sources := Nil diff --git a/project/plugin.sbt b/project/plugin.sbt index 7a2fa39..ccfa1c6 100644 --- a/project/plugin.sbt +++ b/project/plugin.sbt @@ -3,8 +3,6 @@ addSbtPlugin("com.github.scalaprops" % "sbt-scalaprops" % "0.5.0") addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.9.21") addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0") addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.2.1") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") -addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") addSbtPlugin("com.eed3si9n" % "sbt-nocomma" % "0.1.1") scalacOptions ++= Seq( diff --git a/src/main/scala/scalaprops/ScalapropsMagnoliaCogen.scala b/src/main/scala/scalaprops/ScalapropsMagnoliaCogen.scala index d599240..5da5e3c 100644 --- a/src/main/scala/scalaprops/ScalapropsMagnoliaCogen.scala +++ b/src/main/scala/scalaprops/ScalapropsMagnoliaCogen.scala @@ -1,11 +1,11 @@ package scalaprops -import magnolia.{CaseClass, Magnolia, SealedTrait} +import magnolia1.{CaseClass, Magnolia, SealedTrait} object ScalapropsMagnoliaCogen { type Typeclass[T] = scalaprops.Cogen[T] - def combine[T](ctx: CaseClass[Typeclass, T]): Typeclass[T] = + def join[T](ctx: CaseClass[Typeclass, T]): Typeclass[T] = new Cogen[T] { def cogen[B](t: T, g: CogenState[B]) = { ctx.parameters.zipWithIndex.foldLeft(g) { case (state, (p, i)) => @@ -14,7 +14,7 @@ object ScalapropsMagnoliaCogen { } } - def dispatch[T](ctx: SealedTrait[Typeclass, T]): Typeclass[T] = + def split[T](ctx: SealedTrait[Typeclass, T]): Typeclass[T] = new Cogen[T] { def cogen[B](t: T, g: CogenState[B]) = { val index = ctx.subtypes.indexWhere(_.cast.isDefinedAt(t)) diff --git a/src/main/scala/scalaprops/ScalapropsMagnoliaGen.scala b/src/main/scala/scalaprops/ScalapropsMagnoliaGen.scala index e0e40d2..d3fd90c 100644 --- a/src/main/scala/scalaprops/ScalapropsMagnoliaGen.scala +++ b/src/main/scala/scalaprops/ScalapropsMagnoliaGen.scala @@ -1,11 +1,11 @@ package scalaprops -import magnolia.{CaseClass, Magnolia, SealedTrait} +import magnolia1.{CaseClass, Magnolia, SealedTrait} object ScalapropsMagnoliaGen { type Typeclass[T] = scalaprops.Gen[T] - def combine[T](ctx: CaseClass[Gen, T]): Gen[T] = + def join[T](ctx: CaseClass[Gen, T]): Gen[T] = Gen.gen[T] { (size, rand) => var r = rand val result = ctx.construct { p => @@ -17,7 +17,7 @@ object ScalapropsMagnoliaGen { r -> result } - def dispatch[T](ctx: SealedTrait[Gen, T]): Gen[T] = { + def split[T](ctx: SealedTrait[Gen, T]): Gen[T] = { val gs: Seq[Gen[T]] = ctx.subtypes.map { x => x.typeclass.asInstanceOf[Gen[T]] } Gen.choose(0, gs.size - 1).flatMap(gs) }