Skip to content

Commit c452e9d

Browse files
authored
Merge pull request #4283 from Gedochao/maintenance/drop-ammonite
Drop Ammonite support
1 parent ea68a9a commit c452e9d

26 files changed

Lines changed: 63 additions & 880 deletions

File tree

.github/workflows/ci.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1717,9 +1717,6 @@ jobs:
17171717
- name: Check native-image config format
17181718
if: env.SHOULD_RUN == 'true'
17191719
run: ./mill -i __.checkNativeImageConfFormat
1720-
- name: Check Ammonite availability
1721-
if: env.SHOULD_RUN == 'true'
1722-
run: ./mill -i 'dummy.amm[_].resolvedRunMvnDeps'
17231720
- name: Check for cross Scala version conflicts
17241721
if: env.SHOULD_RUN == 'true'
17251722
run: .github/scripts/check-cross-version-deps.sc

build.mill

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -266,19 +266,7 @@ trait GenerateReferenceDoc extends CrossSbtModule
266266
}
267267

268268
object dummy extends LocatedInModules {
269-
// dummy projects to get scala steward updates for Ammonite and scalafmt, whose
270-
// versions are used in the fmt and repl commands, and ensure Ammonite is available
271-
// for all Scala versions we support.
272-
object amm extends Cross[Amm](Scala.listMaxAmmoniteScalaVersion)
273-
trait Amm extends Cross.Module[String] with CrossScalaModule {
274-
override def crossScalaVersion: String = crossValue
275-
override def mvnDeps: T[Seq[Dep]] = {
276-
val ammoniteDep =
277-
if (crossValue == Scala.scala3Lts) Deps.ammoniteForScala3Lts
278-
else Deps.ammonite
279-
Seq(ammoniteDep)
280-
}
281-
}
269+
// dummy project to get scala-steward updates for scalafmt, whose version is used in the fmt command
282270
object scalafmt extends ScalaModule {
283271
override def scalaVersion: T[String] = Scala.defaultInternal
284272
override def mvnDeps: T[Seq[Dep]] = Seq(
@@ -516,8 +504,6 @@ trait Core extends ScalaCliCrossSbtModule
516504
| def jmhCoreModule = "${Deps.jmhCore.dep.module.name.value}"
517505
| def jmhGeneratorBytecodeModule = "${Deps.jmhGeneratorBytecode.dep.module.name.value}"
518506
|
519-
| def ammoniteVersion = "${Deps.Versions.ammonite}"
520-
| def ammoniteVersionForScala3Lts = "${Deps.Versions.ammoniteForScala3Lts}"
521507
| def millVersion = "${BuildInfo.millVersion}"
522508
| def maxScalaNativeForMillExport = "${Deps.Versions.maxScalaNativeForMillExport}"
523509
|
@@ -858,8 +844,6 @@ trait Cli extends CrossSbtModule with ProtoBuildModule with CliLaunchers
858844
| def pythonInterfaceVersion = "${Deps.pythonInterface.dep.versionConstraint.asString}"
859845
| def launcherTypeResourcePath = "${launcherTypeResourcePath.toString}"
860846
| def defaultFilesResourcePath = "$defaultFilesResourcePath"
861-
| def maxAmmoniteScala3Version = "${Scala.maxAmmoniteScala3Version}"
862-
| def maxAmmoniteScala3LtsVersion = "${Scala.maxAmmoniteScala3LtsVersion}"
863847
|}
864848
|""".stripMargin
865849
if (!os.isFile(dest) || os.read(dest) != code)
@@ -881,8 +865,6 @@ trait Cli extends CrossSbtModule with ProtoBuildModule with CliLaunchers
881865
| def scalaJsVersion = "${Scala.scalaJs}"
882866
| def scalaJsCliVersion = "${Scala.scalaJsCli}"
883867
| def scalaNativeVersion = "${Deps.nativeTools.dep.versionConstraint.asString}"
884-
| def ammoniteVersion = "${Deps.Versions.ammonite}"
885-
| def ammoniteVersionForScala3Lts = "${Deps.Versions.ammoniteForScala3Lts}"
886868
| def defaultScalafmtVersion = "${Deps.scalafmtCli.dep.versionConstraint.asString}"
887869
| def defaultGraalVMJavaVersion = "${deps.graalVmJavaVersion}"
888870
| def defaultGraalVMVersion = "${deps.graalVmCommunityVersion}"
@@ -1095,10 +1077,6 @@ trait CliIntegration extends SbtModule
10951077
.mkString(", ")})
10961078
| def scala38MinJavaVersion = ${Java.minimumScala38Java}
10971079
| def defaultScalafmtVersion = "${Deps.scalafmtCli.dep.versionConstraint.asString}"
1098-
| def maxAmmoniteScala212Version = "${Scala.maxAmmoniteScala212Version}"
1099-
| def maxAmmoniteScala213Version = "${Scala.maxAmmoniteScala213Version}"
1100-
| def maxAmmoniteScala3Version = "${Scala.maxAmmoniteScala3Version}"
1101-
| def maxAmmoniteScala3LtsVersion = "${Scala.maxAmmoniteScala3LtsVersion}"
11021080
| def legacyScala3Versions = Seq(${Scala.legacyScala3Versions.map(p =>
11031081
s"\"$p\""
11041082
).mkString(", ")})
@@ -1108,7 +1086,6 @@ trait CliIntegration extends SbtModule
11081086
| def scalaNativeVersion04 = "${Deps.Versions.scalaNative04}"
11091087
| def scalaNativeVersion05 = "${Deps.Versions.scalaNative05}"
11101088
| def semanticDbJavacPluginVersion = "${Deps.semanticDbJavac.dep.versionConstraint.asString}"
1111-
| def ammoniteVersion = "${Deps.ammonite.dep.versionConstraint.asString}"
11121089
| def defaultGraalVMJavaVersion = "${deps.graalVmJavaVersion}"
11131090
| def defaultGraalVMVersion = "${deps.graalVmCommunityVersion}"
11141091
| def runnerScala30LegacyVersion = "${Cli.runnerScala30LegacyVersion}"

modules/build/src/main/scala/scala/build/ReplArtifacts.scala

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -31,58 +31,6 @@ final case class ReplArtifacts(
3131
}
3232

3333
object ReplArtifacts {
34-
// TODO In order to isolate more Ammonite dependencies, we'd need to get two class paths:
35-
// - a shared one, with ammonite-repl-api, ammonite-compiler, and dependencies
36-
// - an Ammonite-specific one, with the other ammonite JARs
37-
// Then, use the coursier-bootstrap library to generate a launcher creating to class loaders,
38-
// with each of those class paths, and run Ammonite with this launcher.
39-
// This requires to change this line in Ammonite, https://github.com/com-lihaoyi/Ammonite/blob/0f0d597f04e62e86cbf76d3bd16deb6965331470/amm/src/main/scala/ammonite/Main.scala#L99,
40-
// to
41-
// val contextClassLoader = classOf[ammonite.repl.api.ReplAPI].getClassLoader
42-
// so that only the first loader is exposed to users in Ammonite.
43-
def ammonite(
44-
scalaParams: ScalaParameters,
45-
ammoniteVersion: String,
46-
dependencies: Seq[AnyDependency],
47-
extraClassPath: Seq[os.Path],
48-
extraSourceJars: Seq[os.Path],
49-
extraRepositories: Seq[Repository],
50-
logger: Logger,
51-
cache: FileCache[Task],
52-
addScalapy: Option[String]
53-
): Either[BuildException, ReplArtifacts] = either {
54-
val scalapyDeps =
55-
addScalapy.map(ver => dep"${Artifacts.scalaPyOrganization(ver)}::scalapy-core::$ver").toSeq
56-
val allDeps = dependencies ++ Seq(dep"com.lihaoyi:::ammonite:$ammoniteVersion") ++ scalapyDeps
57-
val replArtifacts = Artifacts.artifacts(
58-
allDeps.map(Positioned.none),
59-
extraRepositories,
60-
Some(scalaParams),
61-
logger,
62-
cache.withMessage(s"Downloading Ammonite $ammoniteVersion")
63-
)
64-
val replSourceArtifacts = Artifacts.artifacts(
65-
allDeps.map(Positioned.none),
66-
extraRepositories,
67-
Some(scalaParams),
68-
logger,
69-
cache.withMessage(s"Downloading Ammonite $ammoniteVersion sources"),
70-
classifiersOpt = Some(Set("sources"))
71-
)
72-
ReplArtifacts(
73-
replArtifacts = value(replArtifacts) ++ value(replSourceArtifacts),
74-
depArtifacts =
75-
Nil, // amm does not support a -cp option, deps are passed directly to Ammonite cp
76-
extraClassPath = extraClassPath,
77-
extraSourceJars = extraSourceJars,
78-
replMainClass = "ammonite.Main",
79-
replJavaOpts = Nil,
80-
addSourceJars = true,
81-
includeExtraCpOnReplCp =
82-
true // extra cp & source jars have to be passed directly to Ammonite cp
83-
)
84-
}
85-
8634
def default(
8735
scalaParams: ScalaParameters,
8836
dependencies: Seq[AnyDependency],

modules/build/src/test/scala/scala/build/tests/ReplArtifactsTests.scala

Lines changed: 0 additions & 45 deletions
This file was deleted.

modules/build/src/test/scala/scala/build/tests/SourcesTests.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ class SourcesTests extends TestUtil.ScalaCliBuildSuite {
133133
test("dependencies in .scala - using URL with query parameters") {
134134
val testInputs = TestInputs(
135135
os.rel / "something.scala" ->
136-
"""| //> using file http://github.com/VirtusLab/scala-cli/blob/main/modules/dummy/amm/src/main/scala/AmmDummy.scala?version=3
136+
"""| //> using file http://github.com/VirtusLab/scala-cli/blob/main/modules/core/src/main/scala/scala/build/internals/Name.scala?version=3
137137
|
138138
|object Main {
139139
|}
@@ -159,7 +159,7 @@ class SourcesTests extends TestUtil.ScalaCliBuildSuite {
159159

160160
expect(sources.paths.length == 1)
161161
expect(sources.inMemory.length == 1)
162-
expect(sources.inMemory.head.generatedRelPath.last == "AmmDummy.scala")
162+
expect(sources.inMemory.head.generatedRelPath.last == "Name.scala")
163163
}
164164
}
165165

0 commit comments

Comments
 (0)