Skip to content

Commit 2662fd5

Browse files
authored
Merge pull request #2960 from scala-steward/update/ammonite-3.0.0-M2-9-88291dd8
Update ammonite to 3.0.0-M2-9-88291dd8
2 parents 36d5354 + bf1cf11 commit 2662fd5

File tree

9 files changed

+55
-29
lines changed

9 files changed

+55
-29
lines changed

build.sc

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,12 @@ object dummy extends Module {
225225
trait Amm extends Cross.Module[String] with CrossScalaModule with Bloop.Module {
226226
def crossScalaVersion = crossValue
227227
def skipBloop = true
228-
def ivyDeps = Agg(
229-
Deps.ammonite
230-
)
228+
def ivyDeps = {
229+
val ammoniteDep =
230+
if (crossValue == Scala.scala3Lts) Deps.ammoniteForScala3Lts
231+
else Deps.ammonite
232+
Agg(ammoniteDep)
233+
}
231234
}
232235
object scalafmt extends ScalaModule with Bloop.Module {
233236
def skipBloop = true
@@ -431,7 +434,8 @@ trait Core extends ScalaCliCrossSbtModule
431434
|
432435
| def jmhVersion = "1.29"
433436
|
434-
| def ammoniteVersion = "${Deps.ammonite.dep.version}"
437+
| def ammoniteVersion = "${Deps.Versions.ammonite}"
438+
| def ammoniteVersionForScala3Lts = "${Deps.Versions.ammoniteForScala3Lts}"
435439
| def millVersion = "${InternalDeps.Versions.mill}"
436440
| def lefouMillwRef = "${InternalDeps.Versions.lefouMillwRef}"
437441
| def maxScalaNativeForMillExport = "${Deps.Versions.maxScalaNativeForMillExport}"
@@ -797,7 +801,8 @@ trait Cli extends CrossSbtModule with ProtoBuildModule with CliLaunchers
797801
| def scalaJsVersion = "${Scala.scalaJs}"
798802
| def scalaJsCliVersion = "${Scala.scalaJsCli}"
799803
| def scalaNativeVersion = "${Deps.nativeTools.dep.version}"
800-
| def ammoniteVersion = "${Deps.ammonite.dep.version}"
804+
| def ammoniteVersion = "${Deps.Versions.ammonite}"
805+
| def ammoniteVersionForScala3Lts = "${Deps.Versions.ammoniteForScala3Lts}"
801806
| def defaultScalafmtVersion = "${Deps.scalafmtCli.dep.version}"
802807
| def defaultGraalVMJavaVersion = "${deps.graalVmJavaVersion}"
803808
| def defaultGraalVMVersion = "${deps.graalVmVersion}"

modules/cli/src/main/scala/scala/cli/commands/repl/Repl.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ object Repl extends ScalaCommand[ReplOptions] {
426426
def ammoniteArtifacts(): Either[BuildException, ReplArtifacts] =
427427
ReplArtifacts.ammonite(
428428
scalaParams,
429-
options.notForBloopOptions.replOptions.ammoniteVersion,
429+
options.notForBloopOptions.replOptions.ammoniteVersion(scalaParams.scalaVersion, logger),
430430
artifacts.userDependencies,
431431
artifacts.extraClassPath,
432432
artifacts.extraSourceJars,

modules/integration/src/test/scala/scala/cli/integration/ReplTestDefinitions.scala

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ abstract class ReplTestDefinitions extends ScalaCliSuite with TestScalaVersionAr
1313
"scala.util.Properties.versionNumberString"
1414
else "dotty.tools.dotc.config.Properties.simpleVersionString"
1515

16-
def expectedAmmoniteVersion: String =
16+
def expectedScalaVersionForAmmonite: String =
1717
actualScalaVersion match {
1818
case s
1919
if s.startsWith("2.12") &&
@@ -62,7 +62,10 @@ abstract class ReplTestDefinitions extends ScalaCliSuite with TestScalaVersionAr
6262
os.proc(TestUtil.cli, "--power", "repl", testExtraOptions, "--ammonite", ammArgs)
6363
.call(cwd = root, stderr = os.Pipe)
6464
val output = res.out.trim()
65-
expect(output == s"Hello from Scala $expectedAmmoniteVersion")
65+
val expectedSv =
66+
if (useMaxAmmoniteScalaVersion) actualMaxAmmoniteScalaVersion
67+
else expectedScalaVersionForAmmonite
68+
expect(output == s"Hello from Scala $expectedSv")
6669
if (useMaxAmmoniteScalaVersion) {
6770
// the maximum Scala version supported by ammonite is being used, so we shouldn't downgrade
6871
val errOutput = res.err.trim()
@@ -122,8 +125,11 @@ abstract class ReplTestDefinitions extends ScalaCliSuite with TestScalaVersionAr
122125
"--python",
123126
ammArgs
124127
).call(cwd = root, stderr = os.Pipe)
128+
val expectedSv =
129+
if (useMaxAmmoniteScalaVersion) actualMaxAmmoniteScalaVersion
130+
else expectedScalaVersionForAmmonite
125131
val lines = res.out.trim().linesIterator.toVector
126-
expect(lines == Seq(s"Hello from Scala $expectedAmmoniteVersion", "Hello from ScalaPy"))
132+
expect(lines == Seq(s"Hello from Scala $expectedSv", "Hello from ScalaPy"))
127133
if (useMaxAmmoniteScalaVersion)
128134
// the maximum Scala version supported by ammonite is being used, so we shouldn't downgrade
129135
expect(!res.err.trim().contains("not yet supported with this version of Ammonite"))
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package scala.cli.integration
22

3-
class ReplTests3Lts extends ReplTestDefinitions with Test3Lts
3+
class ReplTests3Lts extends ReplTestDefinitions with ReplTests3StableDefinitions with Test3Lts
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package scala.cli.integration
2+
3+
trait ReplTests3StableDefinitions { _: ReplTestDefinitions =>
4+
if (!actualScalaVersion.equals(actualMaxAmmoniteScalaVersion)) {
5+
lazy val defaultScalaVersionString =
6+
s" with Scala $actualScalaVersion (the default version, may downgrade)"
7+
test(s"ammonite$defaultScalaVersionString") {
8+
ammoniteTest(useMaxAmmoniteScalaVersion = false)
9+
}
10+
11+
test(s"ammonite scalapy$defaultScalaVersionString") {
12+
ammoniteScalapyTest(useMaxAmmoniteScalaVersion = false)
13+
}
14+
}
15+
}

modules/integration/src/test/scala/scala/cli/integration/ReplTestsDefault.scala

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import java.io.File
66

77
import scala.util.Properties
88

9-
class ReplTestsDefault extends ReplTestDefinitions with TestDefault {
9+
class ReplTestsDefault extends ReplTestDefinitions with ReplTests3StableDefinitions
10+
with TestDefault {
1011
test("as jar") {
1112
val inputs = TestInputs(
1213
os.rel / "CheckCp.scala" ->
@@ -82,16 +83,4 @@ class ReplTestsDefault extends ReplTestDefinitions with TestDefault {
8283
expect(!output.contains("jvm-index"))
8384
}
8485
}
85-
86-
if (!actualScalaVersion.equals(actualMaxAmmoniteScalaVersion)) {
87-
lazy val defaultScalaVersionString =
88-
s" with Scala $actualScalaVersion (the default version, may downgrade)"
89-
test(s"ammonite$defaultScalaVersionString") {
90-
ammoniteTest(useMaxAmmoniteScalaVersion = false)
91-
}
92-
93-
test(s"ammonite scalapy$defaultScalaVersionString") {
94-
ammoniteScalapyTest(useMaxAmmoniteScalaVersion = false)
95-
}
96-
}
9786
}

modules/options/src/main/scala/scala/build/options/ReplOptions.scala

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package scala.build.options
22

3+
import scala.build.Logger
34
import scala.build.internal.Constants
45

56
final case class ReplOptions(
@@ -9,8 +10,15 @@ final case class ReplOptions(
910
) {
1011
def useAmmonite: Boolean =
1112
useAmmoniteOpt.getOrElse(false)
12-
def ammoniteVersion: String =
13-
ammoniteVersionOpt.getOrElse(Constants.ammoniteVersion)
13+
def ammoniteVersion(scalaVersion: String, logger: Logger): String =
14+
ammoniteVersionOpt.getOrElse {
15+
if scalaVersion.startsWith("3.3") then {
16+
val ammoniteVersionForLts = Constants.ammoniteVersionForScala3Lts
17+
logger.debug(s"Using the default Ammonite version for Scala 3 LTS: $ammoniteVersionForLts")
18+
ammoniteVersionForLts
19+
}
20+
else Constants.ammoniteVersion
21+
}
1422
}
1523

1624
object ReplOptions {

project/deps.sc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ object Scala {
4848

4949
def maxAmmoniteScala212Version = scala212
5050
def maxAmmoniteScala213Version = scala213
51-
def maxAmmoniteScala3Version = scala3Lts
51+
def maxAmmoniteScala3Version = scala3Next
5252
lazy val listMaxAmmoniteScalaVersion =
5353
Seq(maxAmmoniteScala212Version, maxAmmoniteScala213Version, maxAmmoniteScala3Version)
5454
lazy val listAllAmmonite = {
@@ -88,6 +88,8 @@ object InternalDeps {
8888

8989
object Deps {
9090
object Versions {
91+
def ammonite = "3.0.0-M2-9-88291dd8"
92+
def ammoniteForScala3Lts = "3.0.0-M2-8-ba4429a2"
9193
// jni-utils version may need to be sync-ed when bumping the coursier version
9294
def coursierDefault = "2.1.10"
9395
def coursier = coursierDefault
@@ -112,8 +114,9 @@ object Deps {
112114
// DO NOT hardcode a Scala version in this dependency string
113115
// This dependency is used to ensure that Ammonite is available for Scala versions
114116
// that Scala CLI supports.
115-
def ammonite = ivy"com.lihaoyi:::ammonite:3.0.0-M2-8-ba4429a2"
116-
def asm = ivy"org.ow2.asm:asm:9.7"
117+
def ammonite = ivy"com.lihaoyi:::ammonite:${Versions.ammonite}"
118+
def ammoniteForScala3Lts = ivy"com.lihaoyi:::ammonite:${Versions.ammoniteForScala3Lts}"
119+
def asm = ivy"org.ow2.asm:asm:9.7"
117120
// Force using of 2.13 - is there a better way?
118121
def bloopConfig = ivy"ch.epfl.scala:bloop-config_2.13:2.0.0"
119122
.exclude(("com.github.plokhotnyuk.jsoniter-scala", "jsoniter-scala-core_2.13"))

website/docs/reference/cli-options.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1182,7 +1182,7 @@ Use Ammonite (instead of the default Scala REPL)
11821182

11831183
Aliases: `--ammonite-ver`
11841184

1185-
Set the Ammonite version (3.0.0-M2-8-ba4429a2 by default)
1185+
Set the Ammonite version (3.0.0-M2-9-88291dd8 by default)
11861186

11871187
### `--ammonite-arg`
11881188

0 commit comments

Comments
 (0)