diff --git a/.gitmodules b/.gitmodules index 304a1e045965..9f0390e42408 100644 --- a/.gitmodules +++ b/.gitmodules @@ -120,3 +120,24 @@ [submodule "community-build/community-projects/verify"] path = community-build/community-projects/verify url = https://github.com/dotty-staging/nanotest-strawman.git +[submodule "community-build/community-projects/discipline"] + path = community-build/community-projects/discipline + url = https://github.com/dotty-staging/discipline.git +[submodule "community-build/community-projects/discipline-munit"] + path = community-build/community-projects/discipline-munit + url = https://github.com/dotty-staging/discipline-munit.git +[submodule "community-build/community-projects/discipline-specs2"] + path = community-build/community-projects/discipline-specs2 + url = https://github.com/dotty-staging/discipline-specs2.git +[submodule "community-build/community-projects/simulacrum-scalafix"] + path = community-build/community-projects/simulacrum-scalafix + url = https://github.com/dotty-staging/simulacrum-scalafix.git +[submodule "community-build/community-projects/cats"] + path = community-build/community-projects/cats + url = https://github.com/dotty-staging/cats.git +[submodule "community-build/community-projects/cats-mtl"] + path = community-build/community-projects/cats-mtl + url = https://github.com/dotty-staging/cats-mtl.git +[submodule "community-build/community-projects/coop"] + path = community-build/community-projects/coop + url = https://github.com/dotty-staging/coop.git diff --git a/community-build/community-projects/cats b/community-build/community-projects/cats new file mode 160000 index 000000000000..2c27eb8b6fe5 --- /dev/null +++ b/community-build/community-projects/cats @@ -0,0 +1 @@ +Subproject commit 2c27eb8b6fe567d5a7adcb8433646d6f718d3e94 diff --git a/community-build/community-projects/cats-effect-2 b/community-build/community-projects/cats-effect-2 index 68905c4d87de..3f36df80b7b1 160000 --- a/community-build/community-projects/cats-effect-2 +++ b/community-build/community-projects/cats-effect-2 @@ -1 +1 @@ -Subproject commit 68905c4d87de0ab020caf306ea384d972fa296df +Subproject commit 3f36df80b7b1fee77a2aa10cd2b3d34083b11278 diff --git a/community-build/community-projects/cats-effect-3 b/community-build/community-projects/cats-effect-3 index e7b50ffe9dab..04155e429e23 160000 --- a/community-build/community-projects/cats-effect-3 +++ b/community-build/community-projects/cats-effect-3 @@ -1 +1 @@ -Subproject commit e7b50ffe9dabdbe5af479f4e1c9fd447e71e07f4 +Subproject commit 04155e429e230224e61235c4e4dd125419f82f7a diff --git a/community-build/community-projects/cats-mtl b/community-build/community-projects/cats-mtl new file mode 160000 index 000000000000..5b5dd285d42a --- /dev/null +++ b/community-build/community-projects/cats-mtl @@ -0,0 +1 @@ +Subproject commit 5b5dd285d42a275ab4123fdac1003b10aa1b73f6 diff --git a/community-build/community-projects/coop b/community-build/community-projects/coop new file mode 160000 index 000000000000..d3bcd3622dc3 --- /dev/null +++ b/community-build/community-projects/coop @@ -0,0 +1 @@ +Subproject commit d3bcd3622dc3a1f3257e2d861d724c04ab634b81 diff --git a/community-build/community-projects/discipline b/community-build/community-projects/discipline new file mode 160000 index 000000000000..4e3f9678c847 --- /dev/null +++ b/community-build/community-projects/discipline @@ -0,0 +1 @@ +Subproject commit 4e3f9678c84702b079209ae9928d9b6c884a7514 diff --git a/community-build/community-projects/discipline-munit b/community-build/community-projects/discipline-munit new file mode 160000 index 000000000000..e0a3aee65b85 --- /dev/null +++ b/community-build/community-projects/discipline-munit @@ -0,0 +1 @@ +Subproject commit e0a3aee65b85bf8d6bb53037e4bc33ebfdeaedff diff --git a/community-build/community-projects/discipline-specs2 b/community-build/community-projects/discipline-specs2 new file mode 160000 index 000000000000..b2fa931a44ee --- /dev/null +++ b/community-build/community-projects/discipline-specs2 @@ -0,0 +1 @@ +Subproject commit b2fa931a44eeb6a6afa1343e57f963e73aafff59 diff --git a/community-build/community-projects/simulacrum-scalafix b/community-build/community-projects/simulacrum-scalafix new file mode 160000 index 000000000000..75f7e10d30fb --- /dev/null +++ b/community-build/community-projects/simulacrum-scalafix @@ -0,0 +1 @@ +Subproject commit 75f7e10d30fb1b848b7adaf2a026320ee548b56a diff --git a/community-build/src/scala/dotty/communitybuild/projects.scala b/community-build/src/scala/dotty/communitybuild/projects.scala index 1c252d5165eb..17389b06de7e 100644 --- a/community-build/src/scala/dotty/communitybuild/projects.scala +++ b/community-build/src/scala/dotty/communitybuild/projects.scala @@ -34,10 +34,17 @@ def exec(projectDir: Path, binary: String, arguments: String*): Int = * projects to output the version number to a file. */ object Versions: + val cats = "2.3.1-SNAPSHOT" + val catsMtl = "1.1+DOTTY-SNAPSHOT" + val coop = "1.0+DOTTY-SNAPSHOT" + val discipline = "1.1.3-SNAPSHOT" + val disciplineMunit = "1.0.3+DOTTY-SNAPSHOT" + val disciplineSpecs2 = "1.1.3-SNAPSHOT" val scalacheck = "1.15.2-SNAPSHOT" val scalatest = "3.2.3" val munit = "0.7.19+DOTTY-SNAPSHOT" val scodecBits = "1.1+DOTTY-SNAPSHOT" + val simulacrumScalafix = "0.5.1-SNAPSHOT" sealed trait CommunityProject: private var published = false @@ -114,6 +121,32 @@ final case class SbtCommunityProject( s""""org.scalameta" %% "junit-interface" % "${Versions.munit}"""", s""""org.scodec" %% "scodec-bits" % "${Versions.scodecBits}"""", s""""org.scodec" %% "scodec-bits_sjs1" % "${Versions.scodecBits}"""", + s""""org.typelevel" %% "discipline-core" % "${Versions.discipline}"""", + s""""org.typelevel" %% "discipline-core_sjs1" % "${Versions.discipline}"""", + s""""org.typelevel" %% "discipline-munit" % "${Versions.disciplineMunit}"""", + s""""org.typelevel" %% "discipline-munit_sjs1" % "${Versions.disciplineMunit}"""", + s""""org.typelevel" %% "discipline-specs2" % "${Versions.disciplineSpecs2}"""", + s""""org.typelevel" %% "discipline-specs2_sjs1" % "${Versions.disciplineSpecs2}"""", + s""""org.typelevel" %% "simulacrum-scalafix-annotations" % "${Versions.simulacrumScalafix}"""", + s""""org.typelevel" %% "simulacrum-scalafix-annotations_sjs1" % "${Versions.simulacrumScalafix}"""", + s""""org.typelevel" %% "cats-core" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-core_sjs1" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-free" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-free_sjs1" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-kernel" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-kernel_sjs1" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-kernel-laws" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-kernel-laws_sjs1" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-laws" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-laws_sjs1" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-testkit" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-testkit_sjs1" % "${Versions.cats}"""", + s""""org.typelevel" %% "cats-mtl" % "${Versions.catsMtl}"""", + s""""org.typelevel" %% "cats-mtl_sjs1" % "${Versions.catsMtl}"""", + s""""org.typelevel" %% "cats-mtl-laws" % "${Versions.catsMtl}"""", + s""""org.typelevel" %% "cats-mtl-laws_sjs1" % "${Versions.catsMtl}"""", + s""""org.typelevel" %% "coop" % "${Versions.coop}"""", + s""""org.typelevel" %% "coop_sjs1" % "${Versions.coop}"""", ) private val baseCommand = @@ -426,15 +459,15 @@ object projects: lazy val catsEffect2 = SbtCommunityProject( project = "cats-effect-2", sbtTestCommand = "test", - // Currently is excluded from community build - // sbtDocCommand = ";coreJVM/doc ;lawsJVM/doc", + sbtDocCommand = ";coreJVM/doc ;lawsJVM/doc", + dependencies = List(cats, disciplineMunit) ) lazy val catsEffect3 = SbtCommunityProject( project = "cats-effect-3", - sbtTestCommand = "testIfRelevant", - // The problem is that testIfRelevant does not compile and project does not compile - // sbtDocCommand = ";coreJVM/doc ;lawsJVM/doc ;kernelJVM/doc", + sbtTestCommand = "test", + sbtDocCommand = ";coreJVM/doc ;lawsJVM/doc ;kernelJVM/doc", + dependencies = List(cats, coop, disciplineSpecs2, scalacheck) ) lazy val scalaParallelCollections = SbtCommunityProject( @@ -455,6 +488,54 @@ object projects: sbtDocCommand = "verifyJVM/doc", ) + lazy val discipline = SbtCommunityProject( + project = "discipline", + sbtTestCommand = "coreJVM/test;coreJS/test", + sbtPublishCommand = "set every credentials := Nil;coreJVM/publishLocal;coreJS/publishLocal", + dependencies = List(scalacheck) + ) + + lazy val disciplineMunit = SbtCommunityProject( + project = "discipline-munit", + sbtTestCommand = "test", + sbtPublishCommand = s"""set every version := "${Versions.disciplineMunit}";coreJVM/publishLocal;coreJS/publishLocal""", + dependencies = List(discipline, munit) + ) + + lazy val disciplineSpecs2 = SbtCommunityProject( + project = "discipline-specs2", + sbtTestCommand = "test", + sbtPublishCommand = "coreJVM/publishLocal;coreJS/publishLocal", + dependencies = List(discipline) + ) + + lazy val simulacrumScalafixAnnotations = SbtCommunityProject( + project = "simulacrum-scalafix", + sbtTestCommand = "annotation/test:compile;annotationJS/test:compile", + sbtPublishCommand = "annotation/publishLocal;annotationJS/publishLocal", + ) + + lazy val cats = SbtCommunityProject( + project = "cats", + sbtTestCommand = "set scalaJSStage in Global := FastOptStage;buildJVM;validateAllJS", + sbtPublishCommand = "catsJVM/publishLocal;catsJS/publishLocal", + dependencies = List(discipline, disciplineMunit, scalacheck, simulacrumScalafixAnnotations) + ) + + lazy val catsMtl = SbtCommunityProject( + project = "cats-mtl", + sbtTestCommand = "testsJVM/test;testsJS/test", + sbtPublishCommand = s"""set every version := "${Versions.catsMtl}";coreJVM/publishLocal;coreJS/publishLocal;lawsJVM/publishLocal;lawsJS/publishLocal""", + dependencies = List(cats, disciplineMunit) + ) + + lazy val coop = SbtCommunityProject( + project = "coop", + sbtTestCommand = "test", + sbtPublishCommand = s"""set every version := "${Versions.coop}";coreJVM/publishLocal;coreJS/publishLocal""", + dependencies = List(cats, catsMtl) + ) + end projects def allProjects = projects.fields.of[CommunityProject].sortBy(_.project) diff --git a/community-build/test/scala/dotty/communitybuild/CommunityBuildTest.scala b/community-build/test/scala/dotty/communitybuild/CommunityBuildTest.scala index 46c790d6db0d..772e25660e2e 100644 --- a/community-build/test/scala/dotty/communitybuild/CommunityBuildTest.scala +++ b/community-build/test/scala/dotty/communitybuild/CommunityBuildTest.scala @@ -82,6 +82,7 @@ end CommunityBuildTest @Category(Array(classOf[TestCategory])) class CommunityBuildTestA extends CommunityBuildTest: + @Test def endpoints4s = projects.endpoints4s.run() @Test def fansi = projects.fansi.run() @Test def fastparse = projects.fastparse.run() @Test def geny = projects.geny.run() @@ -90,44 +91,49 @@ class CommunityBuildTestA extends CommunityBuildTest: @Test def pprint = projects.pprint.run() @Test def requests = projects.requests.run() @Test def scalacheck = projects.scalacheck.run() + @Test def scalaCollectionCompat = projects.scalaCollectionCompat.run() + @Test def scalaParallelCollections = projects.scalaParallelCollections.run() @Test def scalatest = projects.scalatest.run() @Test def scalatestplusScalacheck = projects.scalatestplusScalacheck.run() + @Test def scalaz = projects.scalaz.run() @Test def sourcecode = projects.sourcecode.run() + @Test def stdLib213 = projects.stdLib213.run() @Test def ujson = projects.ujson.run() @Test def upickle = projects.upickle.run() @Test def utest = projects.utest.run() + @Test def zio = projects.zio.run() end CommunityBuildTestA @Category(Array(classOf[TestCategory])) class CommunityBuildTestB extends CommunityBuildTest: @Test def algebra = projects.algebra.run() @Test def betterfiles = projects.betterfiles.run() - // temporarily disabled due to lampepfl/dotty#10478 - //@Test def catsEffect2 = projects.catsEffect2.run() - //@Test def catsEffect3 = projects.catsEffect3.run() + @Test def cats = projects.cats.run() + @Test def catsEffect2 = projects.catsEffect2.run() + @Test def catsEffect3 = projects.catsEffect3.run() + @Test def catsMtl = projects.catsMtl.run() + @Test def coop = projects.coop.run() + @Test def discipline = projects.discipline.run() + @Test def disciplineMunit = projects.disciplineMunit.run() + @Test def disciplineSpecs2 = projects.disciplineSpecs2.run() // Temporarily disabled until problem discovered in comments to #9449 is fixed // @Test def dottyCpsAsync = projects.dottyCpsAsync.run() @Test def effpi = projects.effpi.run() - @Test def endpoints4s = projects.endpoints4s.run() @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() @Test def scalaParserCombinators = projects.scalaParserCombinators.run() @Test def ScalaPB = projects.ScalaPB.run() @Test def scalaXml = projects.scalaXml.run() - @Test def scalaz = projects.scalaz.run() @Test def scas = projects.scas.run() @Test def sconfig = projects.sconfig.run() @Test def shapeless = projects.shapeless.run() - @Test def stdLib213 = projects.stdLib213.run() + @Test def simulacrumScalafixAnnotations = projects.simulacrumScalafixAnnotations.run() @Test def verify = projects.verify.run() @Test def xmlInterpolator = projects.xmlInterpolator.run() - @Test def zio = projects.zio.run() end CommunityBuildTestB class TestCategory