Skip to content

Commit b3c2d16

Browse files
authored
Merge pull request #112 from olafurpg/misc-updates
Miscellaneous cli improvements
2 parents 9840cad + 3beeabc commit b3c2d16

File tree

21 files changed

+367
-152
lines changed

21 files changed

+367
-152
lines changed

.drone.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ pipeline:
88
- /drone/.coursier-cache
99
- /drone/.sbt
1010
- /drone/.git
11+
when:
12+
event: [push, pull_request, tag, deployment]
1113

1214
tests:
1315
image: scalaplatform/scala:0.6
@@ -20,7 +22,7 @@ pipeline:
2022
- git log | head -n 20
2123
- ./scalafmt --test
2224
- ./bin/copy_cache.sh /drone /root
23-
- /usr/bin/sbt $TEST
25+
- /usr/bin/sbt $CI_TEST
2426
- ./bin/before_cache.sh
2527
- ./bin/copy_cache.sh /root /drone
2628
notify:
@@ -47,9 +49,10 @@ pipeline:
4749
- /drone/.git
4850
matrix:
4951
include:
50-
- TEST: ci-fast
51-
SCALA_VERSION: 2.11.8
52+
- CI_TEST: ci-fast
53+
CI_SCALA_VERSION: 2.11.8
5254
# See https://github.com/scalacenter/scalafix/issues/101
53-
# - TEST: ci-fast
54-
# SCALA_VERSION: 2.12.1
55-
- TEST: ci-slow
55+
# - CI_TEST: ci-fast
56+
# CI_SCALA_VERSION: 2.12.1
57+
- CI_TEST: ci-slow
58+
CI_SCALA_VERSION: 2.11.8

