Skip to content

community-build: update many projects #10503

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Dec 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion community-build/community-projects/munit
Submodule munit updated 162 files
2 changes: 1 addition & 1 deletion community-build/community-projects/scalatest
Submodule scalatest updated 1600 files
2 changes: 1 addition & 1 deletion community-build/community-projects/scodec
Submodule scodec updated 125 files
2 changes: 1 addition & 1 deletion community-build/community-projects/scodec-bits
Submodule scodec-bits updated 58 files
+0 −26 .github/workflows/build.yml
+161 −0 .github/workflows/ci.yml
+59 −0 .github/workflows/clean.yml
+1 −1 .gitignore
+1 −1 .scalafmt.conf
+5 −5 .travis.yml
+48 −43 benchmark/src/main/scala/NumericConversionBenchmarks.scala
+32 −3 benchmark/src/main/scala/ScodecBitsBenchmark.scala
+103 −163 build.sbt
+43 −13 core/jvm/src/test/scala/scodec/bits/BitVectorJvmTest.scala
+76 −16 core/jvm/src/test/scala/scodec/bits/ByteVectorJvmTest.scala
+34 −3 core/jvm/src/test/scala/scodec/bits/CrcJvmTest.scala
+39 −0 core/shared/src/main/scala-2.11/scodec/bits/ScalaVersionSpecific.scala
+0 −3 core/shared/src/main/scala-2.12/scodec/bits/BitVectorPlatform.scala
+0 −3 core/shared/src/main/scala-2.12/scodec/bits/ByteVectorPlatform.scala
+0 −55 core/shared/src/main/scala-2.12/scodec/bits/LiteralSyntaxMacros.scala
+40 −0 core/shared/src/main/scala-2.12/scodec/bits/ScalaVersionSpecific.scala
+0 −45 core/shared/src/main/scala-2.12/scodec/bits/package.scala
+0 −3 core/shared/src/main/scala-2.13/scodec/bits/BitVectorPlatform.scala
+0 −3 core/shared/src/main/scala-2.13/scodec/bits/ByteVectorPlatform.scala
+0 −55 core/shared/src/main/scala-2.13/scodec/bits/LiteralSyntaxMacros.scala
+33 −0 core/shared/src/main/scala-2.13/scodec/bits/ScalaVersionSpecific.scala
+0 −39 core/shared/src/main/scala-2.13/scodec/bits/package.scala
+33 −0 core/shared/src/main/scala-2/scodec/bits/BitVectorPlatform.scala
+33 −0 core/shared/src/main/scala-2/scodec/bits/ByteVectorPlatform.scala
+84 −0 core/shared/src/main/scala-2/scodec/bits/LiteralSyntaxMacros.scala
+84 −0 core/shared/src/main/scala-2/scodec/bits/package.scala
+42 −0 core/shared/src/main/scala-3.0.0-M1/scodec/bits/BitVectorPlatform.scala
+43 −0 core/shared/src/main/scala-3.0.0-M1/scodec/bits/ByteVectorPlatform.scala
+108 −0 core/shared/src/main/scala-3.0.0-M1/scodec/bits/Interpolators.scala
+39 −0 core/shared/src/main/scala-3.0.0-M1/scodec/bits/package.scala
+42 −0 core/shared/src/main/scala-3.0.0-M2/scodec/bits/BitVectorPlatform.scala
+43 −0 core/shared/src/main/scala-3.0.0-M2/scodec/bits/ByteVectorPlatform.scala
+108 −0 core/shared/src/main/scala-3.0.0-M2/scodec/bits/Interpolators.scala
+39 −0 core/shared/src/main/scala-3.0.0-M2/scodec/bits/package.scala
+0 −12 core/shared/src/main/scala-3/scodec/bits/BitVectorPlatform.scala
+0 −12 core/shared/src/main/scala-3/scodec/bits/ByteVectorPlatform.scala
+0 −67 core/shared/src/main/scala-3/scodec/bits/Interpolators.scala
+42 −0 core/shared/src/main/scala-3/scodec/bits/bits/BitVectorPlatform.scala
+43 −0 core/shared/src/main/scala-3/scodec/bits/bits/ByteVectorPlatform.scala
+108 −0 core/shared/src/main/scala-3/scodec/bits/bits/Interpolators.scala
+39 −0 core/shared/src/main/scala-3/scodec/bits/bits/package.scala
+0 −11 core/shared/src/main/scala-3/scodec/bits/package.scala
+162 −60 core/shared/src/main/scala/scodec/bits/Bases.scala
+619 −601 core/shared/src/main/scala/scodec/bits/BitVector.scala
+50 −40 core/shared/src/main/scala/scodec/bits/BitwiseOperations.scala
+31 −2 core/shared/src/main/scala/scodec/bits/ByteOrdering.scala
+566 −455 core/shared/src/main/scala/scodec/bits/ByteVector.scala
+79 −51 core/shared/src/main/scala/scodec/bits/crc.scala
+32 −6 core/shared/src/test/scala/scodec/bits/Arbitraries.scala
+176 −100 core/shared/src/test/scala/scodec/bits/BitVectorTest.scala
+38 −8 core/shared/src/test/scala/scodec/bits/BitsSuite.scala
+273 −143 core/shared/src/test/scala/scodec/bits/ByteVectorTest.scala
+34 −4 core/shared/src/test/scala/scodec/bits/CrcTest.scala
+34 −2 core/shared/src/test/scala/scodec/bits/StreamingBitVectorTest.scala
+1 −1 project/build.properties
+8 −19 project/plugins.sbt
+0 −1 version.sbt
1 change: 0 additions & 1 deletion community-build/sbt-scalajs-sbt

