Skip to content

Commit

Permalink
WIP unit3 to show code, not working
Browse files Browse the repository at this point in the history
This is the commit message scalacenter#2:

unit3 munit dep: exclude 2.13 and include munit_3 instead
  • Loading branch information
rvacaru committed Aug 25, 2022
1 parent 8495e77 commit a0acbe4
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 24 deletions.
42 changes: 29 additions & 13 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,9 @@ lazy val rules = projectMatrix
semanticdbScalacCore,
collectionCompat
)
else Nil
else List(
// ("org.scalameta" % "semanticdb-scalac-core" % scalametaV cross CrossVersion.for3Use2_13)
)
}
)
.defaultAxes(VirtualAxis.jvm)
Expand Down Expand Up @@ -211,10 +213,7 @@ lazy val testkit = projectMatrix
isFullCrossVersion,
libraryDependencies += googleDiff,
libraryDependencies ++= {
if (!isScala3.value)
Seq(scalatest)
else
Seq("org.scalatest" %% "scalatest" % scalatest3V)
scalatestDeps.value
}
)
.defaultAxes(VirtualAxis.jvm)
Expand All @@ -231,14 +230,26 @@ lazy val unit = projectMatrix
testFrameworks += new TestFramework("munit.Framework"),
buildInfoPackage := "scalafix.tests",
buildInfoObject := "BuildInfo",
libraryDependencies ++= List(
jgit,
coursier,
scalatest.withRevision(
"3.2.0"
), // make sure testkit clients can use recent 3.x versions
scalametaTeskit
),
libraryDependencies ++= {
if (!isScala3.value) {
List(
jgit,
coursier,
scalametaTeskit
) ++ scalatestDeps.value,
} else {
List(
jgit,
coursier
.exclude("org.scala-lang.modules", "scala-xml_2.13"),
scalametaTeskit
.exclude("com.lihaoyi", "sourcecode_2.13")
.exclude("org.scala-lang.modules", "scala-collection-compat_2.13")
.exclude("org.scalameta", "munit_2.13"),
("org.scalameta" %% "munit" % "0.7.29")
) ++ scalatestDeps.value,
}
},
Compile / compile / compileInputs := {
(Compile / compile / compileInputs)
.dependsOn(
Expand Down Expand Up @@ -329,6 +340,11 @@ lazy val unit = projectMatrix
}
)
.defaultAxes(VirtualAxis.jvm)
.jvmPlatform(
scalaVersions = Seq(scala3),
axisValues = Seq(TargetAxis(scala3)),
settings = Seq()
)
.jvmPlatform(
scalaVersions = Seq(scala212),
axisValues = Seq(TargetAxis(scala3)),
Expand Down
12 changes: 7 additions & 5 deletions project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,14 @@ object Dependencies {
val scalaXmlV = "2.1.0"
val scalaXml211V = "1.3.0" // scala-xml stops publishing for scala 2.11
val scalametaV = "4.5.13"
val scalatestV = "3.0.8" // don't bump, to avoid forcing breaking changes on clients via eviction
val scalatest3V = "3.2.13"
val scalatestMinV = "3.0.8" // don't bump, to avoid forcing breaking changes on clients via eviction
val scalatestLatestV = "3.2.13"

val bijectionCore = "com.twitter" %% "bijection-core" % bijectionCoreV
val collectionCompat = "org.scala-lang.modules" %% "scala-collection-compat" % collectionCompatV
val commonText = "org.apache.commons" % "commons-text" % commontTextV
val coursier = "io.get-coursier" %% "coursier" % coursierV
val coursier = ("io.get-coursier" %% "coursier" % coursierV)
.cross(CrossVersion.for3Use2_13)
val coursierInterfaces = "io.get-coursier" % "interface" % coursierInterfaceV
val googleDiff = "com.googlecode.java-diff-utils" % "diffutils" % googleDiffV
val java8Compat = "org.scala-lang.modules" %% "scala-java8-compat" % java8CompatV
Expand All @@ -57,8 +58,9 @@ object Dependencies {
// https://github.com/scalameta/scalameta/issues/2485
val scalameta = ("org.scalameta" %% "scalameta" % scalametaV)
.cross(CrossVersion.for3Use2_13)
val scalametaTeskit = "org.scalameta" %% "testkit" % scalametaV
val scalatest = "org.scalatest" %% "scalatest" % scalatestV
val scalametaTeskit = ("org.scalameta" %% "testkit" % scalametaV)
.cross(CrossVersion.for3Use2_13)
val scalatest = "org.scalatest" %% "scalatest" % scalatestMinV
val semanticdbScalacCore = "org.scalameta" % "semanticdb-scalac-core" % scalametaV cross CrossVersion.full

private def previousVersions(scalaVersion: String): List[String] = {
Expand Down
8 changes: 7 additions & 1 deletion project/ScalafixBuild.scala
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,11 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
lazy val buildInfoSettingsForRules: Seq[Def.Setting[_]] = Seq(
buildInfoObject := "RulesBuildInfo"
)

lazy val scalatestDeps = Def.setting {
if (isScala3.value) Seq(scalatest.withRevision(scalatestLatestV))
else Seq(scalatest)
}
}

import autoImport._
Expand All @@ -147,7 +152,8 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
"rules3/compile" ::
"reflect3/compile" ::
"cli3/compile" ::
"testkit3/compile" :: // TODO replace core rules and reflect with unit3 in the end
"testkit3/compile" ::
"unit3Target3/compile" :: // TODO replace core rules and reflect with unit3 in the end
s
},
commands += Command.command("ci-213") { s =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class ExplicitSynthetic() extends SemanticRule("ExplicitSynthetic") {
Patch.addRight(t, ".apply")
}
}
patches.flatten.asPatch + Patch.replaceTree(q"a", "b")
patches.flatten.asPatch + Patch.replaceTree(Term.Name("a"), "b")
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package banana.rule
import scala.meta._
import scala.meta.contrib._

import scalafix.XtensionOptionPatch
import scalafix.XtensionSeqPatch
import scalafix.patch.Patch
import scalafix.util.SymbolMatcher
import scalafix.v0
Expand All @@ -11,7 +13,12 @@ import scalafix.v1
case class FqnRule(index: v0.SemanticdbIndex)
extends v0.SemanticRule(index, "FqnRule") {
override def fix(ctx: v0.RuleCtx): Patch =
ctx.addGlobalImport(importer"scala.collection.immutable") + {
ctx.addGlobalImport(
Importer(
Term.Select(Term.Name("scala"), Term.Name("collection")),
List(Importee.Name(Name("immutable")))
)
) + {
val fqnRule = SymbolMatcher.exact(v0.Symbol("test/FqnRule."))
ctx.tree.collect { case fqnRule(t: Term.Name) =>
ctx.addLeft(t, "/* matched */ ")
Expand Down
10 changes: 7 additions & 3 deletions scalafix-tests/unit/src/main/scala/scalafix/test/NoNull.scala
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package scalafix.test

import scala.meta._
import scala.meta.Lit
import scala.meta.XtensionCollectionLikeUI

import scalafix.v0._
import scalafix.lint.Diagnostic
import scalafix.v0.LintCategory
import scalafix.v0.Rule
import scalafix.v0.RuleCtx

object NoNull extends Rule("NoNull") {
val error: LintCategory = LintCategory.error("Nulls are not allowed.")

override def check(ctx: RuleCtx): List[Diagnostic] = ctx.tree.collect {
case nil @ q"null" => error.at(nil.pos)
case nil @ Lit.Null() => error.at(nil.pos)
}
}

0 comments on commit a0acbe4

Please sign in to comment.