Skip to content

Commit dd17c7e

Browse files
authored
Merge pull request #1912 from lwronski/scalajs-cli
Add support for Scala.js 1.13.0 and allow to use newer Scala.js version in older scala-cli
2 parents e1d3042 + 429d355 commit dd17c7e

File tree

13 files changed

+53
-64
lines changed

13 files changed

+53
-64
lines changed

build.sc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,6 @@ trait Core extends ScalaCliSbtModule with ScalaCliPublishModule with HasTests
369369
| def scalajsEnvJsdomNodejsVersion = "${Deps.scalaJsEnvJsdomNodejs.dep.version}"
370370
| def scalaNativeVersion = "${Deps.nativeTools.dep.version}"
371371
|
372-
| def scalaJsCliVersion = "${InternalDeps.Versions.scalaJsCli}"
373-
|
374372
| def testRunnerOrganization = "$testRunnerOrganization"
375373
| def testRunnerModuleName = "${`test-runner`(Scala.runnerScala3).artifactName()}"
376374
| def testRunnerVersion = "${`test-runner`(Scala.runnerScala3).publishVersion()}"
@@ -709,7 +707,6 @@ trait Cli extends SbtModule with ProtoBuildModule with CliLaunchers
709707
|object Constants {
710708
| def defaultScalaVersion = "${Scala.defaultUser}"
711709
| def scalaJsVersion = "${Scala.scalaJs}"
712-
| def scalaJsCliVersion = "${InternalDeps.Versions.scalaJsCli}"
713710
| def scalaNativeVersion = "${Deps.nativeTools.dep.version}"
714711
| def ammoniteVersion = "${Deps.ammonite.dep.version}"
715712
| def defaultScalafmtVersion = "${Deps.scalafmtCli.dep.version}"

modules/cli/src/main/scala/scala/cli/commands/shared/ScalaJsOptions.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ final case class ScalaJsOptions(
8080
@Hidden
8181
jsLinkerPath: Option[String] = None,
8282
@Group(HelpGroup.ScalaJs.toString)
83-
@HelpMessage(s"Scala.js CLI version to use for linking (${Constants.scalaJsCliVersion} by default).")
83+
@HelpMessage(s"Scala.js CLI version to use for linking (${Constants.scalaJsVersion} by default).")
8484
@ValueDescription("version")
8585
@Tag(tags.implementation)
8686
@Hidden

modules/cli/src/main/scala/scala/cli/commands/shared/SharedOptions.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ final case class SharedOptions(
232232
linkerPath = jsLinkerPath
233233
.filter(_.trim.nonEmpty)
234234
.map(os.Path(_, Os.pwd)),
235+
scalaJsVersion = jsVersion.map(_.trim).filter(_.nonEmpty),
235236
scalaJsCliVersion = jsCliVersion.map(_.trim).filter(_.nonEmpty),
236237
javaArgs = jsCliJavaArg,
237238
useJvm = jsCliOnJvm.map {

modules/cli/src/main/scala/scala/cli/internal/ScalaJsLinker.scala

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,8 @@ object ScalaJsLinker {
3636
case None =>
3737
val scalaJsCliVersion = options.finalScalaJsCliVersion
3838
val scalaJsCliDep = {
39-
val mod =
40-
if (scalaJsCliVersion.contains("-sc"))
41-
if (Version(scalaJsCliVersion) < Version("1.1.2-sc1"))
42-
mod"io.github.alexarchambault.tmp:scalajs-cli_2.13"
43-
else
44-
mod"io.github.alexarchambault.tmp:scalajscli-${scalaJsVersion}_2.13"
45-
else
46-
mod"org.scala-js:scalajs-cli_2.13"
47-
dependency.Dependency(mod, scalaJsCliVersion)
39+
val mod = mod"org.virtuslab.scala-cli:scalajscli_2.13"
40+
dependency.Dependency(mod, s"$scalaJsCliVersion+")
4841
}
4942

5043
val forcedVersions = Seq(
@@ -82,11 +75,11 @@ object ScalaJsLinker {
8275
command.flatMap(_.value)
8376

8477
case Left(osArch) =>
85-
val useLatest = scalaJsCliVersion == "latest"
78+
val useLatest = scalaJsVersion == "latest"
8679
val ext = if (Properties.isWin) ".zip" else ".gz"
8780
val tag = if (useLatest) "launchers" else s"v$scalaJsCliVersion"
8881
val url =
89-
s"https://github.com/scala-cli/scala-js-cli-native-image/releases/download/$tag/scala-js-ld-$scalaJsVersion-$osArch$ext"
82+
s"https://github.com/virtusLab/scala-js-cli/releases/download/$tag/scala-js-ld-$osArch$ext"
9083
val params = ExternalBinaryParams(
9184
url,
9285
useLatest,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,10 @@ abstract class ExportJsonTestDefinitions(val scalaVersionOpt: Option[String])
193193
val fileContents = readJson(root / "dest" / "export.json")
194194

195195
expect(fileContents ==
196-
"""{
196+
s"""{
197197
|"scalaVersion": "3.1.3",
198198
|"platform": "JS",
199-
|"scalaJsVersion": "1.12.0",
199+
|"scalaJsVersion": "${Constants.scalaJsVersion}",
200200
|"jsEsVersion":"es2015",
201201
|"scopes": {
202202
| "main": {

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

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -169,18 +169,13 @@ object Artifacts {
169169
fetched.fullDetailedArtifacts.collect { case (_, _, _, Some(f)) => os.Path(f, Os.pwd) }
170170

171171
val scalaJsCliDependency =
172-
scalaArtifactsParams.scalaJsCliVersion.map { version =>
173-
val scalaJsVersion =
174-
scalaArtifactsParams.scalaJsVersion.getOrElse(Constants.scalaJsVersion)
175-
val mod =
176-
if (version.contains("-sc"))
177-
Module(
178-
Organization("io.github.alexarchambault.tmp"),
179-
ModuleName(s"scalajscli-${scalaJsVersion}_2.13"),
180-
Map.empty
181-
)
182-
else cmod"org.scala-js:scalajs-cli_2.13"
183-
Seq(coursier.Dependency(mod, version))
172+
scalaArtifactsParams.scalaJsCliVersion.map { scalaJsCliVersion =>
173+
val mod = Module(
174+
Organization("org.virtuslab.scala-cli"),
175+
ModuleName(s"scalajscli_2.13"),
176+
Map.empty
177+
)
178+
Seq(coursier.Dependency(mod, s"$scalaJsCliVersion+"))
184179
}
185180

186181
val fetchedScalaJsCli = scalaJsCliDependency match {

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,9 @@ final case class BuildOptions(
344344
scalaJsVersion =
345345
if (platform.value == Platform.JS) Some(scalaJsOptions.finalVersion) else None,
346346
scalaJsCliVersion =
347-
if (platform.value == Platform.JS) Some(Constants.scalaJsCliVersion) else None,
347+
if (platform.value == Platform.JS)
348+
Some(notForBloopOptions.scalaJsLinkerOptions.finalScalaJsCliVersion)
349+
else None,
348350
scalaNativeCliVersion =
349351
if (platform.value == Platform.Native) Some(scalaNativeOptions.finalVersion) else None,
350352
addScalapy =

modules/options/src/main/scala/scala/build/options/scalajs/ScalaJsLinkerOptions.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ final case class ScalaJsLinkerOptions(
77
javaArgs: Seq[String] = Nil,
88
/** If right, use JVM, if left, use the value as architecture */
99
useJvm: Option[Either[String, Unit]] = None,
10+
scalaJsVersion: Option[String] = None,
1011
scalaJsCliVersion: Option[String] = None,
1112
linkerPath: Option[os.Path] = None
1213
) {
13-
def finalScalaJsCliVersion = scalaJsCliVersion.getOrElse {
14-
Constants.scalaJsCliVersion
14+
def finalScalaJsCliVersion = scalaJsCliVersion.orElse(scalaJsVersion).getOrElse {
15+
Constants.scalaJsVersion
1516
}
1617

1718
/** If right, use JVM, if left, use the value as architecture */

project/deps.sc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ object Scala {
1414
val mainVersions = Seq(scala3, scala213)
1515
val runnerScalaVersions = runnerScala3 +: allScala2
1616

17-
def scalaJs = "1.12.0"
17+
def scalaJs = "1.13.0"
1818

1919
def listAll: Seq[String] = {
2020
def patchVer(sv: String): Int =
@@ -74,7 +74,6 @@ object InternalDeps {
7474
object Versions {
7575
def mill = os.read(os.pwd / ".mill-version").trim
7676
def lefouMillwRef = "166bcdf5741de8569e0630e18c3b2ef7e252cd96"
77-
def scalaJsCli = "1.1.3-sc1"
7877
}
7978
}
8079

website/docs/guides/scala-js.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,12 @@ In the future, the Scala CLI will be able to support any version of Scala.js ind
179179

180180
The table below lists the last supported version of Scala.js in Scala CLI. If you want to use newer Scala.js, update scala-cli.
181181

182-
| Scala CLI versions | Scala.js |
183-
|----------------------|:------------------:|
184-
| 0.0.9 | 1.7.1 |
185-
| 0.1.0 - 0.1.2 | 1.8.0 |
186-
| 0.1.3 | 1.9.0 |
187-
| 0.1.4 - 0.1.8 | 1.10.0 |
188-
| 0.1.9 - 0.1.17 | 1.10.1 |
189-
| 0.1.18 - current | 1.12.0 |
182+
| Scala CLI versions | Scala.js |
183+
|--------------------|:--------:|
184+
| 0.0.9 | 1.7.1 |
185+
| 0.1.0 - 0.1.2 | 1.8.0 |
186+
| 0.1.3 | 1.9.0 |
187+
| 0.1.4 - 0.1.8 | 1.10.0 |
188+
| 0.1.9 - 0.1.17 | 1.10.1 |
189+
| 0.1.18 - 0.2.0 | 1.12.0 |
190+
| 0.2.1 - current | 1.13.0 |

website/docs/reference/cli-options.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
11851185

11861186
### `--js-version`
11871187

1188-
The Scala.js version (1.12.0 by default).
1188+
The Scala.js version (1.13.0 by default).
11891189

11901190
### `--js-mode`
11911191

@@ -1245,7 +1245,7 @@ Path to the Scala.js linker
12451245
### `--js-cli-version`
12461246

12471247
[Internal]
1248-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
1248+
Scala.js CLI version to use for linking (1.13.0 by default).
12491249

12501250
### `--js-cli-java-arg`
12511251

website/docs/reference/scala-command/cli-options.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
658658

659659
`SHOULD have` per Scala Runner specification
660660

661-
The Scala.js version (1.12.0 by default).
661+
The Scala.js version (1.13.0 by default).
662662

663663
### `--js-mode`
664664

@@ -746,7 +746,7 @@ Path to the Scala.js linker
746746

747747
`IMPLEMENTATION specific` per Scala Runner specification
748748

749-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
749+
Scala.js CLI version to use for linking (1.13.0 by default).
750750

751751
### `--js-cli-java-arg`
752752

website/docs/reference/scala-command/runner-specification.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
118118

119119
**--js-version**
120120

121-
The Scala.js version (1.12.0 by default).
121+
The Scala.js version (1.13.0 by default).
122122

123123
**--js-mode**
124124

@@ -358,7 +358,7 @@ Path to the Scala.js linker
358358

359359
**--js-cli-version**
360360

361-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
361+
Scala.js CLI version to use for linking (1.13.0 by default).
362362

363363
**--js-cli-java-arg**
364364

@@ -815,7 +815,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
815815

816816
**--js-version**
817817

818-
The Scala.js version (1.12.0 by default).
818+
The Scala.js version (1.13.0 by default).
819819

820820
**--js-mode**
821821

@@ -1039,7 +1039,7 @@ Path to the Scala.js linker
10391039

10401040
**--js-cli-version**
10411041

1042-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
1042+
Scala.js CLI version to use for linking (1.13.0 by default).
10431043

10441044
**--js-cli-java-arg**
10451045

@@ -1336,7 +1336,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
13361336

13371337
**--js-version**
13381338

1339-
The Scala.js version (1.12.0 by default).
1339+
The Scala.js version (1.13.0 by default).
13401340

13411341
**--js-mode**
13421342

@@ -1566,7 +1566,7 @@ Path to the Scala.js linker
15661566

15671567
**--js-cli-version**
15681568

1569-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
1569+
Scala.js CLI version to use for linking (1.13.0 by default).
15701570

15711571
**--js-cli-java-arg**
15721572

@@ -1883,7 +1883,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
18831883

18841884
**--js-version**
18851885

1886-
The Scala.js version (1.12.0 by default).
1886+
The Scala.js version (1.13.0 by default).
18871887

18881888
**--js-mode**
18891889

@@ -2123,7 +2123,7 @@ Path to the Scala.js linker
21232123

21242124
**--js-cli-version**
21252125

2126-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
2126+
Scala.js CLI version to use for linking (1.13.0 by default).
21272127

21282128
**--js-cli-java-arg**
21292129

@@ -2449,7 +2449,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
24492449

24502450
**--js-version**
24512451

2452-
The Scala.js version (1.12.0 by default).
2452+
The Scala.js version (1.13.0 by default).
24532453

24542454
**--js-mode**
24552455

@@ -2689,7 +2689,7 @@ Path to the Scala.js linker
26892689

26902690
**--js-cli-version**
26912691

2692-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
2692+
Scala.js CLI version to use for linking (1.13.0 by default).
26932693

26942694
**--js-cli-java-arg**
26952695

@@ -2991,7 +2991,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
29912991

29922992
**--js-version**
29932993

2994-
The Scala.js version (1.12.0 by default).
2994+
The Scala.js version (1.13.0 by default).
29952995

29962996
**--js-mode**
29972997

@@ -3213,7 +3213,7 @@ Path to the Scala.js linker
32133213

32143214
**--js-cli-version**
32153215

3216-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
3216+
Scala.js CLI version to use for linking (1.13.0 by default).
32173217

32183218
**--js-cli-java-arg**
32193219

@@ -3570,7 +3570,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
35703570

35713571
**--js-version**
35723572

3573-
The Scala.js version (1.12.0 by default).
3573+
The Scala.js version (1.13.0 by default).
35743574

35753575
**--js-mode**
35763576

@@ -3812,7 +3812,7 @@ Path to the Scala.js linker
38123812

38133813
**--js-cli-version**
38143814

3815-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
3815+
Scala.js CLI version to use for linking (1.13.0 by default).
38163816

38173817
**--js-cli-java-arg**
38183818

@@ -4188,7 +4188,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
41884188

41894189
**--js-version**
41904190

4191-
The Scala.js version (1.12.0 by default).
4191+
The Scala.js version (1.13.0 by default).
41924192

41934193
**--js-mode**
41944194

@@ -4406,7 +4406,7 @@ Path to the Scala.js linker
44064406

44074407
**--js-cli-version**
44084408

4409-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
4409+
Scala.js CLI version to use for linking (1.13.0 by default).
44104410

44114411
**--js-cli-java-arg**
44124412

@@ -5001,7 +5001,7 @@ Enable Scala.js. To show more options for Scala.js pass `--help-js`
50015001

50025002
**--js-version**
50035003

5004-
The Scala.js version (1.12.0 by default).
5004+
The Scala.js version (1.13.0 by default).
50055005

50065006
**--js-mode**
50075007

@@ -5219,7 +5219,7 @@ Path to the Scala.js linker
52195219

52205220
**--js-cli-version**
52215221

5222-
Scala.js CLI version to use for linking (1.1.3-sc1 by default).
5222+
Scala.js CLI version to use for linking (1.13.0 by default).
52235223

52245224
**--js-cli-java-arg**
52255225

0 commit comments

Comments
 (0)