.drone.yml.sig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgIyBGZXRjaCBmb2xkZXJzIGZyb20gZGlzdHJpYnV0ZWQgY2FjaGUKICBzZnRwX2NhY2hlX3Jlc3RvcmU6CiAgICBpbWFnZTogcGx1Z2lucy9zZnRwLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvLml2eTIKICAgICAgLSAvZHJvbmUvLmNvdXJzaWVyLWNhY2hlCiAgICAgIC0gL2Ryb25lLy5zYnQKICAgICAgLSAvZHJvbmUvLmdpdAoKICB0ZXN0czoKICAgIGltYWdlOiBzY2FsYXBsYXRmb3JtL3NjYWxhOjAuNgogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gQ09VUlNJRVJfQ0FDSEU9L2Ryb25lL2NhY2hlL2NvdXJzaWVyCiAgICB2b2x1bWVzOgogICAgICAtIC9wbGF0Zm9ybTova2V5cwogICAgY29tbWFuZHM6CiAgICAgIC0gZ2l0IGxvZyB8IGhlYWQgLW4gMjAKICAgICAgLSAuL3NjYWxhZm10IC0tdGVzdAogICAgICAtIC4vYmluL2NvcHlfY2FjaGUuc2ggL2Ryb25lIC9yb290CiAgICAgIC0gL3Vzci9iaW4vc2J0ICRURVNUCiAgICAgIC0gLi9iaW4vYmVmb3JlX2NhY2hlLnNoCiAgICAgIC0gLi9iaW4vY29weV9jYWNoZS5zaCAvcm9vdCAvZHJvbmUKICBub3RpZnk6CiAgICBpbWFnZTogZHJpbGxzdGVyL2Ryb25lLWVtYWlsCiAgICBob3N0OiBzbXRwLm1haWxndW4ub3JnCiAgICB1c2VybmFtZTogbm9yZXBseUBkcm9uZS5nZWlyc3Nvbi5jb20KICAgIHBhc3N3b3JkOiAke01BSUxHVU5fUEFTU1dPUkR9CiAgICBmcm9tOiBub3JlcGx5QGRyb25lLmdlaXJzc29uLmNvbQogICAgcmVjaXBpZW50czoKICAgICAgLSBvbGFmdXJwZ0BnbWFpbC5jb20KICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogW21hc3Rlcl0KICAgICAgc3RhdHVzOiBbY2hhbmdlZCwgZmFpbHVyZV0KCiAgIyBTYXZlIGZvbGRlcnMgaW4gZGlzdHJpYnV0ZWQgY2FjaGUKICBzZnRwX2NhY2hlX3JlYnVpbGQ6CiAgICBpbWFnZTogcGx1Z2lucy9zZnRwLWNhY2hlCiAgICByZWJ1aWxkOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvLml2eTIKICAgICAgLSAvZHJvbmUvLmNvdXJzaWVyLWNhY2hlCiAgICAgIC0gL2Ryb25lLy5zYnQKICAgICAgLSAvZHJvbmUvLmdpdAptYXRyaXg6CiAgaW5jbHVkZToKICAgIC0gVEVTVDogY2ktZmFzdAogICAgICBTQ0FMQV9WRVJTSU9OOiAyLjExLjgKICAgICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYWNlbnRlci9zY2FsYWZpeC9pc3N1ZXMvMTAxCiAgICAjIC0gVEVTVDogY2ktZmFzdAogICAgIyAgIFNDQUxBX1ZFUlNJT046IDIuMTIuMQogICAgLSBURVNUOiBjaS1zbG93Cg.UsXt-SEnpsyKykJFpgdtbWNM8pRsngd2X5jShelSyEY
1+
eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgIyBGZXRjaCBmb2xkZXJzIGZyb20gZGlzdHJpYnV0ZWQgY2FjaGUKICBzZnRwX2NhY2hlX3Jlc3RvcmU6CiAgICBpbWFnZTogcGx1Z2lucy9zZnRwLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvLml2eTIKICAgICAgLSAvZHJvbmUvLmNvdXJzaWVyLWNhY2hlCiAgICAgIC0gL2Ryb25lLy5zYnQKICAgICAgLSAvZHJvbmUvLmdpdAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFtwdXNoLCBwdWxsX3JlcXVlc3QsIHRhZywgZGVwbG95bWVudF0KCiAgdGVzdHM6CiAgICBpbWFnZTogc2NhbGFwbGF0Zm9ybS9zY2FsYTowLjYKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICAtIENPVVJTSUVSX0NBQ0hFPS9kcm9uZS9jYWNoZS9jb3Vyc2llcgogICAgdm9sdW1lczoKICAgICAgLSAvcGxhdGZvcm06L2tleXMKICAgIGNvbW1hbmRzOgogICAgICAtIGdpdCBsb2cgfCBoZWFkIC1uIDIwCiAgICAgIC0gLi9zY2FsYWZtdCAtLXRlc3QKICAgICAgLSAuL2Jpbi9jb3B5X2NhY2hlLnNoIC9kcm9uZSAvcm9vdAogICAgICAtIC91c3IvYmluL3NidCAkQ0lfVEVTVAogICAgICAtIC4vYmluL2JlZm9yZV9jYWNoZS5zaAogICAgICAtIC4vYmluL2NvcHlfY2FjaGUuc2ggL3Jvb3QgL2Ryb25lCiAgbm90aWZ5OgogICAgaW1hZ2U6IGRyaWxsc3Rlci9kcm9uZS1lbWFpbAogICAgaG9zdDogc210cC5tYWlsZ3VuLm9yZwogICAgdXNlcm5hbWU6IG5vcmVwbHlAZHJvbmUuZ2VpcnNzb24uY29tCiAgICBwYXNzd29yZDogJHtNQUlMR1VOX1BBU1NXT1JEfQogICAgZnJvbTogbm9yZXBseUBkcm9uZS5nZWlyc3Nvbi5jb20KICAgIHJlY2lwaWVudHM6CiAgICAgIC0gb2xhZnVycGdAZ21haWwuY29tCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IFttYXN0ZXJdCiAgICAgIHN0YXR1czogW2NoYW5nZWQsIGZhaWx1cmVdCgogICMgU2F2ZSBmb2xkZXJzIGluIGRpc3RyaWJ1dGVkIGNhY2hlCiAgc2Z0cF9jYWNoZV9yZWJ1aWxkOgogICAgaW1hZ2U6IHBsdWdpbnMvc2Z0cC1jYWNoZQogICAgcmVidWlsZDogdHJ1ZQogICAgbW91bnQ6CiAgICAgIC0gL2Ryb25lLy5pdnkyCiAgICAgIC0gL2Ryb25lLy5jb3Vyc2llci1jYWNoZQogICAgICAtIC9kcm9uZS8uc2J0CiAgICAgIC0gL2Ryb25lLy5naXQKbWF0cml4OgogIGluY2x1ZGU6CiAgICAtIENJX1RFU1Q6IGNpLWZhc3QKICAgICAgQ0lfU0NBTEFfVkVSU0lPTjogMi4xMS44CiAgICAjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2NhbGFjZW50ZXIvc2NhbGFmaXgvaXNzdWVzLzEwMQogICAgIyAtIENJX1RFU1Q6IGNpLWZhc3QKICAgICMgICBDSV9TQ0FMQV9WRVJTSU9OOiAyLjEyLjEKICAgIC0gQ0lfVEVTVDogY2ktc2xvdwogICAgICBDSV9TQ0FMQV9WRVJTSU9OOiAyLjExLjgK.kALWXJUcY8qVvXdeTWwbRhT82ykVHGFHNHM_mZXzyJE

