From 24db77edc5c30ce2f62c353d646b1b4c4204ad3b Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Mon, 22 Apr 2019 00:16:41 -0400 Subject: [PATCH] copy some tests from coursier/sbt-coursier Copying over sbt-coursier integration tests that do not depend on Coursier-specific things, but excercises sbt integration. --- .travis.yml | 1 + main/src/main/scala/sbt/Keys.scala | 2 +- .../aar-packaging/build.sbt | 6 + .../aar-packaging/src/main/scala/Main.scala | 6 + .../dependency-management/aar-packaging/test | 3 + .../auto-scala-library/build.sbt | 20 +++ .../auto-scala-library/test | 1 + .../classifier2/build.sbt | 2 + .../classifier2/src/main/scala/Main.scala | 18 +++ .../dependency-management/classifier2/test | 1 + .../exclude-dependencies2/build.sbt | 11 ++ .../exclude-dependencies2/coursier | Bin 0 -> 11811 bytes .../src/main/scala/Main.scala | 32 ++++ .../exclude-dependencies2/test | 5 + .../a/src/main/scala/A.scala | 6 + .../b/src/main/scala/Main.scala | 9 ++ .../build.sbt | 20 +++ .../fallback-dependencies-inter-project/test | 3 + .../global-plugins/build.sbt | 1 + .../global-plugins/global/plugins/metals.sbt | 2 + .../dependency-management/global-plugins/test | 2 + .../build.sbt | 3 + .../src/main/scala/Main.scala | 8 + .../hadoop-yarn-server-resourcemanager/test | 3 + .../a/src/main/scala/A.scala | 6 + .../b/src/main/scala/Main.scala | 14 ++ .../inter-project-resolvers/build.sbt | 24 +++ .../inter-project-resolvers/test | 3 + .../inter-project/a/src/main/scala/A.scala | 6 + .../inter-project/b/src/main/scala/Main.scala | 13 ++ .../inter-project/build.sbt | 32 ++++ .../dependency-management/inter-project/test | 3 + .../no-pom-artifact/build.sbt | 30 ++++ .../no-pom-artifact/test | 1 + .../dependency-management/profiles/build.sbt | 5 + .../dependency-management/profiles/output | 1 + .../profiles/src/main/scala/Main.scala | 19 +++ .../dependency-management/profiles/test | 3 + .../dependency-management/typelevel/build.sbt | 3 + .../typelevel/src/main/scala/Main.scala | 8 + .../dependency-management/typelevel/test | 3 + .../url-no-head/build.sbt | 3 + .../url-no-head/src/main/scala/Main.scala | 11 ++ .../dependency-management/url-no-head/test | 3 + .../version-interval/build.sbt | 35 +++++ .../version-interval/test | 1 + sbt/src/sbt-test/plugins/dotty/LICENSE | 25 ++++ sbt/src/sbt-test/plugins/dotty/README.md | 1 + sbt/src/sbt-test/plugins/dotty/build.sbt | 1 + .../plugins/dotty/project/build.properties | 3 + .../plugins/dotty/project/plugins.sbt | 1 + .../plugins/dotty/src/main/scala/Main.scala | 16 ++ .../dotty/src/main/scala/TraitParams.scala | 21 +++ sbt/src/sbt-test/plugins/dotty/test | 1 + .../plugins/neo-sbt-scalafmt/build.sbt | 2 + .../neo-sbt-scalafmt/project/extra.sbt | 1 + .../src/main/scala/Main.scala | 6 + .../sbt-test/plugins/neo-sbt-scalafmt/test | 1 + .../plugins/sbt-native-packager/build.sbt | 20 +++ .../sbt-native-packager/project/plugins.sbt | 1 + .../src/main/scala/Main.scala | 6 + .../sbt-test/plugins/sbt-native-packager/test | 5 + sbt/src/sbt-test/plugins/scala-js/build.sbt | 3 + .../plugins/scala-js/project/extra.sbt | 1 + sbt/src/sbt-test/plugins/scala-js/test | 1 + sbt/src/sbt-test/plugins/unidoc/build.sbt | 5 + .../sbt-test/plugins/unidoc/project/extra.sbt | 1 + .../plugins/unidoc/src/main/scala/Foo.scala | 3 + sbt/src/sbt-test/plugins/unidoc/test | 1 + .../sbt/scriptedtest/ScriptedTests.scala | 141 +++++++----------- 70 files changed, 570 insertions(+), 89 deletions(-) create mode 100644 sbt/src/sbt-test/dependency-management/aar-packaging/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/aar-packaging/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/aar-packaging/test create mode 100644 sbt/src/sbt-test/dependency-management/auto-scala-library/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/auto-scala-library/test create mode 100644 sbt/src/sbt-test/dependency-management/classifier2/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/classifier2/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/classifier2/test create mode 100644 sbt/src/sbt-test/dependency-management/exclude-dependencies2/build.sbt create mode 100755 sbt/src/sbt-test/dependency-management/exclude-dependencies2/coursier create mode 100644 sbt/src/sbt-test/dependency-management/exclude-dependencies2/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/exclude-dependencies2/test create mode 100644 sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/a/src/main/scala/A.scala create mode 100644 sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/b/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/test create mode 100644 sbt/src/sbt-test/dependency-management/global-plugins/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/global-plugins/global/plugins/metals.sbt create mode 100644 sbt/src/sbt-test/dependency-management/global-plugins/test create mode 100644 sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/test create mode 100644 sbt/src/sbt-test/dependency-management/inter-project-resolvers/a/src/main/scala/A.scala create mode 100644 sbt/src/sbt-test/dependency-management/inter-project-resolvers/b/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/inter-project-resolvers/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/inter-project-resolvers/test create mode 100644 sbt/src/sbt-test/dependency-management/inter-project/a/src/main/scala/A.scala create mode 100644 sbt/src/sbt-test/dependency-management/inter-project/b/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/inter-project/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/inter-project/test create mode 100644 sbt/src/sbt-test/dependency-management/no-pom-artifact/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/no-pom-artifact/test create mode 100644 sbt/src/sbt-test/dependency-management/profiles/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/profiles/output create mode 100644 sbt/src/sbt-test/dependency-management/profiles/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/profiles/test create mode 100644 sbt/src/sbt-test/dependency-management/typelevel/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/typelevel/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/typelevel/test create mode 100644 sbt/src/sbt-test/dependency-management/url-no-head/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/url-no-head/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/dependency-management/url-no-head/test create mode 100644 sbt/src/sbt-test/dependency-management/version-interval/build.sbt create mode 100644 sbt/src/sbt-test/dependency-management/version-interval/test create mode 100644 sbt/src/sbt-test/plugins/dotty/LICENSE create mode 100644 sbt/src/sbt-test/plugins/dotty/README.md create mode 100644 sbt/src/sbt-test/plugins/dotty/build.sbt create mode 100644 sbt/src/sbt-test/plugins/dotty/project/build.properties create mode 100644 sbt/src/sbt-test/plugins/dotty/project/plugins.sbt create mode 100644 sbt/src/sbt-test/plugins/dotty/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/plugins/dotty/src/main/scala/TraitParams.scala create mode 100644 sbt/src/sbt-test/plugins/dotty/test create mode 100644 sbt/src/sbt-test/plugins/neo-sbt-scalafmt/build.sbt create mode 100644 sbt/src/sbt-test/plugins/neo-sbt-scalafmt/project/extra.sbt create mode 100644 sbt/src/sbt-test/plugins/neo-sbt-scalafmt/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/plugins/neo-sbt-scalafmt/test create mode 100644 sbt/src/sbt-test/plugins/sbt-native-packager/build.sbt create mode 100644 sbt/src/sbt-test/plugins/sbt-native-packager/project/plugins.sbt create mode 100644 sbt/src/sbt-test/plugins/sbt-native-packager/src/main/scala/Main.scala create mode 100644 sbt/src/sbt-test/plugins/sbt-native-packager/test create mode 100644 sbt/src/sbt-test/plugins/scala-js/build.sbt create mode 100644 sbt/src/sbt-test/plugins/scala-js/project/extra.sbt create mode 100644 sbt/src/sbt-test/plugins/scala-js/test create mode 100644 sbt/src/sbt-test/plugins/unidoc/build.sbt create mode 100644 sbt/src/sbt-test/plugins/unidoc/project/extra.sbt create mode 100644 sbt/src/sbt-test/plugins/unidoc/src/main/scala/Foo.scala create mode 100644 sbt/src/sbt-test/plugins/unidoc/test diff --git a/.travis.yml b/.travis.yml index d37eb6afa..5f721d033 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,7 @@ env: - SBT_CMD="scripted dependency-management/*2of4" - SBT_CMD="scripted dependency-management/*3of4" - SBT_CMD="scripted dependency-management/*4of4" + - SBT_CMD="scripted plugins/*" - SBT_CMD="scripted package/* reporter/* run/* project-load/*" - SBT_CMD="scripted project/*1of2" - SBT_CMD="scripted project/*2of2" diff --git a/main/src/main/scala/sbt/Keys.scala b/main/src/main/scala/sbt/Keys.scala index 52eff84cc..7464c2f0f 100644 --- a/main/src/main/scala/sbt/Keys.scala +++ b/main/src/main/scala/sbt/Keys.scala @@ -355,6 +355,7 @@ object Keys { val useCoursier = settingKey[Boolean]("Use Coursier for dependency resolution.").withRank(BSetting) val csrCachePath = settingKey[File]("Coursier cache path").withRank(CSetting) + val csrMavenProfiles = settingKey[Set[String]]("").withRank(CSetting) private[sbt] val csrConfiguration = taskKey[CoursierConfiguration]("General dependency management (Coursier) settings, such as the resolvers and options to use.").withRank(DTask) private[sbt] val csrProject = taskKey[coursier.core.Project]("") private[sbt] val csrResolvers = taskKey[Seq[Resolver]]("") @@ -362,7 +363,6 @@ object Keys { private[sbt] val csrSbtResolvers = taskKey[Seq[Resolver]]("Resolvers used for sbt artifacts.") private[sbt] val csrInterProjectDependencies = taskKey[Seq[coursier.core.Project]]("Projects the current project depends on, possibly transitively") private[sbt] val csrFallbackDependencies = taskKey[Seq[FallbackDependency]]("") - private[sbt] val csrMavenProfiles = settingKey[Set[String]]("") private[sbt] val csrLogger = taskKey[Option[CacheLogger]]("") private[sbt] val csrExtraCredentials = taskKey[Seq[coursier.credentials.Credentials]]("") private[sbt] val csrPublications = taskKey[Seq[(coursier.core.Configuration, coursier.core.Publication)]]("") diff --git a/sbt/src/sbt-test/dependency-management/aar-packaging/build.sbt b/sbt/src/sbt-test/dependency-management/aar-packaging/build.sbt new file mode 100644 index 000000000..97b5c2cff --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/aar-packaging/build.sbt @@ -0,0 +1,6 @@ +scalaVersion := "2.11.8" + +libraryDependencies += ("com.rengwuxian.materialedittext" % "library" % "2.1.4") + .exclude("com.android.support", "support-v4") + .exclude("com.android.support", "support-annotations") + .exclude("com.android.support", "appcompat-v7") diff --git a/sbt/src/sbt-test/dependency-management/aar-packaging/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/aar-packaging/src/main/scala/Main.scala new file mode 100644 index 000000000..61295349d --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/aar-packaging/src/main/scala/Main.scala @@ -0,0 +1,6 @@ +import java.io.File +import java.nio.file.Files + +object Main extends App { + Files.write(new File("output").toPath, "OK".getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/dependency-management/aar-packaging/test b/sbt/src/sbt-test/dependency-management/aar-packaging/test new file mode 100644 index 000000000..2182f57b0 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/aar-packaging/test @@ -0,0 +1,3 @@ +$ delete output +> run +$ exists output diff --git a/sbt/src/sbt-test/dependency-management/auto-scala-library/build.sbt b/sbt/src/sbt-test/dependency-management/auto-scala-library/build.sbt new file mode 100644 index 000000000..20969e7e5 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/auto-scala-library/build.sbt @@ -0,0 +1,20 @@ +autoScalaLibrary := false +libraryDependencies += "com.chuusai" % "shapeless_2.12" % "2.3.2" + +val checkScalaLibrary = TaskKey[Unit]("checkScalaLibrary") + +checkScalaLibrary := { + val scalaLibsJars = managedClasspath + .in(Compile) + .value + .map(_.data.getName) + .filter(_.startsWith("scala-library")) + .sorted + val expectedScalaLibsJars = Seq( + "scala-library-2.12.0.jar" + ) + assert( + scalaLibsJars == expectedScalaLibsJars, + s"$scalaLibsJars != $expectedScalaLibsJars" + ) +} diff --git a/sbt/src/sbt-test/dependency-management/auto-scala-library/test b/sbt/src/sbt-test/dependency-management/auto-scala-library/test new file mode 100644 index 000000000..f56f5a75e --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/auto-scala-library/test @@ -0,0 +1 @@ +> checkScalaLibrary diff --git a/sbt/src/sbt-test/dependency-management/classifier2/build.sbt b/sbt/src/sbt-test/dependency-management/classifier2/build.sbt new file mode 100644 index 000000000..21f304a4b --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/classifier2/build.sbt @@ -0,0 +1,2 @@ +scalaVersion := "2.11.8" +libraryDependencies += "org.jclouds.api" % "nova" % "1.5.9" classifier "tests" diff --git a/sbt/src/sbt-test/dependency-management/classifier2/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/classifier2/src/main/scala/Main.scala new file mode 100644 index 000000000..b1a40797d --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/classifier2/src/main/scala/Main.scala @@ -0,0 +1,18 @@ +import java.io.File +import java.nio.file.Files + +import scala.util.Try + +object Main extends App { + + def classFound(clsName: String) = Try( + Thread.currentThread() + .getContextClassLoader() + .loadClass(clsName) + ).toOption.nonEmpty + + val name = "org.jclouds.openstack.nova.functions.ParseServerFromJsonResponseTest" + val classifierTest = classFound(name) + + assert(classifierTest, s"Couldn't find $name") +} diff --git a/sbt/src/sbt-test/dependency-management/classifier2/test b/sbt/src/sbt-test/dependency-management/classifier2/test new file mode 100644 index 000000000..62ea636c1 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/classifier2/test @@ -0,0 +1 @@ +> run diff --git a/sbt/src/sbt-test/dependency-management/exclude-dependencies2/build.sbt b/sbt/src/sbt-test/dependency-management/exclude-dependencies2/build.sbt new file mode 100644 index 000000000..627874b74 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/exclude-dependencies2/build.sbt @@ -0,0 +1,11 @@ + +scalaVersion := "2.11.8" + +organization := "io.get-coursier.test" +name := "sbt-coursier-exclude-dependencies" +version := "0.1.0-SNAPSHOT" + +libraryDependencies += "com.github.alexarchambault" %% "argonaut-shapeless_6.1" % "1.0.0-RC1" + +excludeDependencies += sbt.ExclusionRule("com.chuusai", "shapeless_2.11") +excludeDependencies += "io.argonaut" %% "argonaut" diff --git a/sbt/src/sbt-test/dependency-management/exclude-dependencies2/coursier b/sbt/src/sbt-test/dependency-management/exclude-dependencies2/coursier new file mode 100755 index 0000000000000000000000000000000000000000..6cada6f8bfeee885fead8a7cbfbeab130ad6b10f GIT binary patch literal 11811 zcmZ{K1#lcm(zU?i5i?lK%*@QpXfZR(l4VO4Gcz;Oh?y<2n3)+Z#$S8)-R_?M+nlJ5 znuw~`nN^wD)t!%oh{4s_iNVOyj=|K#FbGIQ6c2(wBa-N6()Di4YWRu~MWTQ}Z!cpEO&FUI{WAh(LSnyo zU|ve2z4dl=kmwc+Q;vHoCbPK~TM&$ygNX%v|3^!(F`aWNCDzTdi{`{;i(x<0Mi7k8 zK%HJ!eyd1*1i_w1Q$0c6x!0!az2MTP5N>DgF8ndIUon)V6*FI1=_`O=)Nz$hPgEjM zgO;*UcTJS1yk&MxeS=IH{xAvl-6W8Ine=YWp91sVGq!hia<(*e`q!|(EZ64vME~*K z>XY|I{P$r}&h|EjE~X|THipj5vi621rcU(6fAk|1yQO;tk$iBM`wD9;BXWcB+t@7G zHtPFjgpmB8bUt4KZ4;|eP#5yQB>540T!24QI^y_?j&_fvEqeaC9UC3oU*`GBa*}M( zWoHPk2hIn+4A4s{U>Y|~9c>B~&1B+i?EdJx@ntmbN7kM+`DCyV!HDSIK4AOH5C!p_ zeWkxr!Dp0Tv~bG!uxzCd{TVE*lGgd(+g?p z(J-CpR^R4As<(VwFtivqG%bY9Idx-+#UCaRy1|A~whx2Iy*#4eo?8(Yq%KG^+_yjiq9w3?-b| zOE#K&@$U(b8WZ(>5GEKyVq2k%BJ4vu;>QqK5f$Zw%NCQP zA5lQ?ot(*RV(q=r!HR4vxNV)uB;j<|Nu*IZR*8~47E-%s+C zfC5;2E6h$6L;a|8Xv37AeT~cCD*5DSlg{vypv0#&^Hx2e8ZCpo8MTSUkHt!-v~rUA z$j2=oLx0e}1ymq@s)#CX6S)btN&T474e|npuOAx(c|}qx_e#AQF{h)N#NS=^$$0T| zl*&j|q%j3lFv;*u>egDct66mWw>p>4$pc)Y0H+E0T@^c%tm3>)SguTo-JDkqKU$L=nEIoew>A_SrV`$ z-%R@J6X5S*)!NS2PKvrRo#zpN1A5t*74j##qb|1~{eAHUg$YD?r9_3x-PW8dj)ZY7 zH+74W4H=brZR(^kbgT-Js5v7`2!L?i_MO|WM>TaepBL|-2DmfQWF&snYT<^O>9O*f z2;vqjg3Ze1D|&;`@a7$N*G@`|v$lU@-m_i7@P$KI73{cxR`(97lir4)f=UY5I$~)# z_ubK-Zt}yUmx{He=aWQ_?m-GJQE;YG|)^ska4Hm^eBOV6)J{hvLO*Gmw*oXz=7fb_iOvOSWcP15Y1@j=L$bet2~B zJG~VShYTS|VF~f)Re>(-LC1CTXWSX*I6EnsQ`zx$uBV5e&37GDuMf|7Uq>!1x%?LB zrGiL#RA)B5(2-ZNbHS9*c^vaXv9@AQV*TVH^pxG={Or(W^4%a%oaVQC?a)70YrHmT z#p+WnQ%Gg8wu_zFsX6Fy-EO;~<2;g4ln|;Rd;=wbESQZ(Yzfr{JUIvkd_yiVDXorH zryArzTY%Mtz=m{HWnl+c-@2`uY2x6{iPuNl1-KmqLbFgRr`AMZ$55?IoSkWU3{T9B z#`uk<=HoT)en41#m^ zT@vDNd0+)$-|K$o!tc%l(3p=%HnBs5nYfUU*+dRHeBXBD?e0oN;~lz0%S;S6=gdsV zHRBz;Yzuz@)8FxcVPGjAo|hzoq!cY)l~!=s6I8o^9aL&7-C&EHzl0o2^9alFVt)j@ z!mjOkK%K`nA}lwYbS)q~z~+}TO;-ca3b3Lr+Xgo*3s#>vg>7vCiq^C#zJf(Ld;^Yn z1PTu5LL%8yo&H9~wZ$+Ft84=D4jcO)w!wjcH5KOz~w# z)?Alb(ZYqU9PpEzQ-W}ux}xMGc5kwzY_e2f>V{vas}J%NS)*R6jTAnLuY>*~Y{|)# zxaj3&rf{mm&g zL_PB*6D80=tZ0#`QU&QPxuTVrc@ws1aF|3NZX_;gseOvX8=*pWpqgTFjhq2vQ> zvx`A0)tLMkzG+}+L*`EpppS2xvjS9a%fg%1_ael{@W|0%$O#^!2<6iD?f_-2;CW1* zbqG{`1+E17OFS=sp529UuB{N5LG&3Qis3YPqc>zDz29dyJh(!mqhW*cBI+?6UCu~$ z%EDuYYbll3#7=;p%Y!h9#0#}+#p>#$r-Bx%u7_QoN-C30VPh)-;D++@X;%hxLOM#! zuHep(UsC#@GlgFUOWR@|8nF#XUuMqtYkGzUZZ@b5%WlWj#+$2#}zUgB2~V) z?BIxDeTOe0^Gr&g?xgLiw1!)NR7~8Q#jHt@S56_^QMWL0PuAQ*8WurOTxf-tOHrG6 z6k9L8LGcLB*+DksuIYb{+=aLhOaL>KRgEYxT{O#p)m6nAy#C{sq4xD-&?S`orh>^O zMKQ~UGiWCj>!~PTEf9LU?%kAjk_vdf^2M`dv|9u`~CH=praDeK$0;&*_ z4_v`KJ``}mFPqS4);b4|@E%UIKv;0uN>J{;NteUHYlYoiV=JowCQ%gS#bWC%-|?1M zGrLd5tF`Xe-q>3W|)*X~&WoxDO zLf1Y+s*~_QEqG_ZrNcOklgXMXBRj9cJy{aeH)t%#kp`RlZzSHz155OvA%;yG()MM4rq8Xi`j48zrO{ZH@QsF9QV*jNt*^mUSrADJ!cX)jG*S+ zxYe~K3mCtODDP!fL@yIix8XZlCeK%QWmkOxis=b~!QcH@BUWnAbk21t>M2C0qtd>y z(SVF>)Ir|NEXQt&f`U}WVvOzEyJ6qlUz9k`U_# z`}$*Q`6+HffRbO-#U&NA0C0-C1&`U>FB9aqin^o5FQ;;FyUnlZFxeQcsijX#mCy#i z9HQb=AHvXP^1#pbbcga#;OhxjdlfS5>tBRo}#by{L`t^z5vt=!;nI<~P&N1Xu!7Fj4Ra2l6cW_K3lgpMD8h<42 zq*f~MZn`q-=aiy?-x&^{?{9AuZ<-RRSMR4tsegW>VEy+=#8u@~9`*ecIh`o4mElp01mNoAg%R{fF0CQP#;msEeF%cMJ$H)7XrZ zcIWZtyG)*6PvcPrAZJ^9q@46ihq3;!^gK;|Vv%JC$iI9HIh5GJI3YSj`X2q$pGk^P=36HVECx zAQe6;)N&4Zg3WR_;lXPaVHxSE*EywLR{1205w^ug+i%({wXE@Dajep+;-kk?ZEE0= zxb%se&79!#{b;51Ru)b`-Fu5=lMwo_0tAF&oI4!%a*ZHEvlS|Tcg=xcuZiJ+-mMZ- z7crCgS3x;$De=pCyn&RM$F7EyJ$M@SiXUr^-Ngo1FOsCU%yv*Wvm29#T1#}(zLVO|xA@8Hiz3}`kz1I|N@T1_mJr8N z-Uuvjf{4&YmU}N%pHA&5eME04$n{ZcpJB*uxe%R$^?PYgxnOT3@La*hcM*PRX4ilJ z)dUjcHf^$9ohLj_Lg4$`nRN|Hr2h&N1cZiTnwzn=N?`!k@6Iuk2ix~EKWBD2pPe`db+iWs?@?R3 zdIkG<+BkIlgwQSCE|J_d%HTbjUK}U8VwI-{Z4RIJ1XG9)EBQs5S$>6p^%9e$N<<6V7v8XDHh_|FNtr9Qg7b*hyKPc{VO zo6Xb&Mbm)HqF6O_-hR3de!n-UkEm;~z-sDwN%>f$6tQqqb-ifkR2}yNqc50p( z@*^JYfJ_pF{Zj8t`H=_j1cr%{5D}+E!lbXdOR9Dni&K^f$u1=B#cfhWY8i~-MeH?4{oGn@{ewEq65BF6UrM4F zwnx}HgtrxfLj+1L6Sn5dRA1wVmswwd4sF`o)}qJb7Ty(Y1{9Ew<-=LOln~bmlg3Bn zIjo)`GJfu)^-XhFKZ`}!Bjc`6=dKlACYc1?;Mi+;2FcG~oHBa`F}A7DyIXoUu5^}P z^5LALL7dIr)8MRAMBQ1hlwE@32v81tt7-bk6?ax%is1N)YzOVyCJjdwKNrip|1zfb zRVn&>uR|=CHT;5uSlp(wYj5o$xx!w2wT&Y{RMRZ6+s-X8w663(m4UyPrutebA9XP; ze8)$g$AnYA6-JUH+9S>Quv`(5b0+CDR$8d0PCWO~zK(Ih#qeND(UuhLwAfZ^pm#FT ztMIwM#)23-lzbdktfk_5csIwxYq!aP7z2i^x5i>SR@BQwSci6L?qihBy#yBzZ~`6V%XwDK!;p$W|?D4QV>GZLsEPvi{(X9#Ujr99)XiFwIY+VLd!+sF9vR zhZ*h3)#mQdDhwl8O`YBiEJ^~J_VSS^ot#_K)fh)j2thun1#YQlb*Vc)<7<&YMAL&6ZyY4*{q7<|@mAxLwHf$Xj)V zsP;u@7c(W5e=e6+IN~F6vv)?01Daz8bNtG8EQYEddp`-flVdb>D2W@4OYu!dW0usz z(@m(CP!K690yFayG(S3X#)rE}i1cd-YT+sw2ot+&4v{Y+J|oe>?_v+L1)vT++B`)C z4^P6WzSay2C_R`a7zh!8EtEd1K=G-)VowK7>d<1H_Pn``FaeOjVQ3Zs&PBanOL%4E zO=0ARoCFdXR#U@+nCHtF6O0QKJriBu3>?pJYQhh5-)`8o037^wuAc@%Ir@x-KG06o zlZO@@N_w6?EHQRl$D=^EJM( zKa}$K9qbGeg?#(=W^s{qKQ5@|zrNQ=m?I8nKXC_5c&1h7r8VX)+3m}AZ~yE*gSEQh zegL6bB8w}*p>tXkfRbi|l**W@CF0I$gzLT%81Kf`TTnHy;d>zf3dM#QxW%@5DcQ5( zekkYvg|ZcGA}< zJPZgXylES=kQzBoXo)Oy{LnSIpACsouVNvk3cP75KvCKnlb2LBlRZAK8vRsFI)&Wq zr&(aYD8U%3DW_WthaGTB{mCNrFc^0iON1(q;#-Af5CZ1SNkc{%H4DJB(1~`s+{HWp z3A?;;sU@!FeoNC_qYp)#PW^eyA+0z&zNn#AW08pN(3%o`B0V#kkE-8B38R2JyWr9T z(9PCps#4A~rH>OqCc_cX(o$|w|B`-ib`(lhemiAS4qQDgl8#G5N`hGgPGvV9a0Duo z;g_jfshTF{%uvTEOBs&TQlr^Mxth&CaBec=s&y&uQ95r{3?1)h+EETt{Zd3CrB(fG z^OHD!Kve+B66tpMQn3lhk}fHjtnBFInVSo2m{B}Buw<2xsLn3VaO(#G)o>;e`?pv1 zq{{gGyONjy_ef`ARBC3;H%p50ihJgLg?#)pXy?UD2WpSaIqAg{&`?B+BZ=a1m-rjs zeK_K?Nrl^WF(@gBeElX&iDI?5w74LsGLIaQb6QT*A`YyV`@e(%3WP2RZ*0sVCp(S` z3KmcK6mnm(b7<8Qv91FN`=74QWo=Ss*>uMMkAg0AQsW`Y?7_WYxXjh;9i#v_T6Anx zi9lsXc}~L-Y-(G?!3y>d^zpjnqNsC$TS`rInoAg=uu{0n6jZ4ZW%L29v6~i+9&Bi* zizr7a5W5`tDle+Ltd72ULQn^UvYCPXXplz!G5)z;6>$Wh|f5b4GP#~); zB9Hj%plw`~n;4fuP4AR{A8E@?%*dd6q4{T+q^YrlcvWStW`e&0!%MHKD^G4bv zc}$!j1YIN9z+re(t*te$FJJhH6GHg)tQ#|}J_*oczL3kVW2d4|41YYL`J6AnQS zrddup&bFQTf{h()3Fi*Io}xvYo}hawD>UnvB7&fpMp@ z5ziDhRd+)bJj}cwytIQs1ELQ1T(gQBzg?{IK2w&C+0^22cpH` z>8m*wcIJ<9HzQ*Q00w+9GGpv4G!_K{dD!@oJKU9JVvALkd!HsNA_KF$xkS^=3iVcS zCmQ2iRcB9QmAL>CtI6PKE^oS0OicWgDGWY}nYAxiEU+_LI!Yu&)fCt|b)}Bs<~YX^ z_!hW&!{mir63^m^L@CaijtwHJ?y!mUyx|97A~C`7m%Z5CRN1jSLlb74Tg6vV#Obkg zG*b&FHP-mKlrbsNzoMRJcO^H9w4AQ1L5IVz_*TJq;1SP)+^eROiZYS{441CCG1&9q z0j^C{@vqcxF~?*j^3R%HCgaF#>6%N6WOK>!)ty~j4-PnO*fm?d5!2yU$Z2LIwTllu zA!H>iaHA8=*c4cO8RTDA&`^`Xg&8n?=>%dsG2*MnF)WO^zxR3@mft6j1h9|47W8tF zjot?@na2sW@h%(6Yq$+dc;CCsnK)rD&P$oc|5(G8qZaU6S!0ZZh{dBYlX|pS6>nG~ zCu-%Kq5H&P=rX_OvUD|DyDHsPblRK6uN|9X;_eq&7|BmG; zg}urp)pgUHu2zOhdr{O(fJ#EErMH^v&l&!yK&a0_ugbF$p7&MfwF%LBh5igeToJM- zoGIiJXwPy5#uhlUJ-UP6wzL#?;+%rXi?4kWzI34;Z~=COC-!SDg0B5&=HRh@ZFGG4 z>g{8~swPzRymw?SHR9<9>!yaNxEU%$ZBcQFd86XUI6rzy@`m6(H+qwFJ=p}bV4*^s zm&VG5UDi-xnw{`Swq^dnlW4Zh9ke&8tJCI~kC%T*-CjHug)pTGT{0y@lHV6X0Eteu z-mA%f)`*}CGJs1kS^?`NJD$mHFQ0*<2)>r#QgR4W?CifpCxrlZ3~^3 z#mI(0FUBw|Yl-I>;B8Ql#lyY{9x2B;UN1FGIA&3CRFpC{d$CzVB{u?9EPP!aFO%@3 zOqYbS->?2<4t7(yKFx|u&#bqj)e=Euyjj-haMcBG+O0(;bC1cXi146-xxMw!qyLMN zwQPOVkzXp-&G%E26m5Bev8s`}bBejcLYyDJbde^Um!Bx1f9<7qZ1z{5)#aykfR-ZS zRIU`JqW%CcxgUxS!mwg zJtRd!rqF%uuEy_ zxZ&IJ>5FqP1dOjtr!(m39abz^ShHtzVk6j$f`ko6{oJ*RvoqVR9_Z>w&N=pdXKhkp za#(lnbv6`JR_h(I1yh2V;5tk9%7;wkYMNj#7xGN=#q-E`S9b2z?~OV?BpQjI z?Z98$$~(ZndQ*6;KpdTF`aoHne~4=Rig34pGa8poU4(}V_4QjPh3FswM%ncsQ9OZy z7Z%Aans2ZVv*VS*wK)`OypLi#Nb zqSdaQl~^i?`zmXvXyyrP7XBzpOkmj8h?djAk0u}_wm}#~Z&z;9+z<~EGWZ2IJjG2% zTEhhS&e|{gx6_`V%SPKkxedC2QS=M)+ch8xIs8k}+KKk1y}W^yIQi_7GYC?u68XF- zKrz_iIGWf@TL#ontqQe5JF6Fg)J%)oIj7tk{l*CuMcq= zNwCO1y;T*VbqiGg=iC%4*)^!B7s!=n0XY>G53wqD5LfrxW{z29Cyk! z885}VK`2VljvhucFZY-pmIv{Ulormc^R3SZ#2ig_V)sbegz!IfKS*ZEMv*{d3c{Wg zOmE(*9VpUXQ#xMbXiVQJO=b0_?jH)FJq&^{`%vb6J~Zv>rMaem0a)B3>`w}CWvy+O zT=S3TBYM!EZbMuXaZG;EmwMa8wSI;UyPkts zU%#4k%ZPNDuWw>^7$d%a0^iJfl2XG_^_u5NM|^X-yx>bd_IYd!llb@p5ehLb0eq&N zeLtT{?X%kyQwgyr6CMPIYmb(i${uV#J4F4C9TN|8$Em(>VYkf*EqF?cJ)+WIMr<4I3-`Is3BzVXngS_X zLc`xF#OF;AsybX%DcYN{1f|P9%V&|Z7fhqEjKd29Ic$jUzM`bj*YuYQ$LFLMP_f~EbntY%tU&>t9D{l*|ywMtJW zJ5G;P3tOS@uZP!1qGUo&ly~KU^Uxe$>cRbSd~jmOo0iQ1n{E>u2)c;Tt(#7BSf?w- z;mqa}Vtv4rDW>2+$2U}W2$3mLW%TOGpZWU3^_o7btDiSZjz1=9k1)xRPve*H@`&CJ zu5iLo9nX(V@+m2_)+jtM)q|jv1O!po;V-2N5}6|GAAbp1Ra21>G1)ZkJ)J^ROSD8t z0pAFd5eWM;M9aF;iOr*gS_@+_w*+uG*N zlec(6easMdc*9h2Y0SUiqEPd6QekbBuHGzn)*dxepj?Ejm{;?=@w@y^ofit}?yN1o$MV`zM&<%}|-0>+#tEs4xvZ#_%5sz|7 z>epzG;N?m-0Te>#GX6R`Ep~pZ&KOD^A*Old9NzT$l!5^Qh7FClu7H5#9Wd36XoNHK zQ-aon0*`+H9_`kr8m-`t{k2a@4BxMcSlbYB)J;uL%LCxg?8h$e8U+1_-@pqyqwoP3 zcT+pprB%&k=@3-;7yB~_AEc>4OF*X$uqjiH3-w_{y_ZKh;GPbSKfOjvGNdlnVl31) ze2^J6Vpn45tigzf$UZ5c1{j$nnP^+t__5p`tZi_*kKzSk$nDnM^CC=Y+{3;SuZtV( z&fiDpPWImV!15Wbk09x$ZZ)2(#HTp9*WDtz5DQ<~Tv&=}R!Zz;il9F5ruJb@uwL*b zE?ZzUlEl$jZAJhidA_b;P9?OZxH(Xq?qKo#z?`IyR1u&!u#}$)^JaR9Z=BFs@pn5# zdBimspf>mk`a?5dpUa!9YDd8l&ffoeUhwspvoC9ty#oVne%lM&r8&f2M4&pOvkP(C z_N)DF5#tr{S=Fa&wwc|#2L%4UJ1YDRgUNe(vHezbfi<}{h0V|LmTf9jy-zl0^^;qm z)SRMpCB6M4rXtr;S4GjAWUXr*al$ZAOuFUKI6XVzJVn!}fey)U_VXRZU@n@V2M#~u z>(qW`I80PtQ)Zx|Qh(M~z0C||pHC9T&W;;cx+qHZyq(9KVdt9TZSbF2(H|c344*3+ zF*>RntGmS{>E{fX)ELUqHT-DK`~EdUXkPesvft^vY~=}Xw+4==cRuzc@b8)^^gH!Y zE;d;Dy)^KrpuG2t{zFasgFH#+>SW_=I#dJSD+nz(83K|u0$l8Z6Fu<5D@RTLinh3B z7fZhS^jKAz!a+RV=d%4MD-@N{q7#B1Age%!n9ybfy$|8KRFM6|qfB-HcOXJQ(;yCy zsr#w5@eQgIO3Ow8-_8$e5Jpi33i`u=G``XM{UhGnKWq42(D+S5CsXHlW}~sGGx+;7 zsCV)s2*`Vd_h0hQFz@`wzhLMcoa`M;om?zUomKXf5#(u=9B3((8LJf;fz@EdB+d}# z^BYJIB;X>>mHE%lv0JgZePHe7eZ)zl#5xH_Q(H5{?cvWWGul4wJI_<)0X;f1tpE{4)*oPXLhV_wL_Fq5pmJ-)W(LO?&+Nw0|Ut{%*|gOvu0R zG~RdXPc{BOUgYmMzq9E6!ZCiY>HiO$|EuQzj`KUC>n|Jv$p4A+fBdfBaeikM{Drd* z_djv| run +$ exists output +> publishLocal +$ exec java -jar coursier launch io.get-coursier.test:sbt-coursier-exclude-dependencies_2.11:0.1.0-SNAPSHOT diff --git a/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/a/src/main/scala/A.scala b/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/a/src/main/scala/A.scala new file mode 100644 index 000000000..954405774 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/a/src/main/scala/A.scala @@ -0,0 +1,6 @@ + +case class A(msg: String) + +object A { + def default = A("OK") +} diff --git a/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/b/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/b/src/main/scala/Main.scala new file mode 100644 index 000000000..59bb6d372 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/b/src/main/scala/Main.scala @@ -0,0 +1,9 @@ +import java.io.File +import java.nio.file.Files + +object Main extends App { + + val msg = shapeless.Generic[A].to(A.default).head + + Files.write(new File("output").toPath, msg.getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/build.sbt b/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/build.sbt new file mode 100644 index 000000000..93f7aa347 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/build.sbt @@ -0,0 +1,20 @@ + +lazy val a = project + .settings(sharedSettings) + .settings( + libraryDependencies += "com.chuusai" %% "shapeless" % "2.3.234" from "https://oss.sonatype.org/content/repositories/releases/com/chuusai/shapeless_2.11/2.3.1/shapeless_2.11-2.3.1.jar" + ) + +lazy val b = project + .dependsOn(a) + .settings(sharedSettings) + +lazy val root = project + .in(file(".")) + .aggregate(a, b) + .settings(sharedSettings) + + +lazy val sharedSettings = Seq( + scalaVersion := "2.11.8" +) diff --git a/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/test b/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/test new file mode 100644 index 000000000..ea53e1abb --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/fallback-dependencies-inter-project/test @@ -0,0 +1,3 @@ +$ delete output +> b/run +$ exists output diff --git a/sbt/src/sbt-test/dependency-management/global-plugins/build.sbt b/sbt/src/sbt-test/dependency-management/global-plugins/build.sbt new file mode 100644 index 000000000..5642f168f --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/global-plugins/build.sbt @@ -0,0 +1 @@ +scalaVersion := "2.12.8" diff --git a/sbt/src/sbt-test/dependency-management/global-plugins/global/plugins/metals.sbt b/sbt/src/sbt-test/dependency-management/global-plugins/global/plugins/metals.sbt new file mode 100644 index 000000000..8aae08736 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/global-plugins/global/plugins/metals.sbt @@ -0,0 +1,2 @@ +addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.2.5") +addSbtPlugin("org.scalameta" % "sbt-metals" % "0.4.4") diff --git a/sbt/src/sbt-test/dependency-management/global-plugins/test b/sbt/src/sbt-test/dependency-management/global-plugins/test new file mode 100644 index 000000000..67a8b1ff1 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/global-plugins/test @@ -0,0 +1,2 @@ +> metalsEnable +> bloopInstall diff --git a/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/build.sbt b/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/build.sbt new file mode 100644 index 000000000..983b4325e --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/build.sbt @@ -0,0 +1,3 @@ +scalaVersion := "2.11.8" + +libraryDependencies += "org.apache.hadoop" % "hadoop-yarn-server-resourcemanager" % "2.7.1" diff --git a/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/src/main/scala/Main.scala new file mode 100644 index 000000000..032874759 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/src/main/scala/Main.scala @@ -0,0 +1,8 @@ +import java.io.File +import java.nio.file.Files + +import org.apache.zookeeper.ZooKeeper + +object Main extends App { + Files.write(new File("output").toPath, classOf[ZooKeeper].getSimpleName.getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/test b/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/test new file mode 100644 index 000000000..2182f57b0 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/hadoop-yarn-server-resourcemanager/test @@ -0,0 +1,3 @@ +$ delete output +> run +$ exists output diff --git a/sbt/src/sbt-test/dependency-management/inter-project-resolvers/a/src/main/scala/A.scala b/sbt/src/sbt-test/dependency-management/inter-project-resolvers/a/src/main/scala/A.scala new file mode 100644 index 000000000..954405774 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/inter-project-resolvers/a/src/main/scala/A.scala @@ -0,0 +1,6 @@ + +case class A(msg: String) + +object A { + def default = A("OK") +} diff --git a/sbt/src/sbt-test/dependency-management/inter-project-resolvers/b/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/inter-project-resolvers/b/src/main/scala/Main.scala new file mode 100644 index 000000000..f2c112187 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/inter-project-resolvers/b/src/main/scala/Main.scala @@ -0,0 +1,14 @@ +import java.io.File +import java.nio.file.Files + +import scalaz.stream._ +import scalaz.concurrent.Task + +object Main extends App { + + val pch = Process.constant((i:Int) => Task.now(())).take(3) + val count = Process.constant(1).toSource.to(pch).runLog.run.size + assert(count == 3) + + Files.write(new File("output").toPath, A.default.msg.getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/dependency-management/inter-project-resolvers/build.sbt b/sbt/src/sbt-test/dependency-management/inter-project-resolvers/build.sbt new file mode 100644 index 000000000..d375b4ab6 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/inter-project-resolvers/build.sbt @@ -0,0 +1,24 @@ + +lazy val a = project + .settings(sharedSettings) + .settings( + resolvers += "Scalaz Bintray Repo" at "https://dl.bintray.com/scalaz/releases" + ) + +lazy val b = project + .dependsOn(a) + .settings(sharedSettings) + .settings( + // resolver added in inter-project dependency only - should still be fine + libraryDependencies += "org.scalaz.stream" %% "scalaz-stream" % "0.7.1a" + ) + +lazy val root = project + .in(file(".")) + .aggregate(a, b) + .settings(sharedSettings) + + +lazy val sharedSettings = Seq( + scalaVersion := "2.11.8" +) diff --git a/sbt/src/sbt-test/dependency-management/inter-project-resolvers/test b/sbt/src/sbt-test/dependency-management/inter-project-resolvers/test new file mode 100644 index 000000000..ea53e1abb --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/inter-project-resolvers/test @@ -0,0 +1,3 @@ +$ delete output +> b/run +$ exists output diff --git a/sbt/src/sbt-test/dependency-management/inter-project/a/src/main/scala/A.scala b/sbt/src/sbt-test/dependency-management/inter-project/a/src/main/scala/A.scala new file mode 100644 index 000000000..5308caa95 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/inter-project/a/src/main/scala/A.scala @@ -0,0 +1,6 @@ + +object A { + + def msg = "OK" + +} diff --git a/sbt/src/sbt-test/dependency-management/inter-project/b/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/inter-project/b/src/main/scala/Main.scala new file mode 100644 index 000000000..624039aa5 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/inter-project/b/src/main/scala/Main.scala @@ -0,0 +1,13 @@ +import java.io.File +import java.nio.file.Files + +import argonaut._, Argonaut._, ArgonautShapeless._ + +object Main extends App { + + case class CC(i: Int, s: String) + + val msg = CC(2, A.msg).asJson.spaces2 + + Files.write(new File("output").toPath, msg.getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/dependency-management/inter-project/build.sbt b/sbt/src/sbt-test/dependency-management/inter-project/build.sbt new file mode 100644 index 000000000..ca35179d2 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/inter-project/build.sbt @@ -0,0 +1,32 @@ + +lazy val sharedSettings = Seq( + scalaVersion := "2.11.8" +) + +/** Module with the same Maven coordinates as shapeless 2.3.1 */ +lazy val `shapeless-mock` = project + .settings(sharedSettings) + .settings( + organization := "com.chuusai", + name := "shapeless", + version := "2.3.1" + ) + +lazy val a = project + .settings(sharedSettings) + .settings( + organization := "com.pany", + name := "a", + version := "0.0.1" + ) + +/** Transitively depends on the - real - shapeless 2.3.1 */ +lazy val b = project + .dependsOn(a) + .settings(sharedSettings) + .settings( + organization := "com.pany", + name := "b", + version := "0.0.1", + libraryDependencies += "com.github.alexarchambault" %% "argonaut-shapeless_6.2" % "1.2.0-M1" + ) diff --git a/sbt/src/sbt-test/dependency-management/inter-project/test b/sbt/src/sbt-test/dependency-management/inter-project/test new file mode 100644 index 000000000..ea53e1abb --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/inter-project/test @@ -0,0 +1,3 @@ +$ delete output +> b/run +$ exists output diff --git a/sbt/src/sbt-test/dependency-management/no-pom-artifact/build.sbt b/sbt/src/sbt-test/dependency-management/no-pom-artifact/build.sbt new file mode 100644 index 000000000..7465c34d7 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/no-pom-artifact/build.sbt @@ -0,0 +1,30 @@ + +lazy val noPomCheck = TaskKey[Unit]("noPomCheck") + +noPomCheck := { + + val log = streams.value.log + + val configReport = update.value + .configuration(Compile) + .getOrElse { + throw new Exception( + "compile configuration not found in update report" + ) + } + + val artifacts = configReport + .modules + .flatMap(_.artifacts) + .map(_._1) + + val pomArtifacts = artifacts + .filter { a => + a.`type` == "pom" && a.classifier.isEmpty + } + + for (a <- pomArtifacts) + log.error(s"Found POM artifact $a") + + assert(pomArtifacts.isEmpty) +} diff --git a/sbt/src/sbt-test/dependency-management/no-pom-artifact/test b/sbt/src/sbt-test/dependency-management/no-pom-artifact/test new file mode 100644 index 000000000..67b4dc666 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/no-pom-artifact/test @@ -0,0 +1 @@ +> noPomCheck diff --git a/sbt/src/sbt-test/dependency-management/profiles/build.sbt b/sbt/src/sbt-test/dependency-management/profiles/build.sbt new file mode 100644 index 000000000..0dde988c3 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/profiles/build.sbt @@ -0,0 +1,5 @@ +ThisBuild / scalaVersion := "2.11.8" + +Compile / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.Flat +libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.2" +csrMavenProfiles += "hadoop-2.6" diff --git a/sbt/src/sbt-test/dependency-management/profiles/output b/sbt/src/sbt-test/dependency-management/profiles/output new file mode 100644 index 000000000..a0aba9318 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/profiles/output @@ -0,0 +1 @@ +OK \ No newline at end of file diff --git a/sbt/src/sbt-test/dependency-management/profiles/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/profiles/src/main/scala/Main.scala new file mode 100644 index 000000000..9ac86fe34 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/profiles/src/main/scala/Main.scala @@ -0,0 +1,19 @@ +import java.io.File +import java.nio.file.Files + +object Main extends App { + val p = new java.util.Properties + p.load( + Thread.currentThread() + .getContextClassLoader + .getResource("common-version-info.properties") + .openStream() + ) + + val hadoopVersion = p.getProperty("version") + Console.err.println(s"Found hadoop version $hadoopVersion") + + assert(hadoopVersion == "2.6.0") + + Files.write(new File("output").toPath, "OK".getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/dependency-management/profiles/test b/sbt/src/sbt-test/dependency-management/profiles/test new file mode 100644 index 000000000..2182f57b0 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/profiles/test @@ -0,0 +1,3 @@ +$ delete output +> run +$ exists output diff --git a/sbt/src/sbt-test/dependency-management/typelevel/build.sbt b/sbt/src/sbt-test/dependency-management/typelevel/build.sbt new file mode 100644 index 000000000..6a6bacd66 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/typelevel/build.sbt @@ -0,0 +1,3 @@ +scalaOrganization := "org.typelevel" +scalaVersion := "2.11.7" +scalacOptions += "-Xexperimental" diff --git a/sbt/src/sbt-test/dependency-management/typelevel/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/typelevel/src/main/scala/Main.scala new file mode 100644 index 000000000..32ca74bee --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/typelevel/src/main/scala/Main.scala @@ -0,0 +1,8 @@ +import java.io.File +import java.nio.file.Files + +object Main extends App { + val n': 2.type = 2 + + Files.write(new File("output").toPath, "OK".getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/dependency-management/typelevel/test b/sbt/src/sbt-test/dependency-management/typelevel/test new file mode 100644 index 000000000..2182f57b0 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/typelevel/test @@ -0,0 +1,3 @@ +$ delete output +> run +$ exists output diff --git a/sbt/src/sbt-test/dependency-management/url-no-head/build.sbt b/sbt/src/sbt-test/dependency-management/url-no-head/build.sbt new file mode 100644 index 000000000..bba414888 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/url-no-head/build.sbt @@ -0,0 +1,3 @@ +scalaVersion := "2.11.8" + +libraryDependencies += "ccl.northwestern.edu" % "netlogo" % "5.3.1" % "provided" from s"https://github.com/NetLogo/NetLogo/releases/download/5.3.1/NetLogo.jar" diff --git a/sbt/src/sbt-test/dependency-management/url-no-head/src/main/scala/Main.scala b/sbt/src/sbt-test/dependency-management/url-no-head/src/main/scala/Main.scala new file mode 100644 index 000000000..d75f66eaf --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/url-no-head/src/main/scala/Main.scala @@ -0,0 +1,11 @@ +import java.io.File +import java.nio.file.Files + +object Main extends App { + // Not using directly the NetLogo 5.x lib, which seems to depend on Scala 2.9 + // Can't find a way to check that NetLogo.jar is in the classpath + // These don't work, even with fork := true: + // assert(Thread.currentThread.getContextClassLoader.getResource("org/nlogo/nvm/Task.class") != null) + // Thread.currentThread.getContextClassLoader.getResource("org/nlogo/nvm/Task.class") + Files.write(new File("output").toPath, "OK".getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/dependency-management/url-no-head/test b/sbt/src/sbt-test/dependency-management/url-no-head/test new file mode 100644 index 000000000..2182f57b0 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/url-no-head/test @@ -0,0 +1,3 @@ +$ delete output +> run +$ exists output diff --git a/sbt/src/sbt-test/dependency-management/version-interval/build.sbt b/sbt/src/sbt-test/dependency-management/version-interval/build.sbt new file mode 100644 index 000000000..efeaf236e --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/version-interval/build.sbt @@ -0,0 +1,35 @@ + +libraryDependencies += "org.json4s" %% "json4s-native" % "[3.3.0,3.5.0)" + + +lazy val actualVersionCheck = taskKey[Unit]("") + +actualVersionCheck := { + + val log = streams.value.log + + val configReport = update.value + .configuration(Compile) + .getOrElse { + sys.error("compile configuration not found in update report") + } + + val modules = configReport + .modules + .map(_.module) + + assert(modules.nonEmpty) + assert(modules.exists(_.name.startsWith("json4s-native"))) + + val wrongModules = modules.filter { m => + val v = m.revision + v.contains("[") || v.contains("]") || v.contains("(") || v.contains(")") + } + + if (wrongModules.nonEmpty) { + log.error("Found unexpected intervals in revisions") + for (m <- wrongModules) + log.error(s" ${m.organization}:${m.name}:${m.revision}") + sys.error("Found intervals in revisions") + } +} diff --git a/sbt/src/sbt-test/dependency-management/version-interval/test b/sbt/src/sbt-test/dependency-management/version-interval/test new file mode 100644 index 000000000..99803d595 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/version-interval/test @@ -0,0 +1 @@ +> actualVersionCheck diff --git a/sbt/src/sbt-test/plugins/dotty/LICENSE b/sbt/src/sbt-test/plugins/dotty/LICENSE new file mode 100644 index 000000000..728844ee3 --- /dev/null +++ b/sbt/src/sbt-test/plugins/dotty/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2015 The dotty-example-project contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/sbt/src/sbt-test/plugins/dotty/README.md b/sbt/src/sbt-test/plugins/dotty/README.md new file mode 100644 index 000000000..e476c5c1d --- /dev/null +++ b/sbt/src/sbt-test/plugins/dotty/README.md @@ -0,0 +1 @@ +Cut-n-pasted from https://github.com/lampepfl/dotty-example-project/tree/a753b14e281bbaa6c69f26298913ad6feba969c7 diff --git a/sbt/src/sbt-test/plugins/dotty/build.sbt b/sbt/src/sbt-test/plugins/dotty/build.sbt new file mode 100644 index 000000000..e38070b5e --- /dev/null +++ b/sbt/src/sbt-test/plugins/dotty/build.sbt @@ -0,0 +1 @@ +scalaVersion := "0.13.0-RC1" diff --git a/sbt/src/sbt-test/plugins/dotty/project/build.properties b/sbt/src/sbt-test/plugins/dotty/project/build.properties new file mode 100644 index 000000000..16dc090c5 --- /dev/null +++ b/sbt/src/sbt-test/plugins/dotty/project/build.properties @@ -0,0 +1,3 @@ +# sbt-coursier scripted tests: required, as we default to sbt 1.0.3, +# but sbt-dotty requires sbt >= 1.2.7 +sbt.version=1.2.7 diff --git a/sbt/src/sbt-test/plugins/dotty/project/plugins.sbt b/sbt/src/sbt-test/plugins/dotty/project/plugins.sbt new file mode 100644 index 000000000..b5de60fc6 --- /dev/null +++ b/sbt/src/sbt-test/plugins/dotty/project/plugins.sbt @@ -0,0 +1 @@ +addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.3.0") diff --git a/sbt/src/sbt-test/plugins/dotty/src/main/scala/Main.scala b/sbt/src/sbt-test/plugins/dotty/src/main/scala/Main.scala new file mode 100644 index 000000000..8a44ae4ef --- /dev/null +++ b/sbt/src/sbt-test/plugins/dotty/src/main/scala/Main.scala @@ -0,0 +1,16 @@ + +object Main { + + def main(args: Array[String]): Unit = { + + runExample("Trait Params")(TraitParams.test) + + } + + private def runExample(name: String)(f: => Unit) = { + println(Console.MAGENTA + s"$name example:" + Console.RESET) + f + println() + } + +} diff --git a/sbt/src/sbt-test/plugins/dotty/src/main/scala/TraitParams.scala b/sbt/src/sbt-test/plugins/dotty/src/main/scala/TraitParams.scala new file mode 100644 index 000000000..5d4409971 --- /dev/null +++ b/sbt/src/sbt-test/plugins/dotty/src/main/scala/TraitParams.scala @@ -0,0 +1,21 @@ +/** + * Trait Parameters: https://dotty.epfl.ch/docs/reference/other-new-features/trait-parameters.html + */ +object TraitParams { + + trait Base(val msg: String) + class A extends Base("Hello") + class B extends Base("Dotty!") + + // Union types only exist in Dotty, so there's no chance that this will accidentally be compiled with Scala 2 + private def printMessages(msgs: (A | B)*) = println(msgs.map(_.msg).mkString(" ")) + + def test: Unit = { + + printMessages(new A, new B) + + // Sanity check the classpath: this won't run if the dotty jar is not present. + val x: Int => Int = z => z + x(1) + } +} diff --git a/sbt/src/sbt-test/plugins/dotty/test b/sbt/src/sbt-test/plugins/dotty/test new file mode 100644 index 000000000..62ea636c1 --- /dev/null +++ b/sbt/src/sbt-test/plugins/dotty/test @@ -0,0 +1 @@ +> run diff --git a/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/build.sbt b/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/build.sbt new file mode 100644 index 000000000..6dcc058c2 --- /dev/null +++ b/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/build.sbt @@ -0,0 +1,2 @@ +scalaVersion := "2.12.2" +enablePlugins(ScalafmtPlugin) diff --git a/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/project/extra.sbt b/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/project/extra.sbt new file mode 100644 index 000000000..4aa3881f4 --- /dev/null +++ b/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/project/extra.sbt @@ -0,0 +1 @@ +addSbtPlugin("com.lucidchart" % "sbt-scalafmt" % "1.15") diff --git a/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/src/main/scala/Main.scala b/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/src/main/scala/Main.scala new file mode 100644 index 000000000..61295349d --- /dev/null +++ b/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/src/main/scala/Main.scala @@ -0,0 +1,6 @@ +import java.io.File +import java.nio.file.Files + +object Main extends App { + Files.write(new File("output").toPath, "OK".getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/test b/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/test new file mode 100644 index 000000000..97b42a4f4 --- /dev/null +++ b/sbt/src/sbt-test/plugins/neo-sbt-scalafmt/test @@ -0,0 +1 @@ +> scalafmt diff --git a/sbt/src/sbt-test/plugins/sbt-native-packager/build.sbt b/sbt/src/sbt-test/plugins/sbt-native-packager/build.sbt new file mode 100644 index 000000000..4c3343012 --- /dev/null +++ b/sbt/src/sbt-test/plugins/sbt-native-packager/build.sbt @@ -0,0 +1,20 @@ +ThisBuild / scalaVersion := "2.12.8" + +name := "hello" +enablePlugins(JavaAppPackaging) + +lazy val check = taskKey[Unit]("") + +check := { + val cmd = "target/universal/stage/bin/hello" + val cmd0 = + if (sys.props("os.name").toLowerCase(java.util.Locale.ROOT).contains("windows")) + cmd + ".bat" + else + cmd + val b = new ProcessBuilder(cmd0) + b.inheritIO() + val p = b.start() + val retCode = p.waitFor() + assert(retCode == 0, s"Command $cmd returned code $retCode") +} diff --git a/sbt/src/sbt-test/plugins/sbt-native-packager/project/plugins.sbt b/sbt/src/sbt-test/plugins/sbt-native-packager/project/plugins.sbt new file mode 100644 index 000000000..44cfb3f47 --- /dev/null +++ b/sbt/src/sbt-test/plugins/sbt-native-packager/project/plugins.sbt @@ -0,0 +1 @@ +addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.3") diff --git a/sbt/src/sbt-test/plugins/sbt-native-packager/src/main/scala/Main.scala b/sbt/src/sbt-test/plugins/sbt-native-packager/src/main/scala/Main.scala new file mode 100644 index 000000000..61295349d --- /dev/null +++ b/sbt/src/sbt-test/plugins/sbt-native-packager/src/main/scala/Main.scala @@ -0,0 +1,6 @@ +import java.io.File +import java.nio.file.Files + +object Main extends App { + Files.write(new File("output").toPath, "OK".getBytes("UTF-8")) +} diff --git a/sbt/src/sbt-test/plugins/sbt-native-packager/test b/sbt/src/sbt-test/plugins/sbt-native-packager/test new file mode 100644 index 000000000..bb563a74f --- /dev/null +++ b/sbt/src/sbt-test/plugins/sbt-native-packager/test @@ -0,0 +1,5 @@ +$ delete output +> stage +> check +$ exists output +$ delete output diff --git a/sbt/src/sbt-test/plugins/scala-js/build.sbt b/sbt/src/sbt-test/plugins/scala-js/build.sbt new file mode 100644 index 000000000..2c43a4b30 --- /dev/null +++ b/sbt/src/sbt-test/plugins/scala-js/build.sbt @@ -0,0 +1,3 @@ +scalaVersion := "2.12.3" +enablePlugins(ScalaJSPlugin) +libraryDependencies += "org.scala-js" %%% "scalajs-java-time" % "0.2.2" diff --git a/sbt/src/sbt-test/plugins/scala-js/project/extra.sbt b/sbt/src/sbt-test/plugins/scala-js/project/extra.sbt new file mode 100644 index 000000000..4f6de4f49 --- /dev/null +++ b/sbt/src/sbt-test/plugins/scala-js/project/extra.sbt @@ -0,0 +1 @@ +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.19") diff --git a/sbt/src/sbt-test/plugins/scala-js/test b/sbt/src/sbt-test/plugins/scala-js/test new file mode 100644 index 000000000..103bd8d2f --- /dev/null +++ b/sbt/src/sbt-test/plugins/scala-js/test @@ -0,0 +1 @@ +> update diff --git a/sbt/src/sbt-test/plugins/unidoc/build.sbt b/sbt/src/sbt-test/plugins/unidoc/build.sbt new file mode 100644 index 000000000..3aa46422f --- /dev/null +++ b/sbt/src/sbt-test/plugins/unidoc/build.sbt @@ -0,0 +1,5 @@ +scalaVersion := "2.12.1" +scalacOptions += "-Xfatal-warnings" // required for the test + +enablePlugins(ScalaUnidocPlugin) +autoAPIMappings := true diff --git a/sbt/src/sbt-test/plugins/unidoc/project/extra.sbt b/sbt/src/sbt-test/plugins/unidoc/project/extra.sbt new file mode 100644 index 000000000..ade7d89a5 --- /dev/null +++ b/sbt/src/sbt-test/plugins/unidoc/project/extra.sbt @@ -0,0 +1 @@ +addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.2") diff --git a/sbt/src/sbt-test/plugins/unidoc/src/main/scala/Foo.scala b/sbt/src/sbt-test/plugins/unidoc/src/main/scala/Foo.scala new file mode 100644 index 000000000..b5ba8323e --- /dev/null +++ b/sbt/src/sbt-test/plugins/unidoc/src/main/scala/Foo.scala @@ -0,0 +1,3 @@ + +/** Default instances for Scala's [[scala.concurrent.Future Future]]. */ +class Foo diff --git a/sbt/src/sbt-test/plugins/unidoc/test b/sbt/src/sbt-test/plugins/unidoc/test new file mode 100644 index 000000000..7439923b4 --- /dev/null +++ b/sbt/src/sbt-test/plugins/unidoc/test @@ -0,0 +1 @@ +> unidoc diff --git a/scripted-sbt-redux/src/main/scala/sbt/scriptedtest/ScriptedTests.scala b/scripted-sbt-redux/src/main/scala/sbt/scriptedtest/ScriptedTests.scala index bc71ce893..a3fb7cf27 100644 --- a/scripted-sbt-redux/src/main/scala/sbt/scriptedtest/ScriptedTests.scala +++ b/scripted-sbt-redux/src/main/scala/sbt/scriptedtest/ScriptedTests.scala @@ -167,94 +167,59 @@ final class ScriptedTests( import RemoteSbtCreatorKind._ val (group, name) = testName s"$group/$name" match { - case "actions/add-alias" => LauncherBased // sbt/Package$ - case "actions/cross-multiproject" => LauncherBased // tbd - case "actions/external-doc" => LauncherBased // sbt/Package$ - case "actions/input-task" => LauncherBased // sbt/Package$ - case "actions/input-task-dyn" => LauncherBased // sbt/Package$ - case "classloader-cache/akka-actor-system" => LauncherBased // sbt/Package$ - case "classloader-cache/jni" => LauncherBased // sbt/Package$ - case "classloader-cache/library-mismatch" => LauncherBased // sbt/Package$ - case "classloader-cache/runtime-layers" => LauncherBased // sbt/Package$ - case "classloader-cache/package-private" => LauncherBased // sbt/Package$ - case "compiler-project/dotty-compiler-plugin" => LauncherBased // sbt/Package$ - case "compiler-project/run-test" => LauncherBased // sbt/Package$ - case "compiler-project/src-dep-plugin" => LauncherBased // sbt/Package$ - case "dependency-management/artifact" => LauncherBased // tbd - case "dependency-management/cache-classifiers" => LauncherBased // tbd - case "dependency-management/cache-local" => LauncherBased // tbd - case "dependency-management/cache-resolver" => LauncherBased // sbt/Package$ - case "dependency-management/cache-update" => LauncherBased // tbd - case "dependency-management/cached-resolution-circular" => LauncherBased // tbd - case "dependency-management/cached-resolution-classifier" => LauncherBased // tbd - case "dependency-management/cached-resolution-configurations" => LauncherBased // tbd - case "dependency-management/cached-resolution-conflicts" => LauncherBased // tbd - case "dependency-management/cached-resolution-exclude" => LauncherBased // tbd - case "dependency-management/cached-resolution-force" => LauncherBased // tbd - case "dependency-management/cached-resolution-interproj" => LauncherBased // tbd - case "dependency-management/cached-resolution-overrides" => LauncherBased // tbd - case "dependency-management/chainresolver" => LauncherBased // tbd - case "dependency-management/circular-dependency" => LauncherBased // tbd - case "dependency-management/classifier" => LauncherBased // tbd - case "dependency-management/default-resolvers" => LauncherBased // tbd - case "dependency-management/deliver-artifacts" => LauncherBased // tbd - case "dependency-management/exclude-transitive" => LauncherBased // tbd - case "dependency-management/extra" => LauncherBased // tbd - case "dependency-management/force" => LauncherBased // tbd - case "dependency-management/info" => LauncherBased // tbd - case "dependency-management/inline-dependencies-a" => LauncherBased // tbd - case "dependency-management/ivy-settings-c" => LauncherBased // sbt/Package$ - case "dependency-management/latest-local-plugin" => LauncherBased // sbt/Package$ - case "dependency-management/metadata-only-resolver" => LauncherBased // tbd - case "dependency-management/no-file-fails-publish" => LauncherBased // tbd - case "dependency-management/override" => LauncherBased // tbd - case "dependency-management/parent-publish" => LauncherBased // sbt/Package$ - case "dependency-management/pom-parent-pom" => LauncherBased // tbd - case "dependency-management/publish-to-maven-local-file" => LauncherBased // sbt/Package$ - case "dependency-management/snapshot-resolution" => LauncherBased // tbd - case "dependency-management/snapshot-local" => LauncherBased // tbd - case "dependency-management/test-artifact" => LauncherBased // sbt/Package$ - case "dependency-management/transitive-version-range" => LauncherBased // tbd - case "dependency-management/update-sbt-classifiers" => LauncherBased // tbd - case "dependency-management/url" => LauncherBased // tbd - case "java/argfile" => LauncherBased // sbt/Package$ - case "java/cross" => LauncherBased // sbt/Package$ - case "java/basic" => LauncherBased // sbt/Package$ - case "java/varargs-main" => LauncherBased // sbt/Package$ - case "package/lazy-name" => LauncherBased // sbt/Package$ - case "package/manifest" => LauncherBased // sbt/Package$ - case "package/resources" => LauncherBased // sbt/Package$ - case "project/Class.forName" => LauncherBased // sbt/Package$ - case "project/binary-plugin" => LauncherBased // sbt/Package$ - case "project/default-settings" => LauncherBased // sbt/Package$ - case "project/extra" => LauncherBased // tbd - case "project/flatten" => LauncherBased // sbt/Package$ - case "project/generated-root-no-publish" => LauncherBased // tbd - case "project/giter8-plugin" => LauncherBased // tbd - case "project/lib" => LauncherBased // sbt/Package$ - case "project/scripted-plugin" => LauncherBased // tbd - case "project/scripted-skip-incompatible" => LauncherBased // sbt/Package$ - case "project/session-update-from-cmd" => LauncherBased // tbd - case "project/transitive-plugins" => LauncherBased // tbd - case "run/awt" => LauncherBased // sbt/Package$ - case "run/classpath" => LauncherBased // sbt/Package$ - case "run/daemon" => LauncherBased // sbt/Package$ - case "run/daemon-exit" => LauncherBased // sbt/Package$ - case "run/error" => LauncherBased // sbt/Package$ - case "run/fork" => LauncherBased // sbt/Package$ - case "run/fork-loader" => LauncherBased // sbt/Package$ - case "run/non-local-main" => LauncherBased // sbt/Package$ - case "run/spawn" => LauncherBased // sbt/Package$ - case "run/spawn-exit" => LauncherBased // sbt/Package$ - case "source-dependencies/binary" => LauncherBased // sbt/Package$ - case "source-dependencies/export-jars" => LauncherBased // sbt/Package$ - case "source-dependencies/implicit-search" => LauncherBased // sbt/Package$ - case "source-dependencies/java-basic" => LauncherBased // sbt/Package$ - case "source-dependencies/less-inter-inv" => LauncherBased // sbt/Package$ - case "source-dependencies/less-inter-inv-java" => LauncherBased // sbt/Package$ - case "source-dependencies/linearization" => LauncherBased // sbt/Package$ - case "source-dependencies/named" => LauncherBased // sbt/Package$ - case "source-dependencies/specialized" => LauncherBased // sbt/Package$ + case "actions/add-alias" => LauncherBased // sbt/Package$ + case "actions/cross-multiproject" => LauncherBased // tbd + case "actions/external-doc" => LauncherBased // sbt/Package$ + case "actions/input-task" => LauncherBased // sbt/Package$ + case "actions/input-task-dyn" => LauncherBased // sbt/Package$ + case "classloader-cache/akka-actor-system" => LauncherBased // sbt/Package$ + case "classloader-cache/jni" => LauncherBased // sbt/Package$ + case "classloader-cache/library-mismatch" => LauncherBased // sbt/Package$ + case "classloader-cache/runtime-layers" => LauncherBased // sbt/Package$ + case "classloader-cache/package-private" => LauncherBased // sbt/Package$ + case "compiler-project/dotty-compiler-plugin" => LauncherBased // sbt/Package$ + case "compiler-project/run-test" => LauncherBased // sbt/Package$ + case "compiler-project/src-dep-plugin" => LauncherBased // sbt/Package$ + case gn if gn.startsWith("dependency-management/") => LauncherBased // sbt/Package$ + case gn if gn.startsWith("plugins/") => LauncherBased // sbt/Package$ + case "java/argfile" => LauncherBased // sbt/Package$ + case "java/cross" => LauncherBased // sbt/Package$ + case "java/basic" => LauncherBased // sbt/Package$ + case "java/varargs-main" => LauncherBased // sbt/Package$ + case "package/lazy-name" => LauncherBased // sbt/Package$ + case "package/manifest" => LauncherBased // sbt/Package$ + case "package/resources" => LauncherBased // sbt/Package$ + case "project/Class.forName" => LauncherBased // sbt/Package$ + case "project/binary-plugin" => LauncherBased // sbt/Package$ + case "project/default-settings" => LauncherBased // sbt/Package$ + case "project/extra" => LauncherBased // tbd + case "project/flatten" => LauncherBased // sbt/Package$ + case "project/generated-root-no-publish" => LauncherBased // tbd + case "project/giter8-plugin" => LauncherBased // tbd + case "project/lib" => LauncherBased // sbt/Package$ + case "project/scripted-plugin" => LauncherBased // tbd + case "project/scripted-skip-incompatible" => LauncherBased // sbt/Package$ + case "project/session-update-from-cmd" => LauncherBased // tbd + case "project/transitive-plugins" => LauncherBased // tbd + case "run/awt" => LauncherBased // sbt/Package$ + case "run/classpath" => LauncherBased // sbt/Package$ + case "run/daemon" => LauncherBased // sbt/Package$ + case "run/daemon-exit" => LauncherBased // sbt/Package$ + case "run/error" => LauncherBased // sbt/Package$ + case "run/fork" => LauncherBased // sbt/Package$ + case "run/fork-loader" => LauncherBased // sbt/Package$ + case "run/non-local-main" => LauncherBased // sbt/Package$ + case "run/spawn" => LauncherBased // sbt/Package$ + case "run/spawn-exit" => LauncherBased // sbt/Package$ + case "source-dependencies/binary" => LauncherBased // sbt/Package$ + case "source-dependencies/export-jars" => LauncherBased // sbt/Package$ + case "source-dependencies/implicit-search" => LauncherBased // sbt/Package$ + case "source-dependencies/java-basic" => LauncherBased // sbt/Package$ + case "source-dependencies/less-inter-inv" => LauncherBased // sbt/Package$ + case "source-dependencies/less-inter-inv-java" => LauncherBased // sbt/Package$ + case "source-dependencies/linearization" => LauncherBased // sbt/Package$ + case "source-dependencies/named" => LauncherBased // sbt/Package$ + case "source-dependencies/specialized" => LauncherBased // sbt/Package$ case "tests/test-cross" => LauncherBased // the sbt metabuild classpath leaks into the test interface classloader in older versions of sbt case _ => RunFromSourceBased