This file was deleted.

62 changes: 41 additions & 21 deletions community-build/src/scala/dotty/communitybuild/projects.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ lazy val sbtPluginFilePath: String =
new File(sys.props("user.home") + "/.sbt/1.0/plugins").mkdirs()
communitybuildDir.resolve("sbt-dotty-sbt").toAbsolutePath().toString()

lazy val sbtScalaJSPluginFilePath: String =
communitybuildDir.resolve("sbt-scalajs-sbt").toAbsolutePath().toString()

def log(msg: String) = println(Console.GREEN + msg + Console.RESET)

/** Executes shell command, returns false in case of error. */
Expand All @@ -30,6 +27,18 @@ def exec(projectDir: Path, binary: String, arguments: String*): Int =
exitCode


/** Versions of published projects, needs to be updated when a project in the build is updated.
*
* TODO: instead of harcoding these numbers, we could get them from the
* projects themselves. This likely requires injecting a custom task in the
* projects to output the version number to a file.
*/
object Versions:
val scalacheck = "1.15.2-SNAPSHOT"
val scalatest = "3.2.3"
val munit = "0.7.19+DOTTY-SNAPSHOT"
val scodecBits = "1.1+DOTTY-SNAPSHOT"

sealed trait CommunityProject:
private var published = false

Expand Down Expand Up @@ -68,15 +77,26 @@ final case class SbtCommunityProject(
project: String,
sbtTestCommand: String,
extraSbtArgs: List[String] = Nil,
forceUpgradeSbtScalajsPlugin: Boolean = false,
dependencies: List[CommunityProject] = Nil,
sbtPublishCommand: String = null) extends CommunityProject:
override val binaryName: String = "sbt"

// A project in the community build can depend on an arbitrary version of
// another project in the build, so we force the use of the version that is
// actually in the community build.
val dependencyOverrides = List(
// dependencyOverrides doesn't seem to understand `%%%`
""""org.scalacheck" %% "scalacheck" % "1.15.2-SNAPSHOT"""",
""""org.scalacheck" %% "scalacheck_sjs1" % "1.15.2-SNAPSHOT""""
s""""org.scalacheck" %% "scalacheck" % "${Versions.scalacheck}"""",
s""""org.scalacheck" %% "scalacheck_sjs1" % "${Versions.scalacheck}"""",
s""""org.scalatest" %% "scalatest" % "${Versions.scalatest}"""",
s""""org.scalatest" %% "scalatest_sjs1" % "${Versions.scalatest}"""",
s""""org.scalameta" %% "munit" % "${Versions.munit}"""",
s""""org.scalameta" %% "munit_sjs1" % "${Versions.munit}"""",
s""""org.scalameta" %% "munit-scalacheck" % "${Versions.munit}"""",
s""""org.scalameta" %% "munit-scalacheck_sjs1" % "${Versions.munit}"""",
s""""org.scalameta" %% "junit-interface" % "${Versions.munit}"""",
s""""org.scodec" %% "scodec-bits" % "${Versions.scodecBits}"""",
s""""org.scodec" %% "scodec-bits_sjs1" % "${Versions.scodecBits}"""",
)

private val baseCommand =
Expand All @@ -92,14 +112,11 @@ final case class SbtCommunityProject(
val sbtProps = Option(System.getProperty("sbt.ivy.home")) match
case Some(ivyHome) => List(s"-Dsbt.ivy.home=$ivyHome")
case _ => Nil
val scalaJSPluginArgs =
if (forceUpgradeSbtScalajsPlugin) List(s"--addPluginSbtFile=$sbtScalaJSPluginFilePath")
else Nil
extraSbtArgs ++ sbtProps ++ List(
"-sbt-version", "1.4.4",
"-Dsbt.supershell=false",
s"--addPluginSbtFile=$sbtPluginFilePath"
) ++ scalaJSPluginArgs
)