build.sbt

Lines changed: 79 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,7 @@ import sbt.ScriptedPlugin._
44
import Dependencies._
55
organization in ThisBuild := "ch.epfl.scala"
66

7-
lazy val crossVersions = Seq(
8-
"2.11.8",
9-
"2.12.1"
10-
)
11-
12-
lazy val buildSettings = Seq(
13-
)
14-
15-
lazy val jvmOptions = Seq(
16-
"-Xss4m"
17-
)
7+
lazy val crossVersions = Seq(scala211, scala212)
188

199
lazy val compilerOptions = Seq(
2010
"-deprecation",
@@ -43,13 +33,13 @@ commands += Command.command("release") { s =>
4333

4434
commands += Command.command("ci-fast") { s =>
4535
"clean" ::
46-
"testQuick" ::
36+
s"plz $ciScalaVersion testQuick" ::
4737
s
4838
}
4939

5040
commands += Command.command("ci-slow") { s =>
5141
"very publishLocal" ::
52-
"wow 2.11.8 scalafix-tests/test" ::
42+
s"wow ${ciScalaVersion.get} scalafix-tests/test" ::
5343
"very scalafix-sbt/scripted" ::
5444
s
5545
}
@@ -97,6 +87,8 @@ lazy val buildInfoSettings: Seq[Def.Setting[_]] = Seq(
9787
"stableVersion" -> "0.3.1",
9888
"scalameta" -> scalametaV,
9989
scalaVersion,
90+
"scala211" -> scala211,
91+
"scala212" -> scala212,
10092
sbtVersion
10193
),
10294
buildInfoPackage := "scalafix",
@@ -112,40 +104,22 @@ lazy val allSettings = List(
112104
libraryDependencies += scalatest % Test,
113105
testOptions in Test += Tests.Argument("-oD"),
114106
assemblyJarName in assembly := "scalafix.jar",
115-
scalaVersion := sys.env.getOrElse("SCALA_VERSION", "2.11.8"),
107+
scalaVersion := ciScalaVersion.getOrElse(scala211),
116108
crossScalaVersions := crossVersions,
117109
updateOptions := updateOptions.value.withCachedResolution(true)
118110
) ++ publishSettings
119111

120-
lazy val `scalafix-root` = project
121-
.in(file("."))
122-
.settings(
123-
moduleName := "scalafix",
124-
allSettings,
125-
noPublish,
126-
gitPushTag := {
127-
val tag = s"v${version.value}"
128-
assert(!tag.endsWith("SNAPSHOT"))
129-
import sys.process._
130-
Seq("git", "tag", "-a", tag, "-m", tag).!!
131-
Seq("git", "push", "--tags").!!
132-
},
133-
initialCommands in console :=
134-
"""
135-
|import scala.meta._
136-
|import scalafix._
137-
""".stripMargin
138-
)
139-
.aggregate(
140-
`scalafix-nsc`,
141-
`scalafix-tests`,
142-
`scalafix-testutils`,
143-
core,
144-
cli,
145-
readme,
146-
`scalafix-sbt`
147-
)
148-
.dependsOn(core)
112+
allSettings
113+
114+
noPublish
115+
116+
gitPushTag := {
117+
val tag = s"v${version.value}"
118+
assert(!tag.endsWith("SNAPSHOT"))
119+
import sys.process._
120+
Seq("git", "tag", "-a", tag, "-m", tag).!!
121+
Seq("git", "push", "--tags").!!
122+
}
149123

150124
// settings to projects using @metaconfig.ConfigReader annotation.
151125
lazy val metaconfigSettings: Seq[Def.Setting[_]] = Seq(
@@ -161,14 +135,15 @@ lazy val core = project
161135
allSettings,
162136
buildInfoSettings,
163137
metaconfigSettings,
138+
isFullCrossVersion,
164139
moduleName := "scalafix-core",
165140
dependencyOverrides += scalameta,
166141
libraryDependencies ++= Seq(
167142
"com.typesafe" % "config" % "1.3.1",
168143
"com.lihaoyi" %% "sourcecode" % "0.1.3",
169144
metaconfig,
170145
scalameta,
171-
scalahost(scalaVersion.value),
146+
scalahost,
172147
"org.scala-lang" % "scala-reflect" % scalaVersion.value
173148
)
174149
)
@@ -178,9 +153,10 @@ lazy val core = project
178153
lazy val `scalafix-nsc` = project
179154
.settings(
180155
allSettings,
156+
isFullCrossVersion,
181157
libraryDependencies ++= Seq(
182158
"org.scala-lang" % "scala-compiler" % scalaVersion.value,
183-
scalahostNsc(scalaVersion.value),
159+
scalahostNsc,
184160
ammonite % Test,
185161
// integration property tests
186162
"org.typelevel" %% "catalysts-platform" % "0.0.5" % Test,
@@ -228,28 +204,28 @@ lazy val `scalafix-nsc` = project
228204
lazy val cli = project
229205
.settings(
230206
allSettings,
231-
packSettings,
232-
libraryDependencies ++= Seq(
233-
// NB: The Mirror has an undeclared dependency on the scalahost-nsc package.
234-
scalahostNsc(scalaVersion.value)
235-
),
207+
isFullCrossVersion,
236208
moduleName := "scalafix-cli",
237-
packJvmOpts := Map(
238-
"scalafix" -> jvmOptions,
239-
"scalafix_ng_server" -> jvmOptions
240-
),
209+
fork.in(Test, test) := true,
210+
baseDirectory.in(test) := file("."),
211+
javaOptions.in(test) +=
212+
s"-Dscalafix.scalahost.pluginpath=${scalahostNscPluginPath.value}",
241213
mainClass in assembly := Some("scalafix.cli.Cli"),
242-
packMain := Map(
243-
"scalafix" -> "scalafix.cli.Cli",
244-
"scalafix_ng_server" -> "com.martiansoftware.nailgun.NGServer"
245-
),
246214
libraryDependencies ++= Seq(
247215
"com.github.scopt" %% "scopt" % "3.5.0",
248216
"com.github.alexarchambault" %% "case-app" % "1.1.3",
249217
"com.martiansoftware" % "nailgun-server" % "0.9.1"
250218
)
251219
)
252220
.dependsOn(core, `scalafix-testutils` % Test)
221+
lazy val fatcli = project
222+
.settings(
223+
allSettings,
224+
isFullCrossVersion,
225+
moduleName := "scalafix-fatcli",
226+
libraryDependencies += scalahostNsc
227+
)
228+
.dependsOn(cli)
253229

254230
lazy val publishedArtifacts = Seq(
255231
publishLocal in `scalafix-nsc`,
@@ -264,8 +240,20 @@ lazy val `scalafix-sbt` = project
264240
sbtPlugin := true,
265241
// Doesn't work because we need to publish 2.11 and 2.12.
266242
// scripted := scripted.dependsOn(publishedArtifacts: _*).evaluated,
267-
scalaVersion := "2.10.6",
268-
crossScalaVersions := Seq("2.10.6"),
243+
testQuick := {
244+
RunSbtCommand(
245+
s"; very publishLocal " +
246+
"; very scalafix-sbt/scripted sbt-scalafix/config"
247+
)(state.value)
248+
},
249+
test := {
250+
RunSbtCommand(
251+
"; very publishLocal " +
252+
"; very scalafix-sbt/scripted"
253+
)(state.value)
254+
},
255+
scalaVersion := scala210,
256+
crossScalaVersions := Seq(scala210),
269257
moduleName := "sbt-scalafix",
270258
scriptedLaunchOpts ++= Seq(
271259
"-Dplugin.version=" + version.value,
@@ -290,7 +278,7 @@ lazy val `scalafix-tests` = project
290278
.settings(
291279
allSettings,
292280
noPublish,
293-
testQuick := {},
281+
testQuick := {}, // these tests are slow.
294282
parallelExecution in Test := true,
295283
libraryDependencies ++= Seq(
296284
ammonite
@@ -344,3 +332,33 @@ def exposePaths(projectName: String,
344332
}
345333
)
346334
}
335+
336+
lazy val isFullCrossVersion = Seq(
337+
crossVersion := CrossVersion.full
338+
)
339+
340+
lazy val scalahostNscPluginPath = Def.task {
341+
val files = update
342+
.in(dummyScalahostProject)
343+
.value
344+
.allFiles
345+
val path = files.find { file =>
346+
val path = file.getAbsolutePath
347+
path.endsWith(s"scalahost-nsc_${scalaVersion.value}.jar")
348+
}.get
349+
path.getAbsolutePath
350+
}
351+
352+
// sbt makes it hard to do simple stuff like get the jar of a dependency.
353+
lazy val dummyScalahostProject = project
354+
.in(file("target/dummy"))
355+
.settings(
356+
allSettings,
357+
description := "Just a project that has scalahost-nsc on the classpath.",
358+
libraryDependencies += scalahostNsc
359+
)
360+
361+
lazy val ciScalaVersion = sys.env.get("CI_SCALA_VERSION")
362+
lazy val scala210 = "2.10.6"
363+
lazy val scala211 = "2.11.8"
364+
lazy val scala212 = "2.12.1"

0 commit comments

Comments
 (0)