diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 12affda8..c05e7de5 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -2,6 +2,10 @@ name: ci on: push: + branches: + - master + tags: + - '*' pull_request: branches: - master diff --git a/build.sc b/build.sc index 37878e5e..9f15c56b 100644 --- a/build.sc +++ b/build.sc @@ -1,23 +1,23 @@ import mill._, scalalib._, scalajslib._, scalanativelib._, publish._ -import $ivy.`de.tototec::de.tobiasroeser.mill.vcs.version_mill0.9:0.1.1` +import $ivy.`de.tototec::de.tobiasroeser.mill.vcs.version::0.1.4` import de.tobiasroeser.mill.vcs.version.VcsVersion -import $ivy.`com.github.lolgab::mill-mima_mill0.9:0.0.4` +import $ivy.`com.github.lolgab::mill-mima::0.0.9` import com.github.lolgab.mill.mima._ val dottyVersions = sys.props.get("dottyVersion").toList -val scalaVersions = "2.11.12" :: "2.12.13" :: "2.13.4" :: "3.0.0" :: dottyVersions -val scala2Versions = scalaVersions.filter(_.startsWith("2.")) +val scala2VersionsAndDotty = "2.11.12" :: "2.12.13" :: "2.13.4" :: dottyVersions +val scala30 = "3.0.0" val scalaJSVersions = for { - scalaV <- scalaVersions + scalaV <- scala30 :: scala2VersionsAndDotty scalaJSV <- Seq("0.6.33", "1.5.1") if scalaV.startsWith("2.") || scalaJSV.startsWith("1.") } yield (scalaV, scalaJSV) val scalaNativeVersions = for { - scalaV <- scala2Versions - scalaNativeV <- Seq("0.4.0") + scalaV <- "3.1.1" :: scala2VersionsAndDotty + scalaNativeV <- Seq("0.4.3") } yield (scalaV, scalaNativeV) trait UtestModule extends PublishModule with Mima { @@ -32,10 +32,7 @@ trait UtestModule extends PublishModule with Mima { organization = "com.lihaoyi", url = "https://github.com/lihaoyi/utest", licenses = Seq(License.MIT), - scm = SCM( - "git://github.com/lihaoyi/utest.git", - "scm:git://github.com/lihaoyi/utest.git" - ), + versionControl = VersionControl.github(owner = "com-lihaoyi", repo = "utest"), developers = Seq( Developer("lihaoyi", "Li Haoyi", "https://github.com/lihaoyi") ) @@ -67,7 +64,7 @@ abstract class UtestMainModule(crossScalaVersion: String) extends CrossScalaModu trait UtestTestModule extends ScalaModule with TestModule { def crossScalaVersion: String - def testFrameworks = Seq("test.utest.CustomFramework") + def testFramework = "test.utest.CustomFramework" def offset: os.RelPath = os.rel def millSourcePath = super.millSourcePath / os.up @@ -85,7 +82,7 @@ trait UtestTestModule extends ScalaModule with TestModule { } object utest extends Module { - object jvm extends Cross[JvmUtestModule](scalaVersions: _*) + object jvm extends Cross[JvmUtestModule](scala30 :: scala2VersionsAndDotty: _*) class JvmUtestModule(val crossScalaVersion: String) extends UtestMainModule(crossScalaVersion) with ScalaModule with UtestModule { def ivyDeps = Agg( diff --git a/mill b/mill index f896b716..dd6ce641 100755 --- a/mill +++ b/mill @@ -3,14 +3,14 @@ # This is a wrapper script, that automatically download mill from GitHub release pages # You can give the required mill version with MILL_VERSION env variable # If no version is given, it falls back to the value of DEFAULT_MILL_VERSION -DEFAULT_MILL_VERSION=0.9.8 +DEFAULT_MILL_VERSION=0.10.0 set -e if [ -z "$MILL_VERSION" ] ; then if [ -f ".mill-version" ] ; then MILL_VERSION="$(head -n 1 .mill-version 2> /dev/null)" - elif [ -f "mill" ] && [ "$BASH_SOURCE" != "mill" ] ; then + elif [ -f "mill" ] && [ "$0" != "mill" ] ; then MILL_VERSION=$(grep -F "DEFAULT_MILL_VERSION=" "mill" | head -n 1 | cut -d= -f2) else MILL_VERSION=$DEFAULT_MILL_VERSION @@ -28,13 +28,14 @@ version_remainder="$MILL_VERSION" MILL_MAJOR_VERSION="${version_remainder%%.*}"; version_remainder="${version_remainder#*.}" MILL_MINOR_VERSION="${version_remainder%%.*}"; version_remainder="${version_remainder#*.}" -if [ ! -x "$MILL_EXEC_PATH" ] ; then - mkdir -p $MILL_DOWNLOAD_PATH +if [ ! -s "$MILL_EXEC_PATH" ] ; then + mkdir -p "$MILL_DOWNLOAD_PATH" if [ "$MILL_MAJOR_VERSION" -gt 0 ] || [ "$MILL_MINOR_VERSION" -ge 5 ] ; then ASSEMBLY="-assembly" fi DOWNLOAD_FILE=$MILL_EXEC_PATH-tmp-download - MILL_DOWNLOAD_URL="https://github.com/lihaoyi/mill/releases/download/${MILL_VERSION%%-*}/$MILL_VERSION${ASSEMBLY}" + MILL_VERSION_TAG=$(echo $MILL_VERSION | sed 's/\([^-]+\)\(-M[0-9]+\)?\(-.*\)?/\1\2/') + MILL_DOWNLOAD_URL="https://github.com/lihaoyi/mill/releases/download/${MILL_VERSION_TAG}/$MILL_VERSION${ASSEMBLY}" curl --fail -L -o "$DOWNLOAD_FILE" "$MILL_DOWNLOAD_URL" chmod +x "$DOWNLOAD_FILE" mv "$DOWNLOAD_FILE" "$MILL_EXEC_PATH" diff --git a/utest/native/test/src/test/utest/TestUtil.scala b/utest/native/test/src-2/test/utest/TestUtil.scala similarity index 100% rename from utest/native/test/src/test/utest/TestUtil.scala rename to utest/native/test/src-2/test/utest/TestUtil.scala diff --git a/utest/native/test/src-3/test/utest/TestUtil.scala b/utest/native/test/src-3/test/utest/TestUtil.scala new file mode 100644 index 00000000..9cd57917 --- /dev/null +++ b/utest/native/test/src-3/test/utest/TestUtil.scala @@ -0,0 +1,7 @@ +package utest + +object TestUtil { + + lazy val isDotty = true + +} diff --git a/utest/src/utest/runner/BaseRunner.scala b/utest/src/utest/runner/BaseRunner.scala index 589c0f17..790397b5 100644 --- a/utest/src/utest/runner/BaseRunner.scala +++ b/utest/src/utest/runner/BaseRunner.scala @@ -34,7 +34,7 @@ object BaseRunner{ } abstract class BaseRunner(val args: Array[String], - val remoteArgs: Array[String], + _remoteArgs: Array[String], testClassLoader: ClassLoader, useSbtLoggers: Boolean, formatter: utest.framework.Formatter, @@ -48,6 +48,8 @@ abstract class BaseRunner(val args: Array[String], formatter: utest.framework.Formatter) = this(args, remoteArgs, testClassLoader, useSbtLoggers, formatter, None) + def remoteArgs(): Array[String] = _remoteArgs + lazy val path = args.headOption.filter(_(0) != '-') lazy val query = path .map(TestQueryParser(_)) @@ -186,6 +188,6 @@ abstract class BaseRunner(val args: Array[String], makeTask(deserializer(task)) def serializeTask(task: sbt.testing.Task, serializer: TaskDef => String): String = - serializer(task.taskDef) + serializer(task.taskDef()) } diff --git a/utest/src/utest/runner/Fingerprint.scala b/utest/src/utest/runner/Fingerprint.scala index 3d4ea1ac..ba1ec178 100644 --- a/utest/src/utest/runner/Fingerprint.scala +++ b/utest/src/utest/runner/Fingerprint.scala @@ -4,7 +4,7 @@ import sbt.testing.SubclassFingerprint object Fingerprint extends SubclassFingerprint { - def superclassName = "utest.TestSuite" - def isModule = true - def requireNoArgConstructor = true + def superclassName() = "utest.TestSuite" + def isModule() = true + def requireNoArgConstructor() = true } diff --git a/utest/src/utest/runner/Task.scala b/utest/src/utest/runner/Task.scala index 52f1159c..5df2137a 100644 --- a/utest/src/utest/runner/Task.scala +++ b/utest/src/utest/runner/Task.scala @@ -8,11 +8,11 @@ import scala.concurrent.{Await, Future} import concurrent.duration._ import utest.framework.{ExecutionContext, Tree} -class Task(val taskDef: TaskDef, +class Task(_taskDef: TaskDef, runUTestTask: (Seq[Logger], EventHandler) => Future[Unit]) extends sbt.testing.Task{ - + def taskDef(): TaskDef = _taskDef def tags(): Array[String] = Array()