object projects:
lazy val utest = MillCommunityProject(
Expand Down Expand Up @@ -127,19 +144,19 @@ object projects:
lazy val ujson = MillCommunityProject(
project = "upickle",
baseCommand = s"ujson.jvm[$compilerVersion]",
dependencies = List(scalatest, scalacheck, scalatestplusScalacheck, geny)
dependencies = List(geny)
)

lazy val upickle = MillCommunityProject(
project = "upickle",
baseCommand = s"upickle.jvm[$compilerVersion]",
dependencies = List(scalatest, scalacheck, scalatestplusScalacheck, geny, utest)
dependencies = List(geny, utest)
)

lazy val upickleCore = MillCommunityProject(
project = "upickle",
baseCommand = s"core.jvm[$compilerVersion]",
dependencies = List(scalatest, scalacheck, scalatestplusScalacheck, geny, utest)
dependencies = List(geny, utest)
)

lazy val geny = MillCommunityProject(
Expand Down Expand Up @@ -280,21 +297,25 @@ object projects:
)

lazy val munit = SbtCommunityProject(
project = "munit",
sbtTestCommand = "testsJVM/test",
project = "munit",
sbtTestCommand = "testsJVM/test;testsJS/test;",
// Hardcode the version to avoid having to deal with something set by sbt-dynver
sbtPublishCommand = s"""set every version := "${Versions.munit}"; munitJVM/publishLocal; munitJS/publishLocal; munitScalacheckJVM/publishLocal; munitScalacheckJS/publishLocal; junit/publishLocal""",
dependencies = List(scalacheck)
)

lazy val scodecBits = SbtCommunityProject(
project = "scodec-bits",
sbtTestCommand = "coreJVM/test",
sbtPublishCommand = "coreJVM/publishLocal",
dependencies = List(scalatest, scalacheck, scalatestplusScalacheck)
sbtTestCommand = "coreJVM/test;coreJS/test",
// Hardcode the version to avoid having to deal with something set by sbt-git
sbtPublishCommand = s"""set every version := "${Versions.scodecBits}"; coreJVM/publishLocal;coreJS/publishLocal""",
dependencies = List(munit)
)

lazy val scodec = SbtCommunityProject(
project = "scodec",
sbtTestCommand = "unitTests/test",
dependencies = List(scalatest, scalacheck, scalatestplusScalacheck, scodecBits)
dependencies = List(munit, scodecBits)
)

lazy val scalaParserCombinators = SbtCommunityProject(
Expand All @@ -320,8 +341,7 @@ object projects:

lazy val catsEffect2 = SbtCommunityProject(
project = "cats-effect-2",
sbtTestCommand = "test",
forceUpgradeSbtScalajsPlugin = true
sbtTestCommand = "test"
)

lazy val catsEffect3 = SbtCommunityProject(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ class CommunityBuildTestA extends CommunityBuildTest:
@Test def scalatest = projects.scalatest.run()
@Test def scalatestplusScalacheck = projects.scalatestplusScalacheck.run()
@Test def sourcecode = projects.sourcecode.run()
@Test def scodec = projects.scodec.run()
@Test def scodecBits = projects.scodecBits.run()
@Test def ujson = projects.ujson.run()
@Test def upickle = projects.upickle.run()
@Test def utest = projects.utest.run()
Expand All @@ -114,6 +112,8 @@ class CommunityBuildTestB extends CommunityBuildTest:
@Test def intent = projects.intent.run()
@Test def minitest = projects.minitest.run()
@Test def munit = projects.munit.run()
@Test def scodec = projects.scodec.run()
@Test def scodecBits = projects.scodecBits.run()
@Test def scalap = projects.scalap.run()
@Test def scalaCollectionCompat = projects.scalaCollectionCompat.run()
@Test def scalaParallelCollections = projects.scalaParallelCollections.run()
Expand Down
6 changes: 2 additions & 4 deletions project/Build.scala
Original file line number Diff line number Diff line change
Expand Up @@ -1309,11 +1309,9 @@ object Build {
// (publishLocal in `scala3-staging`).value
val pluginText =
s"""updateOptions in Global ~= (_.withLatestSnapshots(false))
|addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "$sbtDottyVersion")""".stripMargin
|addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "$sbtDottyVersion")
|addSbtPlugin("org.scala-js" % "sbt-scalajs" % "$scalaJSVersion")""".stripMargin
IO.write(baseDirectory.value / "sbt-dotty-sbt", pluginText)
val scalaJSPluginText =
s"""addSbtPlugin("org.scala-js" % "sbt-scalajs" % "$scalaJSVersion")\n"""
IO.write(baseDirectory.value / "sbt-scalajs-sbt", scalaJSPluginText)
IO.write(baseDirectory.value / "scala3-bootstrapped.version", dottyVersion)
},
testOptions in Test += Tests.Argument(
Expand Down