Skip to content

Commit 224f094

Browse files
yadavan88Gedochao
andauthored
Add scala-cli version to the BuildInfo (#3617)
* Add scala-cli version to the BuildInfo * Update modules/options/src/main/scala/scala/build/info/BuildInfo.scala Co-authored-by: Piotr Chabelski <[email protected]> * Fixed tests for BuildInfo * Fixed test for scala-cli version in buildInfo * Fixed test for scala-cli version in buildInfo * fixed test in ci * ref doc updated * fixed test in ci * Fixed tests in CI --------- Co-authored-by: Piotr Chabelski <[email protected]>
1 parent 50868ed commit 224f094

File tree

5 files changed

+33
-6
lines changed

5 files changed

+33
-6
lines changed

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ class SourceGeneratorTests extends TestUtil.ScalaCliBuildSuite {
4949
.replaceAll(
5050
"ivy:file:[^\"]*\\.ivy2/local[^\"]*",
5151
"ivy:file:.../.ivy2/local/"
52-
).linesWithSeparators
52+
)
53+
.replaceAll(
54+
"val scalaCliVersion = Some\\(\"[^\"]*\"\\)",
55+
"val scalaCliVersion = Some\\(\"1.1.1-SNAPSHOT\"\\)"
56+
)
57+
.linesWithSeparators
5358
.filterNot(_.stripLeading().startsWith("/**"))
5459
.mkString
5560

@@ -126,6 +131,7 @@ class SourceGeneratorTests extends TestUtil.ScalaCliBuildSuite {
126131
| val scalaNativeVersion = None
127132
| val mainClass = Some("Main")
128133
| val projectVersion = Some("1.0.0")
134+
| val scalaCliVersion = Some("1.1.1-SNAPSHOT")
129135
|
130136
| object Main {
131137
| val sources = Seq("${root / "main.scala"}")
@@ -204,6 +210,7 @@ class SourceGeneratorTests extends TestUtil.ScalaCliBuildSuite {
204210
| val scalaNativeVersion = Some("0.4.6")
205211
| val mainClass = Some("Main")
206212
| val projectVersion = None
213+
| val scalaCliVersion = Some("1.1.1-SNAPSHOT")
207214
|
208215
| object Main {
209216
| val sources = Seq("${root / "main.scala"}")
@@ -281,6 +288,7 @@ class SourceGeneratorTests extends TestUtil.ScalaCliBuildSuite {
281288
| val scalaNativeVersion = None
282289
| val mainClass = Some("Main")
283290
| val projectVersion = None
291+
| val scalaCliVersion = Some("1.1.1-SNAPSHOT")
284292
|
285293
| object Main {
286294
| val sources = Seq("${root / "main.scala"}")
@@ -355,6 +363,7 @@ class SourceGeneratorTests extends TestUtil.ScalaCliBuildSuite {
355363
| val scalaNativeVersion = None
356364
| val mainClass = Some("Main")
357365
| val projectVersion = None
366+
| val scalaCliVersion = Some("1.1.1-SNAPSHOT")
358367
|
359368
| object Main {
360369
| val sources = Seq("${root / "main.scala"}")

modules/generate-reference-doc/src/main/scala/scala/cli/doc/GenerateReferenceDoc.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,8 @@ object GenerateReferenceDoc extends CaseApp[InternalDocOptions] {
575575
jsEsVersion = None,
576576
scalaNativeVersion = None,
577577
mainClass = Some("Main"),
578-
projectVersion = None
578+
projectVersion = None,
579+
scalaCliVersion = Some("1.7.0")
579580
)
580581
.withScope("main", mainScopedBuildInfo)
581582
.withScope("test", testScopedBuildInfo)

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ abstract class ExportJsonTestDefinitions extends ScalaCliSuite with TestScalaVer
1818
"ivy:file:[^\"]*\\.ivy2/local[^\"]*",
1919
"ivy:file:.../.ivy2/local/"
2020
)
21+
.replaceAll(
22+
"\"scalaCliVersion\":(\"[^\"]*\")",
23+
"\"scalaCliVersion\":\"1.1.1-SNAPSHOT\""
24+
)
2125

2226
private def withEscapedBackslashes(s: os.Path): String =
2327
s.toString.replaceAll("\\\\", "\\\\\\\\")
@@ -71,6 +75,7 @@ abstract class ExportJsonTestDefinitions extends ScalaCliSuite with TestScalaVer
7175
| ]
7276
| }
7377
|]]
78+
|,"scalaCliVersion":"1.1.1-SNAPSHOT"
7479
|}
7580
|""".replaceAll("\\s|\\|", ""))
7681
}
@@ -172,6 +177,7 @@ abstract class ExportJsonTestDefinitions extends ScalaCliSuite with TestScalaVer
172177
| "customJarsDecls":["${withEscapedBackslashes(root / "TEST.jar")}"]
173178
| }
174179
|]]
180+
|,"scalaCliVersion":"1.1.1-SNAPSHOT"
175181
|}
176182
|""".replaceAll("\\s|\\|", ""))
177183
}
@@ -248,7 +254,7 @@ abstract class ExportJsonTestDefinitions extends ScalaCliSuite with TestScalaVer
248254
| "ivy:file:.../.ivy2/local/"
249255
| ]
250256
| }
251-
|]]
257+
|]],"scalaCliVersion":"1.1.1-SNAPSHOT"
252258
|}
253259
|""".replaceAll("\\s|\\|", ""))
254260

modules/options/src/main/scala/scala/build/info/BuildInfo.scala

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ final case class BuildInfo(
1515
jsEsVersion: Option[String] = None,
1616
scalaNativeVersion: Option[String] = None,
1717
mainClass: Option[String] = None,
18-
scopes: Map[String, ScopedBuildInfo] = Map.empty
18+
scopes: Map[String, ScopedBuildInfo] = Map.empty,
19+
scalaCliVersion: Option[String] = None
1920
) {
2021
def +(other: BuildInfo): BuildInfo =
2122
BuildInfo.monoid.orElse(this, other)
@@ -64,7 +65,11 @@ final case class BuildInfo(
6465
Seq(
6566
"/** Project version */",
6667
"val projectVersion ="
67-
) -> projectVersion
68+
) -> projectVersion,
69+
Seq(
70+
"/** Scala CLI version used for the compilation */",
71+
"val scalaCliVersion ="
72+
) -> scalaCliVersion
6873
).flatMap { case (Seq(scaladoc, prefix), opt) =>
6974
Seq(
7075
scaladoc,
@@ -113,7 +118,8 @@ object BuildInfo {
113118
)
114119
),
115120
scalaVersionSettings(options),
116-
platformSettings(options)
121+
platformSettings(options),
122+
scalaCliSettings(options)
117123
)
118124
.reduceLeft(_ + _)
119125
}.left.map {
@@ -158,6 +164,9 @@ object BuildInfo {
158164
.orElse(Some(options.javaHome().value.version.toString))
159165
)
160166

167+
private def scalaCliSettings(options: BuildOptions): BuildInfo =
168+
BuildInfo(scalaCliVersion = Some(Constants.version))
169+
161170
private def platformSettings(options: BuildOptions): BuildInfo =
162171
options.scalaOptions.platform.map(_.value) match {
163172
case Some(Platform.JS) =>

website/docs/reference/build-info.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ object BuildInfo {
5151
val mainClass = Some("Main")
5252
/** Project version */
5353
val projectVersion = None
54+
/** Scala CLI version used for the compilation */
55+
val scalaCliVersion = Some("1.7.0")
5456

5557
/** Information about the Main scope */
5658
object Main {

0 commit comments

Comments
 (0)