Skip to content

Commit

Permalink
Merge pull request #2960 from scala-steward/update/ammonite-3.0.0-M2-…
Browse files Browse the repository at this point in the history
…9-88291dd8

Update ammonite to 3.0.0-M2-9-88291dd8
  • Loading branch information
Gedochao authored Jun 14, 2024
2 parents 36d5354 + bf1cf11 commit 2662fd5
Show file tree
Hide file tree
Showing 9 changed files with 55 additions and 29 deletions.
15 changes: 10 additions & 5 deletions build.sc
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,12 @@ object dummy extends Module {
trait Amm extends Cross.Module[String] with CrossScalaModule with Bloop.Module {
def crossScalaVersion = crossValue
def skipBloop = true
def ivyDeps = Agg(
Deps.ammonite
)
def ivyDeps = {
val ammoniteDep =
if (crossValue == Scala.scala3Lts) Deps.ammoniteForScala3Lts
else Deps.ammonite
Agg(ammoniteDep)
}
}
object scalafmt extends ScalaModule with Bloop.Module {
def skipBloop = true
Expand Down Expand Up @@ -431,7 +434,8 @@ trait Core extends ScalaCliCrossSbtModule
|
| def jmhVersion = "1.29"
|
| def ammoniteVersion = "${Deps.ammonite.dep.version}"
| def ammoniteVersion = "${Deps.Versions.ammonite}"
| def ammoniteVersionForScala3Lts = "${Deps.Versions.ammoniteForScala3Lts}"
| def millVersion = "${InternalDeps.Versions.mill}"
| def lefouMillwRef = "${InternalDeps.Versions.lefouMillwRef}"
| def maxScalaNativeForMillExport = "${Deps.Versions.maxScalaNativeForMillExport}"
Expand Down Expand Up @@ -797,7 +801,8 @@ trait Cli extends CrossSbtModule with ProtoBuildModule with CliLaunchers
| def scalaJsVersion = "${Scala.scalaJs}"
| def scalaJsCliVersion = "${Scala.scalaJsCli}"
| def scalaNativeVersion = "${Deps.nativeTools.dep.version}"
| def ammoniteVersion = "${Deps.ammonite.dep.version}"
| def ammoniteVersion = "${Deps.Versions.ammonite}"
| def ammoniteVersionForScala3Lts = "${Deps.Versions.ammoniteForScala3Lts}"
| def defaultScalafmtVersion = "${Deps.scalafmtCli.dep.version}"
| def defaultGraalVMJavaVersion = "${deps.graalVmJavaVersion}"
| def defaultGraalVMVersion = "${deps.graalVmVersion}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ object Repl extends ScalaCommand[ReplOptions] {
def ammoniteArtifacts(): Either[BuildException, ReplArtifacts] =
ReplArtifacts.ammonite(
scalaParams,
options.notForBloopOptions.replOptions.ammoniteVersion,
options.notForBloopOptions.replOptions.ammoniteVersion(scalaParams.scalaVersion, logger),
artifacts.userDependencies,
artifacts.extraClassPath,
artifacts.extraSourceJars,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ abstract class ReplTestDefinitions extends ScalaCliSuite with TestScalaVersionAr
"scala.util.Properties.versionNumberString"
else "dotty.tools.dotc.config.Properties.simpleVersionString"

def expectedAmmoniteVersion: String =
def expectedScalaVersionForAmmonite: String =
actualScalaVersion match {
case s
if s.startsWith("2.12") &&
Expand Down Expand Up @@ -62,7 +62,10 @@ abstract class ReplTestDefinitions extends ScalaCliSuite with TestScalaVersionAr
os.proc(TestUtil.cli, "--power", "repl", testExtraOptions, "--ammonite", ammArgs)
.call(cwd = root, stderr = os.Pipe)
val output = res.out.trim()
expect(output == s"Hello from Scala $expectedAmmoniteVersion")
val expectedSv =
if (useMaxAmmoniteScalaVersion) actualMaxAmmoniteScalaVersion
else expectedScalaVersionForAmmonite
expect(output == s"Hello from Scala $expectedSv")
if (useMaxAmmoniteScalaVersion) {
// the maximum Scala version supported by ammonite is being used, so we shouldn't downgrade
val errOutput = res.err.trim()
Expand Down Expand Up @@ -122,8 +125,11 @@ abstract class ReplTestDefinitions extends ScalaCliSuite with TestScalaVersionAr
"--python",
ammArgs
).call(cwd = root, stderr = os.Pipe)
val expectedSv =
if (useMaxAmmoniteScalaVersion) actualMaxAmmoniteScalaVersion
else expectedScalaVersionForAmmonite
val lines = res.out.trim().linesIterator.toVector
expect(lines == Seq(s"Hello from Scala $expectedAmmoniteVersion", "Hello from ScalaPy"))
expect(lines == Seq(s"Hello from Scala $expectedSv", "Hello from ScalaPy"))
if (useMaxAmmoniteScalaVersion)
// the maximum Scala version supported by ammonite is being used, so we shouldn't downgrade
expect(!res.err.trim().contains("not yet supported with this version of Ammonite"))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package scala.cli.integration

class ReplTests3Lts extends ReplTestDefinitions with Test3Lts
class ReplTests3Lts extends ReplTestDefinitions with ReplTests3StableDefinitions with Test3Lts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package scala.cli.integration

trait ReplTests3StableDefinitions { _: ReplTestDefinitions =>
if (!actualScalaVersion.equals(actualMaxAmmoniteScalaVersion)) {
lazy val defaultScalaVersionString =
s" with Scala $actualScalaVersion (the default version, may downgrade)"
test(s"ammonite$defaultScalaVersionString") {
ammoniteTest(useMaxAmmoniteScalaVersion = false)
}

test(s"ammonite scalapy$defaultScalaVersionString") {
ammoniteScalapyTest(useMaxAmmoniteScalaVersion = false)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import java.io.File

import scala.util.Properties

class ReplTestsDefault extends ReplTestDefinitions with TestDefault {
class ReplTestsDefault extends ReplTestDefinitions with ReplTests3StableDefinitions
with TestDefault {
test("as jar") {
val inputs = TestInputs(
os.rel / "CheckCp.scala" ->
Expand Down Expand Up @@ -82,16 +83,4 @@ class ReplTestsDefault extends ReplTestDefinitions with TestDefault {
expect(!output.contains("jvm-index"))
}
}

if (!actualScalaVersion.equals(actualMaxAmmoniteScalaVersion)) {
lazy val defaultScalaVersionString =
s" with Scala $actualScalaVersion (the default version, may downgrade)"
test(s"ammonite$defaultScalaVersionString") {
ammoniteTest(useMaxAmmoniteScalaVersion = false)
}

test(s"ammonite scalapy$defaultScalaVersionString") {
ammoniteScalapyTest(useMaxAmmoniteScalaVersion = false)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package scala.build.options

import scala.build.Logger
import scala.build.internal.Constants

final case class ReplOptions(
Expand All @@ -9,8 +10,15 @@ final case class ReplOptions(
) {
def useAmmonite: Boolean =
useAmmoniteOpt.getOrElse(false)
def ammoniteVersion: String =
ammoniteVersionOpt.getOrElse(Constants.ammoniteVersion)
def ammoniteVersion(scalaVersion: String, logger: Logger): String =
ammoniteVersionOpt.getOrElse {
if scalaVersion.startsWith("3.3") then {
val ammoniteVersionForLts = Constants.ammoniteVersionForScala3Lts
logger.debug(s"Using the default Ammonite version for Scala 3 LTS: $ammoniteVersionForLts")
ammoniteVersionForLts
}
else Constants.ammoniteVersion
}
}

object ReplOptions {
Expand Down
9 changes: 6 additions & 3 deletions project/deps.sc
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ object Scala {

def maxAmmoniteScala212Version = scala212
def maxAmmoniteScala213Version = scala213
def maxAmmoniteScala3Version = scala3Lts
def maxAmmoniteScala3Version = scala3Next
lazy val listMaxAmmoniteScalaVersion =
Seq(maxAmmoniteScala212Version, maxAmmoniteScala213Version, maxAmmoniteScala3Version)
lazy val listAllAmmonite = {
Expand Down Expand Up @@ -88,6 +88,8 @@ object InternalDeps {

object Deps {
object Versions {
def ammonite = "3.0.0-M2-9-88291dd8"
def ammoniteForScala3Lts = "3.0.0-M2-8-ba4429a2"
// jni-utils version may need to be sync-ed when bumping the coursier version
def coursierDefault = "2.1.10"
def coursier = coursierDefault
Expand All @@ -112,8 +114,9 @@ object Deps {
// DO NOT hardcode a Scala version in this dependency string
// This dependency is used to ensure that Ammonite is available for Scala versions
// that Scala CLI supports.
def ammonite = ivy"com.lihaoyi:::ammonite:3.0.0-M2-8-ba4429a2"
def asm = ivy"org.ow2.asm:asm:9.7"
def ammonite = ivy"com.lihaoyi:::ammonite:${Versions.ammonite}"
def ammoniteForScala3Lts = ivy"com.lihaoyi:::ammonite:${Versions.ammoniteForScala3Lts}"
def asm = ivy"org.ow2.asm:asm:9.7"
// Force using of 2.13 - is there a better way?
def bloopConfig = ivy"ch.epfl.scala:bloop-config_2.13:2.0.0"
.exclude(("com.github.plokhotnyuk.jsoniter-scala", "jsoniter-scala-core_2.13"))
Expand Down
2 changes: 1 addition & 1 deletion website/docs/reference/cli-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -1182,7 +1182,7 @@ Use Ammonite (instead of the default Scala REPL)

Aliases: `--ammonite-ver`

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

### `--ammonite-arg`

Expand Down

0 comments on commit 2662fd5

Please sign in to comment.