Open
Description
Bug description
Running sbt bloopInstall
on a Scala.js 1.0.1 project generates a Bloop config that has platform.kind
set to none
, regardless of the module kind in the sbt config.
Reproduction
I created a simple project with a small build.sbt
config:
lazy val root = project
.in(file("."))
.enablePlugins(ScalaJSPlugin)
.settings(
scalaJSLinkerConfig ~= { _.withModuleKind(ModuleKind.CommonJSModule) },
scalaJSUseMainModuleInitializer := true
)
The project/plugins.sbt
file adds the Scala.js 1.0.1 sbt plugin:
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.0.1")
Running sbt bloopInstall
produces .bloop/root.json
with the following platform
field:
"platform": {
"name": "js",
"config": {
"version": "1.0.1",
"mode": "debug",
"kind": "none",
"emitSourceMaps": false,
"jsdom": false,
"toolchain": [
]
},
"mainClass": [
]
},
.bloop/root.json
{
"version": "1.4.0",
"project": {
"name": "root",
"directory": "/home/maxime/code/tmp",
"workspaceDir": "/home/maxime/code/tmp",
"sources": [
"/home/maxime/code/tmp/src/main/scala-2.12",
"/home/maxime/code/tmp/src/main/scala",
"/home/maxime/code/tmp/src/main/java",
"/home/maxime/code/tmp/target/scala-2.12/src_managed/main"
],
"dependencies": [
],
"classpath": [
"/home/maxime/.sbt/boot/scala-2.12.10/lib/scala-library.jar",
"/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-library_2.12/1.0.1/scalajs-library_2.12-1.0.1.jar"
],
"out": "/home/maxime/code/tmp/.bloop/root",
"classesDir": "/home/maxime/code/tmp/.bloop/root/scala-2.12/classes",
"resources": [
"/home/maxime/code/tmp/src/main/resources",
"/home/maxime/code/tmp/target/scala-2.12/resource_managed/main"
],
"scala": {
"organization": "org.scala-lang",
"name": "scala-compiler",
"version": "2.12.10",
"options": [
"-Xplugin:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-compiler_2.12.10/1.0.1/scalajs-compiler_2.12.10-1.0.1.jar"
],
"jars": [
"/home/maxime/.sbt/boot/scala-2.12.10/lib/jline.jar",
"/home/maxime/.sbt/boot/scala-2.12.10/lib/jansi.jar",
"/home/maxime/.sbt/boot/scala-2.12.10/lib/scala-xml_2.12.jar",
"/home/maxime/.sbt/boot/scala-2.12.10/lib/scala-reflect.jar",
"/home/maxime/.sbt/boot/scala-2.12.10/lib/scala-library.jar",
"/home/maxime/.sbt/boot/scala-2.12.10/lib/scala-compiler.jar"
],
"analysis": "/home/maxime/code/tmp/target/streams/compile/bloopAnalysisOut/_global/streams/inc_compile_2.12.zip",
"setup": {
"order": "mixed",
"addLibraryToBootClasspath": true,
"addCompilerToClasspath": false,
"addExtraJarsToClasspath": false,
"manageBootClasspath": true,
"filterLibraryFromClasspath": true
}
},
"java": {
"options": [
]
},
"test": {
"frameworks": [
{
"names": [
"org.scalacheck.ScalaCheckFramework"
]
},
{
"names": [
"org.specs2.runner.Specs2Framework",
"org.specs2.runner.SpecsFramework"
]
},
{
"names": [
"org.specs.runner.SpecsFramework"
]
},
{
"names": [
"org.scalatest.tools.Framework",
"org.scalatest.tools.ScalaTestFramework"
]
},
{
"names": [
"com.novocode.junit.JUnitFramework"
]
}
],
"options": {
"excludes": [
],
"arguments": [
]
}
},
"platform": {
"name": "js",
"config": {
"version": "1.0.1",
"mode": "debug",
"kind": "none",
"emitSourceMaps": false,
"jsdom": false,
"toolchain": [
]
},
"mainClass": [
]
},
"resolution": {
"modules": [
{
"organization": "org.scala-lang",
"name": "scala-library",
"version": "2.12.10",
"configurations": "default",
"artifacts": [
{
"name": "scala-library",
"path": "/home/maxime/.sbt/boot/scala-2.12.10/lib/scala-library.jar"
}
]
},
{
"organization": "org.scala-js",
"name": "scalajs-library_2.12",
"version": "1.0.1",
"configurations": "default",
"artifacts": [
{
"name": "scalajs-library_2.12",
"path": "/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-library_2.12/1.0.1/scalajs-library_2.12-1.0.1.jar"
}
]
},
{
"organization": "org.scala-lang",
"name": "scala-library",
"version": "2.12.10",
"configurations": "optional",
"artifacts": [
{
"name": "scala-library",
"path": "/home/maxime/.sbt/boot/scala-2.12.10/lib/scala-library.jar"
}
]
}
]
},
"tags": [
"library"
]
}
}
Cause
I believe the following function is the root cause for the bug:
The scalaJSModuleKind
setting has been deprecated since Scala.js 1.0.0 in favor of scalaJSLinkerConfig
, so the function always returns None
when the module kind isn't set in scalaJSModuleKind
.
Note that the emitSourceMaps
setting is quite likely to be affected by this issue too.