I più scaricati: Dati aggiornati al 26 ottobre 2026

Categorie

Internet1355
Comunicazione321
Audio e video898
Grafica e design539
Ufficio e produttività1120
Strumenti di sviluppo3132
Strumenti di IA527
Sicurezza e privacy385
Strumenti di sistema3113
Giochi523
Istruzione e scienza239
Rete e IT284

Scala CLI: versioni precedenti da scaricare

Scala CLI is a command-line tool to interact with the Scala language.

Qui sono elencate 47 versioni di Scala CLI, dalla prima (20 giugno 2023) fino all’attuale 1.15.0. Ognuna rimanda ai file di installazione del produttore.

2023: 7 7 23 2024: 16 16 24 2025: 15 15 25 2026: 9 9 26

47 versioni in 3 anni · circa 16 all’anno

VersioneDataDimensioneFile
1.15.0Ultima versione 30 giugno 2026 — 32 bit MSI
Note di rilascio
Default Scala 3.8.4, Scala Native 0.5.12 & Scala.js 1.22.0
This Scala CLI version bumps the default Scala version to 3.8.4, Scala Native to 0.5.12 and Scala.js to 1.22.0.
scala-cli version
# Scala CLI version: 1.15.0
# Scala version (default): 3.8.4
scala-cli -e 'println("Hello from Scala.js 1.22.0!")' --js
# Compiling project (Scala 3.8.4, Scala.js 1.22.0)
# Compiled project (Scala 3.8.4, Scala.js 1.22.0)
# Hello from Scala.js 1.22.0!
scala-cli -e 'println("Hello from Scala Native 0.5.12!")' --native
# Compiling project (Scala 3.8.4, Scala Native 0.5.12)
# Compiled project (Scala 3.8.4, Scala Native 0.5.12)
# Hello from Scala Native 0.5.12!
Scala 3.8.4 was added by @Gedochao in #4299
Scala Native 0.5.12 was added by @WojciechMazur in #4286
Scala.js 1.22.0 was added by @Gedochao in #4344
JShell support in repl
scala-cli repl can now use JShell as its REPL backend, enabled with the --jshell (--jsh) flag. JShell is also picked automatically for pure-Java projects. The project's classpath (including dependencies) is available inside the JShell session, so you can play with your code (and even reference Scala classes via reflection). JShell requires JDK 9 or newer.
package demo;
public class HelloJShell {
public static String greet() { return "Hello from JShell!"; }
}
System.out.println(demo.HelloJShell.greet());
scala-cli repl demo/HelloJShell.java --jshell --jvm 17 --repl-quit-after-init --repl-init-script-file hi.jsh
Note: It is possible to explicitly disable JShell on pure Java projects and revert to using Scala REPL with --jshell=false.
Added by @Gedochao in #4262
java snippets in Markdown inputs (experimental ⚡️)
Scala CLI can now compile and run java code blocks inside Markdown inputs, mirroring the existing support for scala snippets. A java snippet is treated like a regular .java input (its body is emitted as Java source without any wrapping). As with other Markdown features, this requires --power.
# Java in Markdown
```java
public class HelloMarkdown {
public static void main(String[] args) {
System.out.println("Hello from a Java snippet in Markdown!");
}
}
```
scala-cli --power HelloMarkdown.md
Added by @Gedochao in #4284
WebAssembly support (experimental ⚡️)
Scala CLI can now compile and run Scala.js through the experimental Scala.js WebAssembly backend. Enable it with the --js-emit-wasm flag (or the //> using wasm directive) together with ES module output (--js-module-kind es / //> using jsModuleKind es).
The Wasm output runs on a JavaScript host that embeds a Wasm engine. Scala CLI does not bundle any of these runtimes — you have to install Node.js (the default), Deno or Bun yourself, then select one with --js-runtime. See the Scala.js with Wasm guide for the details and runtime version requirements.
//> using wasm
//> using jsModuleKind es
@main def hello(): Unit = println("Hello from Wasm!")
# Node.js is the default runtime - no runtime flag needed
scala-cli run HelloWasm.scala --power
# run the same Wasm output on Deno
scala-cli run HelloWasm.scala --power --js-runtime deno
# ...or on Bun
scala-cli run HelloWasm.scala --power --js-runtime bun
Added by @lostflydev in #4176
JUnit 5 (Jupiter) support
The test runner now supports JUnit 5 (Jupiter) via the jupiter-interface test interface, for both Scala and pure-Java tests. JUnit 5 requires Java 17 or newer.
//> using test.dep com.github.sbt.junit:jupiter-interface:0.19.0
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.*
class MyJupiterTests {
@Test
def addition(): Unit = {
assertEquals(4, 2 + 2)
println("Hello from JUnit 5 / Jupiter!")
}
}
scala-cli test MyJupiterTests.test.scala --jvm 17
Added by @Gedochao in #4304
SBT 2.x export
The export sub-command can now generate SBT 2.x builds (the default SBT version used for the export is now 2.0.0). Pick a specific version with --sbt-version.
@main def hello(): Unit = println("Hello from an SBT 2.x export!")
scala-cli --power export hello.scala --sbt --sbt-version 2.0.0 -o sbt-project
cat sbt-proj
1.14.0 15 maggio 2026 — 32 bit MSI
Note di rilascio
Change default Scala Native version to 0.5.11
This Scala CLI version switches the default Scala Native version to 0.5.11.
Added by @Gedochao in #4253
Support for .test.java
*.test.java files are now picked up as test-scope sources automatically, mirroring *.test.scala.
Under the hood, Scala CLI generates a matching .java source (so Example.test.java generates a matching Example.java source), so that javac accepts the public class.
//> using test.dep junit:junit:4.13.2
//> using test.dep com.novocode:junit-interface:0.11
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class ExampleTest {
@Test public void foo() { assertEquals(4, 2 + 2); }
}
scala-cli test java-junit-example
Added by @Gedochao in #4261.
A toggle to turn auto-IDE-setup off
Build commands (such as compile, run, test) automatically write the BSP configuration under .bsp/ to keep IDE integration in sync.
This behavior can now be disabled per-invocation via --auto-setup-ide=false, or globally via the ide.auto-setup config key.
scala-cli compile java-junit-example --auto-setup-ide=false
# Compile without generating .bsp/ configuration
scala-cli config ide.auto-setup false
# Disable auto-setup-ide globally for all build commands
Added by @Gedochao in #4258.
New directives-parser module
The legacy Java using_directives parser has been replaced with a Scala-rewritten directives-parser module.
This is transparent to users, but resolves long-standing directive parsing issues (#2443, #3019, #2382) and unblocks future improvements to directive handling.
The directives parser can be used as a standalone library, so you can now parse using directives in your own tools and applications with the same logic as Scala CLI.
//> using scala 3
//> using dep org.virtuslab.scala-cli::directives-parser:1.14.0
import scala.cli.parse.UsingDirectivesParser
@main def parseDirectives(): Unit =
val source =
"""//> using scala 3.7.4
|//> using dep com.lihaoyi::os-lib:0.11.4
|//> using options -Wunused:all -deprecation
|
|@main def hello() = println("Hello")
|""".stripMargin
val result = UsingDirectivesParser.parse(source.toCharArray)
for d <- result.directives do
val values = d.values.map(_.stringValue).mkString(", ")
println(s"${d.key} = $values (line ${d.keyPosition.line})")
if result.diagnostics.nonEmpty then
println("Diagnostics:")
result.diagnostics.foreach(println)
Added by @Gedochao in #4192.
Typelevel Toolkit 0.2.0 (with Scala Native)
The Typelevel Toolkit dependency has been bumped to 0.2.0 and is now compatible with Scala Native 0.5.x.
It's worth mentioning that its test framework has been swapped from MUnit to Weaver.
//> using toolkit typelevel:default
//> using platform native
import cats.effect.*
import weaver.*
object HelloSuite extends SimpleIOSuite:
test("hello") {
IO("Hello").map(expect.eql(_, "Hello"))
}
Added by @Gedochao in #4244.
Features
- Migrate from old using_directives to Scala-rewritten directives-parser module by @Gedochao in #4192
- Allow to disable auto-setup-ide in build commands with a command line option & config by @Gedochao in #4258
- Support for .test.java by @Gedochao in #4261
Fixes
- Prevent duplicate publish.credentials and repositories.credentials from being saved to the config database by @Gedochao in #4257
Build and internal changes
- Fix scala-cli-archive-keyring.gpg generation; auto generate KEY.gpg for scala-cli-packages by @Gedochao in #4238
- Fix sclicheck.GifTests.complete-install timing out by @Gedochao in #4236
- Split the update-packages CI job down into individual targets by @Gedochao in #4259
- Add explicit overrides in ScalaCliScalafixModule by @Gedochao in #4267
Documentation changes
- Fix docs & add tests for repositories.mirrors & repositories.default by @Gedochao in #4235
Updates
- Update scala-cli.sh launcher for 1.13.0 by @github-actions[bot] in #4232
- Bump @algolia/client-search from 5.50.1 to 5.50.2 in /website in the npm-dependencies group by @dependabot[bot] in #4242
- Bump @algolia/client-search from 5
1.13.0 15 aprile 2026 — 32 bit MSI
Note di rilascio
Change default Scala version to 3.8.3
This Scala CLI version switches the default Scala version to 3.8.3.
scala-cli version
# Scala CLI version: 1.13.0
# Scala version (default): 3.8.3
Added by @Gedochao in #4204
Support for Scala.js 1.21.0
This Scala CLI version adds support for Scala.js 1.21.0.
scala-cli -e 'println("Hello")' --js
# Compiling project (Scala 3.8.3, Scala.js 1.21.0)
# Compiled project (Scala 3.8.3, Scala.js 1.21.0)
# Hello
Added by @Gedochao in #4229
Ammonite REPL deprecated & scheduled for removal
The Ammonite-backed REPL integration is now deprecated and planned for removal (in sync with Ammonite's official communication).
Flags such as --ammonite, --ammonite-version, and --ammonite-arg on scala-cli repl will go away in a future release.
It's time to move on to the default Scala REPL.
Added by @Gedochao in #4218
java-test-runner for pure Java tests
Projects with only Java sources (no Scala in the build) now use a dedicated java-test-runner module when running scala-cli test.
The new runner wires up Java-friendly test frameworks (such as JUnit via junit-interface) without pulling the Scala test runner or Scala itself onto the test classpath.
//> using test.dep junit:junit:4.13.2
//> using test.dep com.novocode:junit-interface:0.11
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class JavaTestRunnerExample {
@Test
public void foo() {
assertEquals(4, 2 + 2);
}
}
Added by @Gedochao in #4197
GraalVM native-image packaging: packaging.graalvmJvmId and packaging.graalvmArgs
GraalVM native-image packaging JVM id and args are now configurable from using directive level.
//> using packaging.packageType graalvm
//> using packaging.graalvmJvmId graalvm-community:23.0.2
//> using packaging.graalvmArgs --no-fallback
Added by @zrhmn in #4223 & #4225
Features
- Add java-test-runner module to support running tests with pure Java by @Gedochao in #4197
- Support -opt-inline:help by @Gedochao in #4215
- Add directive packaging.graalvmJvmId by @zrhmn in #4223
- Add additional packaging.graalvm* directives by @zrhmn in #4225
Deprecations
- Add proper deprecation logic for features & deprecate Ammonite for removal by @Gedochao in #4218
Fixes
- Add signed-by support to Debian APT repository by @Gedochao in #4207
- Add missing attributes to ivy2 publishing by @Gedochao in #4203
- Fix misc compiler warnings by @Gedochao in #4220
- Make each packaged native image use its own subdirectory under nativeImageWorkDir when cross-packaging by @Gedochao in #4221
- Support formatting .sbt inputs by @Gedochao in #4195
Build and internal changes
- Skip CI steps irrelevant to committed changes on PRs by @Gedochao in #4208
- Run tests with JDK 26 by @Gedochao in #4214
- Split release_notes.md into a separate test per-release-tag in docs-tests by @Gedochao in #4216
Updates
- Update scala-cli.sh launcher for 1.12.5 by @github-actions[bot] in #4191
- Bump Scala 3 Next RC to 3.8.3-RC3 by @Gedochao in #4194
- Bump dorny/test-reporter from 2 to 3 in the github-actions group by @dependabot[bot] in #4198
- Bump picomatch from 2.3.1 to 2.3.2 in /website by @dependabot[bot] in #4200
- Bump node-forge from 1.3.3 to 1.4.0 in /website by @dependabot[bot] in #4202
- Bump Scala 3 Next to 3.8.3 by @Gedochao in #4204
- Bump brace-expansion from 1.1.12 to 1.1.13 in /website by @dependabot[bot] in #4205
- Bump @algolia/client-search from 5.49.2 to 5.50.0 in /website in the npm-dependencies group by @dependabot[bot] in #4206
- Bump the npm-dependencies group in /website with 2 updates by @dependabot[bot] in #4211
- Bump lodash from 4.17.23 to 4.18.1 in /website by @dependabot[bot] in #4212
- Bump Scala 3 Next RC to 3.8.4-RC1 by @Gedochao in #4213
- Bump Mill to 1.1.5 (was 1.1.3) by @Gedochao in #4217
- Bump the npm-dependencies group in /website with 6 updates by @dependabot[bot] in #4226
- Bump follow-redirects from 1.15.11 to 1.16.0 in /website by @dependabot[bot] in #4227
- Bump announced Scala 3 Next RC version to 3.8.4-RC1 by @Gedochao 
1.12.5 19 marzo 2026 — 32 bit MSI
Note di rilascio
--cross support for run, package and doc sub-commands (experimental ⚡️)
It is now possible to cross-run, cross-package and cross-generate docs (doc) with the --cross command line
option.
- run runs each configured combination of Scala version and platform (e.g. JVM, Native, JS) in sequence;
- package produces one artifact per cross build, with the Scala version and platform in the artifact name;
- doc generates Scaladoc for each cross target into separate output directories.
//> using scala 3.3 3.8
@main def main() = println("Hello")
scala-cli run cross.scala --cross --power
scala-cli package cross.scala --cross --power
scala-cli doc cross.scala --cross -o doc-out --power
Added by @Gedochao in #3808, #4171 & #4183
Global --offline config key
You can set offline mode globally with the config sub-command, so Scala CLI uses the cache and skips network access
without passing --offline every time.
scala-cli config offline true
Added by @Gedochao in #3216
Watch extra paths with --watching (experimental ⚡️)
Use the --watching option or //> using watching to have --watch re-run when files or directories outside
your sources change (e.g. config or assets).
scala-cli run . --watch --power --watching ./config --watching ./assets
Or in source:
//> using watching ./config ./assets
Added by @Gedochao in #4174
Local .m2 in publish local (experimental ⚡️)
publish local now publishes to your local Maven repository (~/.m2), so other local projects can depend
on the published artifacts via Maven coordinates.
scala-cli publish local . --m2 --power
Added by @Gedochao in #4179
Features
- Run all cross builds when --cross is passed by @Gedochao in #3808
- Add a global --offline config key by @Gedochao in #3216
- Support --cross with the package sub-command by @Gedochao in #4171
- Allow to --watch extra paths with --watching by @Gedochao in #4174
- Add support for --cross in the doc sub-command by @Gedochao in #4183
- Add support for local .m2 in publish local by @Gedochao in #4179
Fixes
- Use Java 17 mapping when generating docs with Scala 3.8+ with doc by @Gedochao in #4180
- Make test framework discovery on Native more resilient & with better errors by @Gedochao in #4185
- Warn when .java & .scala sources are used in a mixed compilation with --server=false by @Gedochao in #4181
Build and internal changes
- Add LLM policy & a PR template by @Gedochao in #4177
- Add AGENTS.md by @Gedochao in #4178
Updates
- Bump the npm-dependencies group in /website with 3 updates by @dependabot[bot] in #4165
- Bump the github-actions group with 3 updates by @dependabot[bot] in #4164
- Update scala-cli.sh launcher for 1.12.4 by @github-actions[bot] in #4166
- Bump svgo from 3.3.2 to 3.3.3 in /website by @dependabot[bot] in #4168
- Bump immutable from 5.1.4 to 5.1.5 in /website by @dependabot[bot] in #4167
- Bump Mill to 1.1.3 (was 1.1.2) by @Gedochao in #4169
- Bump @algolia/client-search from 5.49.1 to 5.49.2 in /website in the npm-dependencies group by @dependabot[bot] in #4173
- Bump the github-actions group with 4 updates by @dependabot[bot] in #4172
- Update Scala 3 Next RC to 3.8.3-RC2 by @Gedochao in #4175
- Bump undici from 7.18.2 to 7.24.1 in /website by @dependabot[bot] in #4182
- Bump webfactory/ssh-agent from 0.9.1 to 0.10.0 in the github-actions group by @dependabot[bot] in #4187
- Bump coursier to 2.1.25-M24 by @Gedochao in #4184
- Bump sass from 1.97.3 to 1.98.0 in /website in the npm-dependencies group by @dependabot[bot] in #4188
Full Changelog: v1.12.4...v1.12.5
1.12.4 4 marzo 2026 — 32 bit MSI
Note di rilascio
This is just a small patch fixing a bug (#4152) breaking Metals support in Scala CLI v1.12.3.
Fixes
- Fix BSP buildTarget/wrappedSources for GraalVM native image by @Gedochao in #4153
Documentation changes
- Fix docs' links with inconsistent routing by @Gedochao in #4154
Updates
- Update scala-cli.sh launcher for 1.12.3 by @github-actions[bot] in #4151
Full Changelog: v1.12.3...v1.12.4
1.12.3 26 febbraio 2026 — 32 bit MSI
Note di rilascio
Change default Scala version to 3.8.2
This Scala CLI version switches the default Scala version to 3.8.2.
scala-cli version
# Scala CLI version: 1.12.3
# Scala version (default): 3.8.2
Added by @Gedochao in #4143
Fixes
- Restore Scala 2 nightlies by @Gedochao in #4140
- Fix Scala version validation to accept locally built compiler by @Gedochao in #4141
- Ensure Scala CLI correctly refers to the latest Scala 2.12/2.13 nightly and recovers from errors by @Gedochao in #4142
- Restore GraalVM image support for older CPUs by @Gedochao in #4150
Build and internal changes
- Cut down on integration test suites by @Gedochao in #4123
- Add coursier/cache-action on the CI by @Gedochao in #4126
- Don't install Bloop separately on the CI by @Gedochao in #4130
- Migrate to Mill 1.1.2 (was 1.0.6) by @Gedochao in #4086
Documentation changes
- docs: Add release notes for 1.12.2 by @tgodzik in #4111
- Fix shebang in Scala script example by @sake92 in #4117
- Cherry pick #4073, #4072 & #4123 to the stable branch by @Gedochao & @andrzejressel in #4129
- Back port of documentation changes to main by @Gedochao in #4134
Updates
- Update scala-cli.sh launcher for 1.12.2 by @github-actions[bot] in #4116
- Bump webpack from 5.103.0 to 5.105.0 in /website by @dependabot[bot] in #4119
- Update sbt, scripted-plugin to 1.12.2 by @scala-steward in #4110
- Bump @algolia/client-search from 5.47.0 to 5.48.0 in /website by @dependabot[bot] in #4121
- Bump Ammonite to 3.0.8 (was 3.0.7) by @Gedochao in #4083
- Update scalafmt-cli_2.13, scalafmt-core to 3.10.7 by @scala-steward in #4125
- Update Scala 3 Next RC to 3.8.2-RC2 by @scala-steward in #4124
- Update os-lib to 0.11.8 by @scala-steward in #4101
- Update munit to 1.2.2 by @scala-steward in #4097
- Update semanticdb-shared_2.13 to 4.14.7 by @scala-steward in #4103
- Update pprint to 0.9.6 by @scala-steward in #4092
- Update asm to 9.9.1 by @scala-steward in #4094
- Update semanticdb-shared_2.13 to 4.15.2 by @scala-steward in #4132
- Update metaconfig-typesafe-config to 0.18.2 by @scala-steward in #4096
- Update jsoniter-scala-core, ... to 2.38.8 by @scala-steward in #4089
- Update scalafix-interfaces to 0.14.5 by @scala-steward in #4088
- Update jsoup to 1.22.1 by @scala-steward in #4093
- Bump dependencies of the docs website (dependabot sync + cleanup) by @Gedochao in #4135
- Bump @svta/cml-utils from 1.0.1 to 1.4.0 in /website by @dependabot[bot] in #4137
- Migrate to Mill 1.1.2 (was 1.0.6) by @Gedochao in #4086
- Update Bloop to 2.0.19 (was 2.0.17) by @scala-steward in #4109
- Bump Scala 3 Next RC to 3.8.2-RC3 by @Gedochao in #4136
- Bump @algolia/client-search from 5.48.1 to 5.49.0 in /website by @dependabot[bot] in #4145
- Bump @svta/cml-structured-field-values from 1.0.1 to 1.1.2 in /website by @dependabot[bot] in #4144
- Bump Scala 3 Next to 3.8.2 by @Gedochao in #4143
- Bump SBT to 1.12.4 by @Gedochao in #4146
- Bump Scala 3 Next RC to 3.8.3-RC1 by @Gedochao in #4147
New Contributors
- @sake92 made their first contribution in #4117
- @andrzejressel made their first contribution in #4129
Full Changelog: v1.12.2...v1.12.3
1.12.2 6 febbraio 2026 — 32 bit MSI
Note di rilascio
Old sonatype snapshot is causing Scala CLI to timeout
Until the recent migration to new Sonatype Central repository there was an older snapshots repository in use. Unfortuntately, last week it started to make requests to it timeout and hang Scala CLI. We decided remove any references to the old repository, so older (one might say ancient) Scala CLI nightly versions will not be available. This was done by @tgodzik in #4106.
Updates
- Bump react and @types/react in /website by @dependabot[bot] in #4079
Full Changelog: v1.12.1...v1.12.2
1.12.1 28 gennaio 2026 — 32 bit MSI
Note di rilascio
Change default Scala version to 3.8.1
This Scala CLI version switches the default Scala version to 3.8.1.
scala-cli version
# Scala CLI version: 1.13.0
# Scala version (default): 3.8.1
Added by @Gedochao in #4065
Change default Scala Native version to 0.5.10
This Scala CLI version switches the default Scala Native version to 0.5.10.
scala-cli -e 'println("Hello from Scala Native 0.5.10!")' --native
# Compiling project (Scala 3.8.1, Scala Native 0.5.10)
# Compiled project (Scala 3.8.1, Scala Native 0.5.10)
# [info] Linking (multithreadingEnabled=detect) (725 ms)
# [info] Discovered 903 classes and 5554 methods after classloading
# [info] Checking intermediate code (quick) (31 ms)
# [info] Multithreading was not explicitly enabled - initial class loading has not detected any usage of system threads. Multithreading support will be disabled to improve performance.
# [info] Linking (multithreadingEnabled=false) (273 ms)
# [info] Discovered 512 classes and 2629 methods after classloading
# [info] Checking intermediate code (quick) (7 ms)
# [info] Discovered 493 classes and 2002 methods after optimization
# [info] Optimizing (debug mode) (447 ms)
# [info] Produced 12 LLVM IR files
# [info] Generating intermediate code (826 ms)
# [info] Compiling to native code (5461 ms)
# [info] Linking with [pthread, dl, m]
# [info] Linking native code (immix gc, none lto) (257 ms)
# [info] Postprocessing (0 ms)
# [info] Total (7688 ms)
# Hello from Scala Native 0.5.10!
Added by @Gedochao in #4078
Fixes
- fix: openjdk:17-slim is not available. using 17.0.2-slim instead by @kaplan-shaked in #4057
Build and internal changes
- Fix Scala 2.13 nightly tests by @Gedochao in #4063
- Switch the CI to GitHub Linux arm64 runners by @Gedochao in #4064
Updates
- Bump @algolia/client-search from 5.46.2 to 5.46.3 in /website by @dependabot[bot] in #4062
- Update scala-cli.sh launcher for 1.12.0 by @github-actions[bot] in #4054
- Bump scalafmt to 3.10.4 (was 3.10.2) by @Gedochao in #4061
- Bump jgit to 7.5.0.202512021534-r (was 7.3.0.202506031305-r) by @Gedochao in #4058
- Bump Scala Toolkit to 0.8.0 (was 0.7.0) by @Gedochao in #4060
- Bump lodash from 4.17.21 to 4.17.23 in /website by @dependabot[bot] in #4066
- Bump Scala 3 Next to 3.8.1 by @Gedochao in #4065
- Switch from graalvm-java17 to graalvm-community by @Gedochao in #3459
- Bump Ammonite to 3.0.7 (was 3.0.6) by @Gedochao in #4070
- Bump Scala 3 Next RC to 3.8.2-RC1 by @Gedochao in #4071
- Bump Scala Native to 0.5.10 (was 0.5.9) by @Gedochao in #4078
New Contributors
- @kaplan-shaked made their first contribution in #4057
Full Changelog: v1.12.0...v1.12.1
1.12.0 16 gennaio 2026 — 32 bit MSI
Note di rilascio
Change default Scala version to 3.8.0
This Scala CLI version switches the default Scala version to 3.8.0.
scala-cli version
# Scala CLI version: 1.12.0
# Scala version (default): 3.8.0
Added by @Gedochao in #4049
Support for Scala.js 1.20.2
This Scala CLI version adds support for Scala.js 1.20.2.
scala-cli -e 'println("Hello")' --js
# Compiling project (Scala 3.8.0, Scala.js 1.20.2)
# Compiled project (Scala 3.8.0, Scala.js 1.20.2)
# Hello
Added by @Gedochao in #4040
New aliases for RC and nightly Scala versions
This Scala CLI version introduces dedicated aliases for calling the latest Scala Release Candidate versions in a given series (including LTS).
scala-cli -e 'println(scala.util.Properties.versionNumberString)' -S rc
# 3.8.1-RC1
scala-cli -e 'println(scala.util.Properties.versionNumberString)' -S 3.rc
# 3.8.1-RC1
scala-cli -e 'println(scala.util.Properties.versionNumberString)' -S 3.8.rc
# 3.8.1-RC1
scala-cli -e 'println(dotty.tools.dotc.config.Properties.simpleVersionString)' -S 3.lts.rc --with-compiler
# 3.3.7-RC2
scala-cli -e 'println(dotty.tools.dotc.config.Properties.simpleVersionString)' -S lts.rc --with-compiler
# 3.3.7-RC2
Dedicated default and LTS nightly aliases are also provided.
scala-cli -e 'println(scala.util.Properties.versionNumberString)' -S nightly
# 3.8.2-RC1-bin-20260115-6151803-NIGHTLY
scala-cli -e 'println(dotty.tools.dotc.config.Properties.simpleVersionString)' -S lts.nightly --with-compiler
# 3.3.8-RC1-bin-20260112-d35b2d4-NIGHTLY-git-d35b2d4
scala-cli -e 'println(dotty.tools.dotc.config.Properties.simpleVersionString)' -S 3.lts.nightly --with-compiler
# 3.3.8-RC1-bin-20260112-d35b2d4-NIGHTLY-git-d35b2d4
Also note that there is no easy way to identify an RC for Scala 2 / 2.12 / 2.13 (as a particular nightly serves as the RC for those Scala distributions).
A reasonable error is also provided when it is requested.
scala-cli -e 'println(scala.util.Properties.versionNumberString)' -S 2.rc
# Invalid Scala version: 2.rc. In the case of Scala 2, a particular nightly version serves as a release candidate.
scala-cli -e 'println(scala.util.Properties.versionNumberString)' -S 2.12.rc
# Invalid Scala version: 2.12.rc. In the case of Scala 2, a particular nightly version serves as a release candidate.
scala-cli -e 'println(scala.util.Properties.versionNumberString)' -S 2.13.rc
# Invalid Scala version: 2.13.rc. In the case of Scala 2, a particular nightly version serves as a release candidate.
Added by @Gedochao in #4042 and #4016
(⚡️ experimental) Support for exporting to Mill 1.0.x and overriding the Mill version with --mill-version
The export sub-command now allows to export to Mill 1.0.x projects.
@main def main() = println("Let's export to Mill 1.0.6!")
scala-cli export mill-1-0-6-export.scala --mill --mill-version 1.0.6 --power
# Exporting to a mill project...
# Exported to: ~/mill-export/dest
Added by @Gedochao in #4028
Features & improvements
- Add rc & *.rc Scala version aliases by @Gedochao in #4016
- Support export-ing to Mill 1.x.y & allow to override Mill version with --mill-version by @Gedochao in #4028
- Improve Scala nightly version handling & add lts.nightly, 3.lts.nightly and nightly Scala version tags by @Gedochao in #4042
Fixes
- Fix Scala 3.nightly and 3.latest-minor.nightly to consistently point to the same version by @Gedochao in #4014
- fix #4005 - Windows native-image compile failure caused by SUBST collision by @philwalk in #4006
Documentation changes
- Solve docs' website warnings by @Gedochao in #4007
- Back port of documentation changes to main by @github-actions[bot] in #4015
Build and internal changes
- Enable Scala Native tests with the test command on Scala 3 by @Gedochao in #4018
- Self-contained docker build with ARM64 publishing by @keynmol in #3962
Updates
- Update scala-cli.sh launcher for 1.11.0 by @github-actions[bot] in #4004
- Bump Ammonite to 3.0.6 (was 3.0.5) by @Gedochao in #4008
- Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #4009
- Bump actions
1.11.0 12 dicembre 2025 — 64 bit MSI
Note di rilascio
Change default Scala versions to 2.13.18 and 2.12.21
This Scala CLI version switches the default Scala versions:
- default Scala 2.13 to 2.13.18
- default Scala 2.12 to 2.12.21
Added by @Gedochao in #3999 and #3958
Fall back to a legacy version of the runner & test-runner modules for JVM < 17
The newest versions of the runner and test-runner modules will require Java 17 or newer to run.
When trying to use them with older JVMs, Scala CLI will now print a warning and fall back to using legacy versions of those modules instead.
scala-cli test . --jvm 11
# Compiling project (Scala 3.7.4, JVM (11))
# Compiled project (Scala 3.7.4, JVM (11))
# [warn] Java 11 is no longer supported by the test-runner module.
# [warn] Defaulting to a legacy test-runner module version: 1.7.1.
# [warn] To use the latest test-runner, upgrade Java to at least 17.
Added by @Gedochao in #3965
Features & improvements
- Improve Python detection on Mac by @Gedochao in #3961
Fixes
- fix for 3307 (windows launcher rejects filenames with utf8 chars) by @philwalk in #3923
- Allow for repeatable -XX:* Java options by @Gedochao in #3976
- fix #3979 by adding save-and-restore to generated run-native-image.bat by @philwalk in #3981
- Fix handling of multiple exclude directives by @tom91136 in #3984
- Fix doc generation for projects with compile-only dependencies by @Gedochao in #3990
- Rewrite Scala.js linking to enable packaging of projects without a main method by @Gedochao in #3992
Deprecations
- Fall back to legacy runner / test-runner for JVM < 17 by @Gedochao in #3965
Documentation changes
- Add examples for passing REPL options via using directive to the docs by @Gedochao in #3975
- Back port of documentation changes to main by @github-actions[bot] in #3978
Build and internal changes
- Increase CI timeout for integration tests to 150 minutes by @Gedochao in #3955
- Run the entire REPL test suite on both Ammonite and Scala 3 REPL by @Gedochao in #3982
- Clean cached JDKs on Linux CI runners by @Gedochao in #3995
Updates
- Update scala-cli.sh launcher for 1.10.1 by @github-actions[bot] in #3954
- Bump sass from 1.93.3 to 1.94.0 in /website by @dependabot[bot] in #3960
- Bump Scala 2.13 to 2.13.18 (was 2.13.17) by @Gedochao in #3958
- Bump ammonite to 3.0.4 (was 3.0.3) by @Gedochao in #3969
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #3973
- Bump sass from 1.94.0 to 1.94.2 in /website by @dependabot[bot] in #3974
- Bump misc dependencies by @Gedochao in #3971
- Bump Scala 3 Next RC to 3.8.0-RC1 by @Gedochao in #3957
- Update bloop to 2.0.17 (was 2.0.15) and bloop-config to 2.3.3 (was 2.3.2) by @Gedochao in #3970
- Bump node-forge from 1.3.1 to 1.3.2 in /website by @dependabot[bot] in #3980
- Bump Scala 3 Next RC to 3.8.0-RC2 by @Gedochao in #3977
- Bump Scala.js deps by @Gedochao in #3983
- Bump mdast-util-to-hast from 13.0.2 to 13.2.1 in /website by @dependabot[bot] in #3986
- Bump @easyops-cn/docusaurus-search-local from 0.52.1 to 0.52.2 in /website by @dependabot[bot] in #3985
- Bump misc dependencies by @Gedochao in #3987
- Bump scala-js-cli to 1.20.1.1 (was 1.20.1) by @Gedochao in #3989
- Bump sass from 1.94.2 to 1.95.0 in /website by @dependabot[bot] in #3998
- Bump react & react-dom from 19.2.0 to 19.2.1 in /website by @dependabot[bot] in #3997
- Bump coursier to 2.1.25-M21 by @Gedochao in #4000
- Bump scala-cli-signing to 0.2.13 & coursier-publish to 0.4.4 by @Gedochao in #3988
- Bump Ammonite to 3.0.5 by @Gedochao in #4001
- Bump Scala 3 Next RC to 3.8.0-RC3 by @Gedochao in #3991
- Bump Scala 2.12 to 2.12.21 by @Gedochao in #3999
New Contributors
- @tom91136 made their first contribution in #3984
Full Changelog: v1.10.1...v1.11.0
1.10.1 14 novembre 2025 — 32 bit MSI
Note di rilascio
This is a bugfix release, chiefly aiming to mend #3949, which affected several of our users.
Fixes
- Ensure Coursier logger gets initialized while downloading JVMs by @Gedochao in #3951
Documentation changes
- Back port of documentation changes to main by @github-actions[bot] in #3948
Build and internal changes
- Revert some of expecty 0.17.1 workarounds by @Gedochao in #3937
Updates
- Bump Node to 24 for the docs website by @Gedochao in #3947
- Update scala-cli.sh launcher for 1.10.0 by @github-actions[bot] in #3946
Full Changelog: v1.10.0...v1.10.1
1.9.1 18 settembre 2025 — 32 bit MSI
Note di rilascio
Support for Scala 3.7.3
This Scala CLI version switches the default Scala version to 3.7.3.
scala-cli version
# Scala CLI version: 1.9.1
# Scala version (default): 3.7.3
Added by @Gedochao in #3866
Support for Scala.js 1.20.1
This Scala CLI version adds support for Scala.js 1.20.1.
scala-cli -e 'println("Hello")' --js
# Compiling project (Scala 3.7.3, Scala.js 1.20.1)
# Compiled project (Scala 3.7.3, Scala.js 1.20.1)
# Hello
Added by @Gedochao in #3861 and VirtusLab/scala-js-cli#160
Fixes
- Fix completely broken lock during setting up local repo on Linux by @unlsycn in #3846
- Ensure publish actually fails on a failed upload by @Gedochao in #3853
Updates
- Update scala-cli.sh launcher for 1.9.0 by @github-actions[bot] in #3851
- Bump sass from 1.90.0 to 1.91.0 in /website by @dependabot[bot] in #3839
- Bump Scala 3 Next RC to 3.7.3-RC3 by @Gedochao in #3854
- Bump react & react-dom from 19.1.0 to 19.1.1 in /website by @dependabot[bot] in #3806
- Bump announced Scala 3 Next RC to 3.7.3-RC3 by @Gedochao in #3858
- Bump jgit to 7.3.0.202506031305-r by @Gedochao in #3856
- Bump Scala.js to 1.20.1 by @Gedochao in #3861
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #3863
- Bump Scala Next to 3.7.3 by @Gedochao in #3866
- Bump sass from 1.91.0 to 1.92.1 in /website by @dependabot[bot] in #3864
- Bump @mdx-js/react from 3.1.0 to 3.1.1 in /website by @dependabot[bot] in #3865
- Bump actions/setup-node from 4 to 5 by @dependabot[bot] in #3862
- Bump scalafmt to 3.9.10 by @Gedochao in #3868
Full Changelog: v1.9.0...v1.9.1
1.9.0 1 settembre 2025 — 32 bit MSI
Note di rilascio
Support for the new Scala 3 nightly repository
This Scala CLI version supports the new Scala 3 nightly versions repository:
https://repo.scala-lang.org/artifactory/maven-nightlies
This means that newest Scala 3 nightly versions will become available to use with Scala CLI, as well as the 3.nightly tag will now refer to the actual, newest version.
As a result, Scala 3.8 features like capture checked Scala 3 library should now be available from Scala CLI.
//> using scala 3.8.0-RC1-bin-20250901-ca400bd-NIGHTLY
import language.experimental.captureChecking
trait File extends caps.SharedCapability:
def count(): Int
def f(file: File): IterableOnce[Int]^{file} =
Iterator(1)
.map(_ + file.count())
Added by @Gedochao in #3838
Features
- Add support for the new Scala 3 nightly repository by @Gedochao in #3838
Fixes
- Fix using directive with URL + query parameters by @jgoday in #3835
Documentation changes
- Update the Scala CLI docs landing page by @Gedochao in #3825
- Back port of documentation changes to main by @github-actions[bot] in #3826
Build and internal changes
- Prepare for Mill 1.0.x bump by @Gedochao in #3833
- Temporarily disable flaky Spark tests on Mac CI by @Gedochao in #3842
Updates
- Update scala-cli.sh launcher for 1.8.5 by @github-actions[bot] in #3824
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #3827
- Bump sass from 1.89.2 to 1.90.0 in /website by @dependabot[bot] in #3828
- Bump case-app to 2.1.0 by @Gedochao in #3830
- Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #3829
- Update sbt, scripted-plugin to 1.11.4 by @scala-steward in #3832
- Update Scala 3 Next RC to 3.7.3-RC2 by @Gedochao in #3834
- Bump scala-packager to 0.2.0 by @Gedochao in #3843
- Update announced Scala 3 RC to 3.7.3-RC2 by @Gedochao in #3845
- Update jsoup to 1.21.2 by @scala-steward in #3840
New Contributors
- @jgoday made their first contribution in #3835
Full Changelog: v1.8.5...v1.9.0
1.8.5 7 agosto 2025 — 32 bit MSI
Note di rilascio
Support for Scala 3.7.2
This Scala CLI version switches the default Scala version to 3.7.2.
scala-cli version
# Scala CLI version: 1.8.5
# Scala version (default): 3.7.2
Added by @Gedochao in #3809
Add props with input paths for non-script inputs
2 new properties have been added, to provide a way to access input paths outside of .sc scripts:
- scala.sources - full paths of all inputs in the project, separated by java.io.File.pathSeparator
- scala.source.names - names of all inputs in the project, separated by java.io.File.pathSeparator
//PrintSources.scala
@main def main() = {
println(sys.props("scala.sources"))
println(sys.props("scala.source.names"))
}
~/PrintSources.scala
PrintSources.scala
These are meant to be an input type agnostic equivalent for the scriptPath method available in .sc scripts.
Added by @philwalk in #3799
sonatype:snapshots points to the new Sonatype Central snapshots repository
It is no longer necessary to manually add https://central.sonatype.com/repository/maven-snapshots, it is added under the sonatype:snapshots alias (along with the old snapshot repository).
It is also added in all other contexts when snapshots should be used.
//> using repository sonatype:snapshots
Added by @Gedochao in #3797
Scala CLI nightlies are available again
We once again publish Scala CLI nightlies. You can use the newest version under the nightly tag.
As pre-1.8.5 Scala CLI versions do not look for them on the new Sonatype Central snapshots repository, they will not be visible when called from earlier versions.
scala-cli --cli-version nightly version
# Scala CLI version: 1.8.4-24-g8ca6c960b-SNAPSHOT
# Scala version (default): 3.7.2
Note that the new Sonatype Central Portal retains snapshot versions for 90 days, so individual versions will be available to test for a limited time period.
Added by @Gedochao in #3818
Features
- Automatically add the new Sonatype Central Portal snapshots repository when snapshots are expected to be used by @Gedochao in #3797
- Adjust Scala CLI nightly version resolution for the new Maven Central Snapshots repository by @Gedochao in #3818
- provide a way to access paths of source files by @philwalk in #3799
- Add more logging for publishing by @Gedochao in #3813
Fixes
- fix for 3789 - updated by @philwalk in #3794
- script extension can be either '.sc' or empty string by @philwalk in #3802
Build and internal changes
- Tag tests relying on old snapshots as flaky (or remove them where applicable) by @Gedochao in #3817
- Add --no-fallback to graalvm native-image configuration by @lbialy in #3820
Updates
- Bump react-player from 2.16.0 to 2.16.1 in /website by @dependabot[bot] in #3784
- Update scala-cli.sh launcher for 1.8.4 by @github-actions[bot] in #3787
- Update zip-input-stream to 0.1.3 by @scala-steward in #3792
- Update Scala 3 Next RC to 3.7.2-RC2 by @scala-steward in #3791
- Update java-class-name_3 to 0.1.8 by @scala-steward in #3795
- Update Scala 3 Next announced RC to 3.7.2-RC2 by @Gedochao in #3796
- Update publish to 0.4.3 by @scala-steward in #3801
- Update pprint to 0.9.1 by @scala-steward in #3803
- Update pprint to 0.9.3 by @scala-steward in #3805
- Bump @easyops-cn/docusaurus-search-local from 0.51.1 to 0.52.1 in /website by @dependabot[bot] in #3807
- Update fansi to 0.5.1 by @scala-steward in #3804
- Update Scala 3 Next to 3.7.2 by @Gedochao in #3809
- Update mill-main to 0.12.15 by @scala-steward in #3814
- Update scalameta to 4.13.9 by @scala-steward in #3816
- Update scalafmt-cli_2.13, scalafmt-core to 3.9.9 by @scala-steward in #3815
- Update os-lib to 0.11.5 by @scala-steward in #3811
- Set Scala 3.7.2 as the latest announced Scala 3 Next by @Gedochao in #3812
- Bump Bloop to 2.0.13 by @Gedochao in #3821
New Contributors
- @lbialy made their first contribution in #3820
Full Changelog: v1.8.4...v1.8.5
1.8.4 15 luglio 2025 — 32 bit MSI
Note di rilascio
(⚡️ experimental) publish support for the Sonatype Central Portal
This Scala CLI version adds support for publishing artifacts to the Sonatype Central Portal via its OSSRH Staging API.
It is once again publish artifacts to Maven Central with Scala CLI.
Both stable and *-SNAPSHOT versions are handled.
The only configuration change necessary is to migrate the Sonatype namespace in the UI and regenerate credentials to the new Sonatype Central Portal, as per Sonatype instructions
scala-cli publish . --power
Added by @Gedochao in #3774, #3776, #3778, coursier/publish#128 and coursier/publish#127
Better support for the REPL with JDK 24+
When using the REPL with JDK 24 or newer, users should no longer see the warnings about restricted methods of java.lang.System being used.
scala-cli repl --jvm 24
# WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
# WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/Users/pchabelski/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.7.1/scala3-library_3-3.7.1.jar)
# WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
# WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
# Welcome to Scala 3.7.1 (24.0.1, Java OpenJDK 64-Bit Server VM).
# Type in expressions for evaluation. Or try :help.
#
#
# scala>
Note that the deprecated method from sun.misc.Unsafe warning is still present, and will only be addressed in Scala 3.8.0.
Added by @Gedochao in #3767
Features
- publish command with Sonatype Central Portal OSSRH Staging API by @Gedochao in #3774
- Add support for publishing with Scala CLI to Sonatype Central Portal by @Gedochao in #3776
Fixes
- Prevent the REPL from warning about restricted java.lang.System API on JDK 24 by @Gedochao in #3767
- fix for 3725, 3752, 3766 and 3769 by @philwalk in #3726
Documentation changes
- Update verbosity.md by @kubukoz in #3772
Updates
- Update scala-cli.sh launcher for 1.8.3 by @github-actions[bot] in #3765
- Update sbt, scripted-plugin to 1.11.3 by @scala-steward in #3773
- Update scalafmt to 3.9.8 by @scala-steward in #3771
- Update scalafix-interfaces to 0.14.3 by @scala-steward in #3673
- Bump coursier/publish to 0.4.2 by @Gedochao in #3778
- Update semanticdb-shared_2.13 to 4.13.8 by @scala-steward in #3770
- Update jimfs to 1.3.1 by @scala-steward in #3779
- Update scala-cli-signing to 0.2.11 by @scala-steward in #3781
Full Changelog: v1.8.3...v1.8.4
1.8.3 25 giugno 2025 — 32 bit MSI
Note di rilascio
This is a small release which aims to fix issues with publishing Scala CLI on Sonatype Central Portal.
Build and internal changes
- Add extra logging on Scala CLI artifacts publishing by @Gedochao in #3745
- [NIT] Refactor publishing by @Gedochao in #3743
- Ensure publishing to Sonatype runs without parallelism by @Gedochao in #3755
- Don't use any custom logic when publishing to Sonatype Central by @Gedochao in #3759
- Print artifacts' version when publishing Scala CLI by @Gedochao in #3760
- Don't prepend shell scripts for CLI bootstrapped fatJARs by @Gedochao in #3764
Updates
- Update scala-cli.sh launcher for 1.8.2 by @github-actions in #3744
- Update semanticdb-shared_2.13 to 4.13.7 by @scala-steward in #3746
- Bump @easyops-cn/docusaurus-search-local from 0.50.0 to 0.51.0 in /website by @dependabot in #3748
- Bump brace-expansion from 1.1.11 to 1.1.12 in /website by @dependabot in #3749
- chore: Set latest RC to 3.7.2-RC1 by @tgodzik in #3750
- Bump @easyops-cn/docusaurus-search-local from 0.51.0 to 0.51.1 in /website by @dependabot in #3757
- Update jsoup to 1.21.1 by @scala-steward in #3762
Full Changelog: v1.8.2...v1.8.3
1.8.2 12 giugno 2025 — 64 bit MSI
Note di rilascio
Support for Scala Native 0.5.8
This Scala CLI version switches the default Scala Native version to 0.5.8.
scala-cli -e 'println("Hello from Scala Native 0.5.8!")' --native
# Compiling project (Scala 3.7.1, Scala Native 0.5.8)
# Compiled project (Scala 3.7.1, Scala Native 0.5.8)
# [info] Linking (multithreadingEnabled=true, disable if not used) (1052 ms)
# [info] Discovered 919 classes and 5640 methods after classloading
# [info] Checking intermediate code (quick) (59 ms)
# [info] Multithreading was not explicitly enabled - initial class loading has not detected any usage of system threads. Multithreading support will be disabled to improve performance.
# [info] Linking (multithreadingEnabled=false) (369 ms)
# [info] Discovered 511 classes and 2553 methods after classloading
# [info] Checking intermediate code (quick) (7 ms)
# [info] Discovered 491 classes and 1986 methods after optimization
# [info] Optimizing (debug mode) (519 ms)
# [info] Produced 9 LLVM IR files
# [info] Generating intermediate code (521 ms)
# [info] Compiling to native code (1762 ms)
# [info] Linking with [pthread, dl, m]
# [info] Linking native code (immix gc, none lto) (98 ms)
# [info] Postprocessing (0 ms)
# [info] Total (4379 ms)
# Hello from Scala Native 0.5.8!
Added in #3728
Internal and build changes
- Migrate publishing to Sonatype Maven Central by @Gedochao in #3704
- Fix version string of published artifacts by @Gedochao in #3721
Updates
- Update scala-cli.sh launcher for 1.8.1 by @github-actions in #3719
- Bump sbt to 1.11.1 by @Gedochao in #3723
- Bump deps to versions migrated to Sonatype Maven Central by @Gedochao in #3722
- Update publish_2.13 to 0.2.1 by @scala-steward in #3727
- Bump sass from 1.89.1 to 1.89.2 in /website by @dependabot in #3733
- Bump @easyops-cn/docusaurus-search-local from 0.49.2 to 0.50.0 in /website by @dependabot in #3730
- Bump react and react-dom in /website by @dependabot in #3732
- Bump scala-cli-signing to 0.2.9 & coursier publish to 0.3.0 by @Gedochao in #3734
- Bump docusaurus to 3.8.1 by @Gedochao in #3737
- Bump SBT to 1.11.2 by @Gedochao in #3739
- Update Scala Native to 0.5.8 by @scala-steward in #3728
Full Changelog: v1.8.1...v1.8.2
1.8.1 4 giugno 2025 — 64 bit MSI
Note di rilascio
Support for Scala 3.7.1
This Scala CLI version switches the default Scala version to 3.7.1.
scala-cli version
# Scala CLI version: 1.8.1
# Scala version (default): 3.7.1
Added by @Gedochao in #3707
Support for URLs in using file directives
It is now possible to use URLs in using file directives, which allows linking sources from the net.
//> using file https://raw.githubusercontent.com/softwaremill/sttp/refs/heads/master/examples/src/main/scala/sttp/client4/examples/json/GetAndParseJsonCatsEffectCirce.scala
Added during a Scala Tooling Spree by @ivan-klass, @majk-p and @tgodzik in #3681
Features
- Support links in using file directive (implements #1328) by @ivan-klass, @majk-p and @tgodzik in #3681
Fixes
- Fix race condition in local repo setup by @unlsycn in #3693
- Fix for #3481 by @philwalk in #3677
Internal and build changes
- bugfix: Fix mill script on fish by @tgodzik in #3700
- Make test-fish-shell, test-hypothetical-sbt-export and bloop-memory-footprint required for publishing by @Gedochao in #3701
- [NIT] Refactor Scala CLI CI scripts by @Gedochao in #3702
- Remove the github-dependency-graph CI workflow by @Gedochao in #3703
- Add more tests for URLs in using file directives by @Gedochao in #3706
Documentation changes
- Fix Changing Java versions document by @tmrkw1497 in #3697
- Back port of documentation changes to main by @github-actions in #3699
Updates
- Update scala-cli.sh launcher for 1.8.0 by @github-actions in #3672
- Update semanticdb-shared_2.13 to 4.13.6 by @scala-steward in #3678
- Bump sass from 1.87.0 to 1.88.0 in /website by @dependabot in #3676
- Bump java-class-name to 0.1.6 by @Gedochao in #3679
- Update scala-cli-signing to 0.2.7 by @scala-steward in #3683
- Update mill scripts by @Gedochao in #3686
- Bump sass from 1.88.0 to 1.89.0 in /website by @dependabot in #3687
- Bump scala-js-cli to 1.19.0.1 by @Gedochao in #3689
- Bump Scala 3 Next RC to 3.7.1-RC2 by @Gedochao in #3692
- Update sbt, scripted-plugin to 1.11.0 by @scala-steward in #3696
- Bump mill to 0.12 by @Gedochao in #3691
- Bump scalafmt to 3.9.7 & reformat by @Gedochao in #3705
- Bump @docusaurus/preset-classic from 3.7.0 to 3.8.0 in /website by @dependabot in #3709
- Bump sass from 1.89.0 to 1.89.1 in /website by @dependabot in #3710
- Bump Scala Next to 3.7.1 by @Gedochao in #3707
New Contributors
- @unlsycn made their first contribution in #3693
- @tmrkw1497 made their first contribution in #3697
- @ivan-klass made their first contribution in #3681
Full Changelog: v1.8.0...v1.8.1
1.8.0 8 maggio 2025 — 64 bit MSI
Note di rilascio
Support for Scala 3.7.0 and 3.3.6
This Scala CLI version switches the default Scala version to 3.7.0.
The CLI internals are now built with Scala 3.3.6.
scala-cli version
# Scala CLI version: 1.8.0
# Scala version (default): 3.7.0
Added by @Gedochao in #3661
Support for Scala.js 1.19.0
This Scala CLI version adds support for Scala.js 1.19.0.
scala-cli -e 'println("Hello")' --js
# Compiling project (Scala 3.7.0, Scala.js 1.19.0)
# Compiled project (Scala 3.7.0, Scala.js 1.19.0)
# Hello
Added in #3643 and VirtusLab/scala-js-cli#134
Drop support for Scala <3.3 in runner and test-runner modules
Starting with Scala CLI v1.8.0, the runner and test-runner modules are built with Scala 3.3.6 LTS (on par with other modules built with Scala 3). They used to be built with Scala 3.0.2, as those modules may get added to the project class path when running, respectively, the main scope and tests. This means that if the application is using pre-3.3 Scala 3, TASTy versions will be incompatible.
This is mostly informative, as the change should not be breaking for standard Scala CLI usage, even if an older Scala 3 version is being used. For builds using Scala <3.3, the CLI will automatically fall back to version 1.7.1 of the modules, with an appropriate warning being printed. As the fallback will not be updated in the future, some Scala CLI features might start breaking at some point, as the APIs will stop being fully in sync.
scala-cli -e 'println("Hello")' --runner -S 3.1
# [warn] Scala 3.1.3 is no longer supported by the runner module.
# [warn] Defaulting to a legacy runner module version: 1.7.1.
# [warn] To use the latest runner, upgrade Scala to at least Scala 3.3.
# Compiling project (Scala 3.1.3, JVM (17))
# Compiled project (Scala 3.1.3, JVM (17))
# Hello
scala-cli test . -S 3.2
# [warn] Scala 3.2.2 is no longer supported by the test-runner module.
# [warn] Defaulting to a legacy test-runner module version: 1.7.1.
# [warn] To use the latest test-runner, upgrade Scala to at least 3.3.
# Compiling project (test, Scala 3.2.2, JVM (17))
# Compiled project (test, Scala 3.2.2, JVM (17))
# Test run started
# Test MyTests.foo started
# Hello, world!
# Test MyTests.foo finished, took 0.001 sec
# Test run finished: 0 failed, 0 ignored, 1 total, 0.003s
Realistically, the change is only breaking for apps using those modules directly themselves, either depending on them or using them to run things. In either case, it is recommended to update Scala up to at least 3.3 LTS.
Added by @Gedochao in #3650
Scala CLI now detects and runs multiple test frameworks, rather than just one
When running tests in a project with multiple test frameworks in use, Scala CLI will now attempt to detect and run all of them, rather than just one.
scala-cli test .
# Compiling project (Scala 3.7.0, JVM (23))
# Compiled project (Scala 3.7.0, JVM (23))
# Compiling project (test, Scala 3.7.0, JVM (23))
# Compiled project (test, Scala 3.7.0, JVM (23))
# Munit:
# + foo 0.007s
# -------------------------------- Running Tests --------------------------------
# + MyTests.foo 1ms
# Tests: 1, Passed: 1, Failed: 0
# + SimpleSpec
# Hello from zio-test
# + print hello and assert true
# 1 tests passed. 0 tests failed. 0 tests ignored.
#
# Executed in 97 ms
#
# Completed tests
# ScalaTestSpec:
# example
# - should work
# Run completed in 44 milliseconds.
# Total number of tests run: 1
# Suites: completed 1, aborted 0
# Tests: succeeded 1, failed 0, canceled 0, ignored 0, pending 0
# All tests passed.
Additionally, it is now possible to pre-define multiple test frameworks to use (rather than just one, as before).
//> using test.frameworks org.scalatest.tools.Framework munit.Framework custom.CustomFramework
Pre-defining test frameworks may be preferable for bigger projects, as it allows to skip framework detection and run them directly. This is significant particularly for running tests with Scala Native and Scala.js.
Added by @Gedochao in #3653
Features
- Support the --test flag with the publi
1.7.1 18 marzo 2025 — 64 bit MSI
Note di rilascio
Support for Scala 3.6.4
This Scala CLI version switches the default Scala version to 3.6.4.
scala-cli version
# Scala CLI version: 1.7.1
# Scala version (default): 3.6.4
Added by @Gedochao in #3544
Support the --test command line option for doc
It is now possible to generate docs from the test scope with the --test flag.
Added by @Gedochao in #3539
Features
- Support the --test flag with the doc sub-command by @Gedochao in #3539
Internal and build changes
- Adjust dependabot configuration for the docs website by @Gedochao in #3555
Documentation changes
- docs: document Scala Native flag options by @scarf005 in #3557
Updates
- Update jsoup to 1.19.1 by @scala-steward in #3542
- Update scala-cli.sh launcher for 1.7.0 by @github-actions in #3543
- Bump Scala 3 Next to 3.6.4 by @Gedochao in #3544
- Bump SBT to 1.10.10 by @Gedochao in #3545
- Update semanticdb-shared_2.13 to 4.13.3 by @scala-steward in #3549
- Update scalafmt-cli_2.13, scalafmt-core to 3.9.3 by @scala-steward in #3548
- Bump scala-cli-signing to 0.2.6 by @Gedochao in #3552
- Bump react-player from 2.11.2 to 2.16.0 in /website by @dependabot in #3561
- Bump dorny/test-reporter from 1 to 2 by @dependabot in #3559
- Bump docusaurus-plugin-sass from 0.2.5 to 0.2.6 in /website by @dependabot in #3563
- Back port of documentation changes to main by @github-actions in #3565
- Update scalafmt-cli_2.13, scalafmt-core to 3.9.4 by @scala-steward in #3567
- Bump @easyops-cn/docusaurus-search-local from 0.38.1 to 0.49.1 in /website by @dependabot in #3562
- Update announced Scala 3 Next to 3.6.4 by @Gedochao in #3569
- Update semanticdb-shared_2.13 to 4.13.4 by @scala-steward in #3568
1.7.0 6 marzo 2025 — 64 bit MSI
Note di rilascio
Switch to scalameta/scalafmt images of scalafmt 3.9.1+
Since version 3.9.1 scalafmt ships with native images built with Scala Native. As a result, we are sunsetting https://github.com/virtuslab/scalafmt-native-image and Scala CLI will use the artifacts from https://github.com/scalameta/scalafmt for scalafmt versions >=3.9.1
Note that older Scala CLI versions may still attempt to download a native image from the old repository for the new versions.
We will keep releasing those for a short while to help late upgraders migrate.
scala-cli fmt -F -version
# scalafmt 3.9.2
Added by @Gedochao in #3521
Support the --test command line option for run and package
It is now possible to run a main method from the test scope with the --test flag.
//> using target.scope test
@main def helloFromTestScope(): Unit = println("Hello from the test scope!")
scala-cli run HelloFromTestScope.scala --test --power
# Hello from the test scope!
Similarly, it is now possible to package the main and test scopes together, using the same --test flag.
scala-cli package HelloFromTestScope.scala --test --power
# # Wrote /Users/pchabelski/IdeaProjects/scala-cli-tests-2/untitled/v170/helloFromTestScope, run it with
# ./helloFromTestScope
./helloFromTestScope
# Hello from the test scope!
Keep in mind that the test and main scopes are still separate compilation units, where the test scope depends on the main scope (while the reverse isn't true).
Added by @Gedochao in #3502 and #3519
Detect objects with main class in scripts
Scala CLI now detects objects with a main method in scripts and runs them by default.
object Main {
def main(args: Array[String]): Unit = println("Hello")
}
Do note that, this is chiefly a convenience feature for migration of old scripts, using the old, legacy scala runner.
If any top-level code is present alongside an object with a main method, the top-level code will be run instead and a warning printed.
object Main {
def main(args: Array[String]): Unit = println("Hello")
}
println("Top level code says hello")
scala-cli run scriptWithMainObjectAndTopLevel.sc
# [warn] Script contains objects with main methods and top-level statements, only the latter will be run.
# Compiling project (Scala 3.6.3, JVM (23))
# Compiled project (Scala 3.6.3, JVM (23))
# Top level code says hello
Additionally, cases where multiple main methods are present in the same script are not supported, inidicated by a warning.
object Main {
def main(args: Array[String]): Unit = println("Hello1")
}
object Main2 {
def main(args: Array[String]): Unit = println("Hello2")
}
Note that no output is printed in this example:
scala-cli run scriptWithMultipleMainObjects.sc
# [warn] Only a single main is allowed within scripts. Multiple main classes were found in the script: Main, Main2
# Compiling project (Scala 3.6.3, JVM (23))
# Compiled project (Scala 3.6.3, JVM (23))
Finally, main methods defined in this way cannot be chosen via the --main-class command line option directive, and neither will they be printed by the --list-main-methods flag.
Added by @tgodzik in #3479
Support for Scala Native 0.5.7
This Scala CLI version switches the default Scala Native version to 0.5.7.
scala-cli -e 'println("Hello from Scala Native 0.5.7!")' --native
# Compiling project (Scala 3.6.3, Scala Native 0.5.7)
# Compiled project (Scala 3.6.3, Scala Native 0.5.7)
# [info] Linking (multithreadingEnabled=true, disable if not used) (1045 ms)
# [info] Discovered 915 classes and 5608 methods after classloading
# [info] Checking intermediate code (quick) (41 ms)
# [info] Multithreading was not explicitly enabled - initial class loading has not detected any usage of system threads. Multithreading support will be disabled to improve performance.
# [info] Linking (multithreadingEnabled=false) (352 ms)
# [info] Discovered 498 classes and 2506 methods after classloading
# [info] Checking intermediate code (quick) (9 ms)
# [info] Discovered 477 classes and 1930 methods after optimization
# [info] Optimizing (debug m
1.6.2 12 febbraio 2025 — 64 bit MSI
Note di rilascio
Support for Scala.js 1.18.2
This Scala CLI version adds support for Scala.js 1.18.2.
scala-cli -e 'println("Hello")' --js
# Compiling project (Scala 3.6.3, Scala.js 1.18.2)
# Compiled project (Scala 3.6.3, Scala.js 1.18.2)
# Hello
Added in #3454
Support for Scala 3.3.5
The Scala CLI internals are now built with Scala 3.3.5.
Added by @Gedochao in #3466
Deprecations
- Add a deprecation warning for using Scala 2.12.4 with Bloop by @Gedochao in #3470
Fixes
- Remove conflicting Scala 2.13 io.get-coursier:dependency dependency & add a CI check by @Gedochao in #3472
Internal and build changes
- Fix Scala Steward post-update hook by @fthomas in #3465
- Bump Windows runners to windows-2025 on the CI by @Gedochao in #3489
Documentation changes
- Add warning about test files in publish docs by @majk-p in #3486
- Back port of documentation changes to main by @github-actions in #3487
Updates
- Update scala-cli.sh launcher for 1.6.1 by @github-actions in #3452
- Update munit to 1.1.0 by @scala-steward in #3455
- Update latest announced Scala 3 Next RC to 3.6.4-RC1 by @Gedochao in #3458
- Update scalajs-sbt-test-adapter_2.13 to 1.18.2 by @scala-steward in #3454
- Update Scala 3 LTS to 3.3.5 by @Gedochao in #3466
- Update scalafmt-cli_2.13, scalafmt-core to 3.8.6 by @scala-steward in #3462
- Update sbt, scripted-plugin to 1.10.7 by @scala-steward in #3461
- Bump Scala 3 Next announced version to 3.6.3 by @Gedochao in #3469
- Bump ammonite to 3.0.1 by @Gedochao in #3468
- Update core_2.13 to 3.10.3 by @scala-steward in #3476
- Update scala-collection-compat to 2.13.0 by @scala-steward in #3478
- Update case-app to 2.1.0-M30 by @scala-steward in #3485
- Bump Scala toolkit to 0.6.0 by @Gedochao in #3471
- Update Scala Toolkit to 0.7.0 by @Gedochao in #3488
New Contributors
- @fthomas made their first contribution in #3465
- @majk-p made their first contribution in #3486
Full Changelog: v1.6.1...v1.6.2
1.6.1 22 gennaio 2025 — 64 bit MSI
Note di rilascio
Pass --repl-init-script directly to the Scala REPL
Passing an initialization script to the REPL with --repl-init-script is now allowed directly, rather than after -- or with -O.
The --repl-init-script is a REPL option introduced in Scala 3.6.4, so it's not available for earlier Scala versions.
scala-cli repl -S 3.6.4-RC1 --repl-init-script 'println("Hello")'
# Hello
# Welcome to Scala 3.6.4-RC1 (23.0.1, Java OpenJDK 64-Bit Server VM).
# Type in expressions for evaluation. Or try :help.
#
# scala>

Added by @Gedochao in #3447Hotfix release
Although Scala CLI 1.6.1 includes a few updates and improvements, it is primarily a hotfix release for version 1.6.0, which due to technical limitations wasn't available on some of our distribution channels.For extra context refer to:
- Scala CLI 1.6.0 release notes
Features
- Enable direct usage of --repl-init-script with Scala REPL >= 3.6.4-RC1 by @Gedochao in #3447
Internal and build changes
- Fix update-packages step of the release job on the CI by @Gedochao in #3446
Updates
- Bump Scala CLI launchers to v1.6.0 by @Gedochao in #3450
- chore: Update Bloop to 2.0.8 by @tgodzik in #3449
- Update scalafmt to 3.8.5 by @scala-steward in #3442
Full Changelog: https://github.com/VirtusLab/scala-cli/compare/v1.6.0...v1.6.1
1.6.0 21 gennaio 2025 — 64 bit MSI
Note di rilascio
Fixed commas being treated as using directive value separators & deprecated using them with whitespace
NOTE: these are breaking changes affecting using directives syntax.
They're technically fixes + a deprecation, but in a very rare scenario existing builds could break, if they were relying on the erroneous syntax.This Scala CLI version fixes commas (,) being treated as using directive value separators on their own.Formerly, a directive like:
//> using options -Wunused:locals,privates

Would be (erroneously) interpreted as the following 2 options for the compiler: -Wunused:locals and privates.
As a comma will now no longer be treated as a separator (which it never should have been), it will now be interpreted correctly as
a single option: -Wunused:locals,privates.
Before this change, the only way to pass this value to the options directive key was escaping the comma with double quotes:
//> using options "-Wunused:locals,privates"

The escaping is no longer necessary.Additionally, using commas along with whitespace as separators is now deprecated for future removal.
scala-cli compile --scala-snippet '//> using options -Wunused:locals, -Wunused:privates'
# [warn] <snippet>-scala-snippet:1:34
# [warn] Use of commas as separators is deprecated. Only whitespace is neccessary.
# Starting compilation server
# Compiling project (Scala 3.6.3, JVM (23))
# Compiled project (Scala 3.6.3, JVM (23))

Finally, the use of /* (..) */ comments in using directives is no longer supported.
//> using /* some comment */ options -Wunused:locals /* some other comment */ -Wunused:privates
// this syntax used to be supported, but will now fail.

Added by @Gedochao in #3381 and #3333 andCap vague Scala versions at defaults
NOTE: this is a breaking change regarding how the Scala version is resolved.We have changed how a Scala version is picked when major or major.minor prefixes are passed, rather than the full version tag:
- -S 3 will now point to the launcher default Scala 3 Next version, rather than whatever is the latest stable version that coursier can find upstream
- similarly, -S 3.<current launcher default minor> will now point to the launcher default Scala 3 Next version
- -S 2.13 will point to the launcher default Scala 2.13 version (which up till now only affected tests and generated docs)
- similarly, -S 2.12 will now point to the launcher default Scala 2.12 version
- launcher defaults are overridden for a particular Scala series with the --cli-user-scala-version to accommodate for Scala CLI installed as scala
For example:
//> using 3
// When compiled with Scala CLI v1.6.0, this snippet will use Scala 3.6.3 (the built-in default), even if a newer version has been released.

Added by @Gedochao in #3259Support for Scala 3.6.3 and 2.13.16
This Scala CLI version switches the default Scala version to 3.6.3.
scala-cli version
# Scala CLI version: 1.6.0
# Scala version (default): 3.6.3

It has also been tested with Scala 2.13.16.Added by @Gedochao in #3426 and #3418Support for Scala.js 1.18.1
This Scala CLI version adds support for Scala.js 1.18.1.
scala-cli -e 'println("Hello")' --js
# Compiling project (Scala 3.6.3, Scala.js 1.18.1)
# Compiled project (Scala 3.6.3, Scala.js 1.18.1)
# Hello

Added in #3440 and VirtusLab/scala-js-cli#113(⚡️ experimental) scalafix integration
We now support running scalafix rules with the fix sub-command.
scala-cli fix . --power
# The `fix` sub-command is experimental
# Please bear in mind that non-ideal user experience should be expected.
# If you encounter any bugs or have feedback to share, make sure to reach out to the maintenance team at
# Running built-in rules...
# Writing project.scala
# Removing directives from Smth.scala
# Built-in rules completed.
# Running scalafix rules...
# Starting compilation server
# Compiling project (Scala 3.6.3, JVM (23))
# [warn] ./Main.scala:2:7
# [warn] unused local definition
# [warn] val unused = "unused"
# [warn] ^^^^^^
# Compiled project (Scala 3.6.3, JVM (23))
# scalafix rul
1.5.4 21 novembre 2024 — 64 bit MSI
Note di rilascio
Hotfix release
Although Scala CLI 1.5.4 includes a few updates and improvements, it is primarily a hotfix release for versions 1.5.2 and 1.5.3, which due to technical limitations weren't available on some of our distribution channels.Extra context:
- Scala CLI 1.5.2 release notes
- Scala CLI 1.5.3 release notes
The main list of enhancements and fixes is listed in the release notes for 1.5.2.Support for Scala Native 0.5.6
This Scala CLI version switches the default Scala Native version to 0.5.6.
scala-cli -e 'println("Hello from Scala Native 0.5.6!")' --native
# Compiling project (Scala 3.5.2, Scala Native 0.5.6)
# Compiled project (Scala 3.5.2, Scala Native 0.5.6)
# [info] Linking (multithreadingEnabled=true, disable if not used) (949 ms)
# [info] Discovered 887 classes and 5408 methods after classloading
# [info] Checking intermediate code (quick) (40 ms)
# [info] Multithreading was not explicitly enabled - initial class loading has not detected any usage of system threads. Multithreading support will be disabled to improve performance.
# [info] Linking (multithreadingEnabled=false) (285 ms)
# [info] Discovered 499 classes and 2500 methods after classloading
# [info] Checking intermediate code (quick) (7 ms)
# [info] Discovered 478 classes and 1914 methods after optimization
# [info] Optimizing (debug mode) (429 ms)
# [info] Produced 9 LLVM IR files
# [info] Generating intermediate code (296 ms)
# [info] Compiling to native code (1464 ms)
# [info] Linking with [pthread, dl]
# [info] Linking native code (immix gc, none lto) (208 ms)
# [info] Postprocessing (0 ms)
# [info] Total (3728 ms)
# Hello from Scala Native 0.5.6!

Added by @Gedochao in #3295Internal changes
- Pin Fedora docker image at fedora:40 by @Gedochao in #3283
- Don't fail the update-packages and windows-packages jobs on individual distributions' steps by @Gedochao in #3288
Documentation changes
- Fix broken example in //> using dep reference doc by @Gedochao in #3281
- Mention distribution limitations in the Scala CLI 1.5.3 release notes by @Gedochao in #3286
- Back port of documentation changes to main by @github-actions in #3287
Updates
- Update mill-native-image to 0.1.29 by @Gedochao in #3278
- Update expecty to 0.17.0 by @scala-steward in #3277
- Update Bloop to 2.0.5 by @Gedochao in #3276
- Update dependency to 0.2.5 by @scala-steward in #3269
- Update coursier to 2.1.17 by @Gedochao in #3275
- Update SBT to 1.10.5 by @Gedochao in #3280
- Update java-class-name to 0.1.4 by @Gedochao in #3284
- Update scala-cli.sh launcher for 1.5.3 by @Gedochao in #3285
- Update Scala Native to 0.5.6 by @Gedochao in #3295
- Update Mill to 0.11.13 by @Gedochao in #3296
- Update coursier to 2.1.17 for Linux arm64 builds by @Gedochao in #3298
- Update coursier/dependency to 0.3.1 by @Gedochao in #3297
Full Changelog: https://github.com/VirtusLab/scala-cli/compare/v1.5.3...v1.5.4
1.5.3 14 novembre 2024 — 64 bit MSI
Note di rilascio
This is a hotfix release, which makes all the fixes and enhancements of Scala CLI 1.5.2 available through the standard distribution channels (rather than just Maven Central).For the main release notes, please refer to the v1.5.2 ones.Hot-fixes
- Tag failing native packager tests as flaky by @Gedochao in #3270
- Make publishing depend on all integration tests & docs tests by @Gedochao in #3272
Full Changelog: https://github.com/VirtusLab/scala-cli/compare/v1.5.2...v1.5.3
1.5.1 1 ottobre 2024 — 64 bit MSI
Note di rilascio
Support for Scala 3.5.1, 3.3.4, 2.13.15 and 2.12.20
This Scala CLI version switches the default Scala version to 3.5.1.
scala-cli version
# Scala CLI version: 1.5.1
# Scala version (default): 3.5.1

It has also been tested with Scala 3.3.4, 2.13.15 and 2.12.20.
The Scala CLI internals are now built with Scala 3.3.4.Support for Scala.js 1.17.0
This version adds Scala CLI support for Scala.js 1.17.0.Features
- Apply increased verbosity when compiling via BSP by @Gedochao in #3202
Fixes
- improvement: Use distinct on ScalacOpt by @tgodzik in #3139
- bugfix: Check if last segment of path exists by @tgodzik in #3131
- bugfix: Fix duplicate options detection by @tgodzik in #3151
- bugfix: Also deduplicate if options split by space by @tgodzik in #3154
- Fix setup-ide for --cli-version by @Gedochao in #3161
- Ensure main classes from inputs take precedence before those found in JARs added to the class path by @Gedochao in #3165
- Ensure that passing Java props into Scala CLI as launcher args would also pass it into BSP configuration by @Gedochao in #3169
- NIT fixes for the export sub-command by @Gedochao in #3197
- Ensure --version passed to the default command works with --offline by @Gedochao in #3207
Documentation changes
- Docs: Fix suppress option for directives-in-multiple-files warning by @mims-github in #3133
- Doc: Tips on how to list available JVMs using coursier by @jatcwang in #3129
- Back port of documentation changes to main by @github-actions in #3160
- Use Scala 3 in the Scala Native gif by @Gedochao in #3195
Build and internal changes
- Add tests for setup-ide with --cli-version by @Gedochao in #3163
- Change how help is referenced to avoid initialization oddness & update case-app to 2.1.0-M29 by @coreyoconnor in #3152
- Adjust tests for Scala 3.3.4 by @Gedochao in #3164
- NIT Refactor existing --watch tests by @Gedochao in #3175
- Generate an empty JUnit report when no tests were run, rather than fail by @Gedochao in #3179
- NIT Extract REPL tests relying on Ammonite into dedicated traits by @Gedochao in #3209
Updates
- Update scala-cli.sh launcher for 1.5.0 by @github-actions in #3125
- Bump webpack from 5.89.0 to 5.94.0 in /website by @dependabot in #3136
- Bump micromatch from 4.0.5 to 4.0.8 in /website by @dependabot in #3135
- Update os-lib to 0.10.5 by @scala-steward in #3140
- Update Scala Next latest announced version to 3.5.0 by @Gedochao in #3145
- Update Scala 2.12 to 2.12.20 by @Gedochao in #3144
- Update Scala CLI as scala related docs by @Gedochao in #3155
- Update os-lib to 0.10.6 by @scala-steward in #3159
- Update coursier to 2.1.11 by @scala-steward in #3166
- Update coursier to 2.1.12 by @scala-steward in #3174
- Update ammonite to 3.0.0-M2-30-486378af by @scala-steward in #3172
- Update sbt to 1.10.2 by @scala-steward in #3180
- Update munit to 1.0.2 by @scala-steward in #3176
- Bump scala-cli-signing to 0.2.4 by @Gedochao in #3183
- Bump coursier to 2.1.13 and mill-native-image to 0.1.26 by @Gedochao in #3182
- Update Scala Next to 3.5.1 by @Gedochao in #3190
- Update Scala 3 Next RC to 3.5.2-RC1 by @scala-steward in #3187
- Update Scala 2.13 to 2.13.15 by @Gedochao in #3201
- Update guava to 33.3.1-jre by @scala-steward in #3203
- chore: Update Bloop to 2.0.2 by @tgodzik in #3192
- Update Scala 3 LTS to 3.3.4 by @Gedochao in #3208
- Set Scala 3.5.1 as the latest announced version by @Gedochao in #3206
New Contributors
- @mims-github made their first contribution in #3133
- @jatcwang made their first contribution in #3129
- @coreyoconnor made their first contribution in #3152
Full Changelog: https://github.com/VirtusLab/scala-cli/compare/v1.5.0...v1.5.1
1.5.0 23 agosto 2024 — 64 bit MSI
Note di rilascio
Support for Scala 3.5.0
This Scala CLI version switches the default Scala version to 3.5.0.
scala-cli version
# Scala CLI version: 1.5.0
# Scala version (default): 3.5.0

Added by @Gedochao in Support for Scala Native 0.5.5
This Scala CLI version switches the default Scala Native version to 0.5.5.
scala-cli -e 'println("Hello from Scala Native 0.5.5!")' --native
# Compiling project (Scala 3.5.0, Scala Native 0.5.5)
# Compiled project (Scala 3.5.0, Scala Native 0.5.5)
# [info] Linking (multithreadingEnabled=true, disable if not used) (894 ms)
# [info] Discovered 888 classes and 5407 methods after classloading
# [info] Checking intermediate code (quick) (31 ms)
# [info] Multithreading was not explicitly enabled - initial class loading has not detected any usage of system threads. Multithreading support will be disabled to improve performance.
# [info] Linking (multithreadingEnabled=false) (299 ms)
# [info] Discovered 499 classes and 2497 methods after classloading
# [info] Checking intermediate code (quick) (5 ms)
# [info] Discovered 478 classes and 1912 methods after optimization
# [info] Optimizing (debug mode) (403 ms)
# [info] Produced 9 LLVM IR files
# [info] Generating intermediate code (368 ms)
# [info] Compiling to native code (1565 ms)
# [info] Linking with [pthread, dl]
# [info] Linking native code (immix gc, none lto) (83 ms)
# [info] Postprocessing (0 ms)
# [info] Total (3625 ms)
# Hello from Scala Native 0.5.5!

Added by @Gedochao in #3117(⚡️ experimental) Support for exporting to a Maven project
It is now possible to export a Scala CLI project to Maven.
scala-cli export --script-snippet 'println("No need to create the pom.xml yourself!")' --mvn --power -o mvn-demo
# Some utilized features are marked as experimental:
# - `export` sub-command
# - `--mvn` option
# Please bear in mind that non-ideal user experience should be expected.
# If you encounter any bugs or have feedback to share, make sure to reach out to the maintenance team at
# Exporting to a maven project...
# Exported to: ~/scala-cli-tests/mvn-demo
cd mvn-demo
mvn scala:run -DmainClass=snippet_sc
# (...)
# No need to create the pom.xml yourself!
# [INFO] ------------------------------------------------------------------------
# [INFO] BUILD SUCCESS
# [INFO] ------------------------------------------------------------------------
# [INFO] Total time: 2.589 s
# [INFO] Finished at: 2024-08-22T12:08:36+02:00
# [INFO] ------------------------------------------------------------------------

Added by @yadavan88 in Support for launching apps from dependencies without other inputs
It is now possible to launch an app by just specifying its dependency, without the need to provide any source files.
In such a case the build server will not be started, as there's no compilation to be done.
There's also no need to specify the main class, as it's now being detected automatically in dependencies as well.
Do note that explicitly calling the run sub-command is necessary here, as otherwise Scala CLI will default to the REPL.
scala-cli run --dep io.get-coursier:coursier-cli_2.13:2.1.10 -- version
# 2.1.10

This can be used similarly to Coursier's cs launch.Added by @kasiaMarek in (⚡️ experimental) JMH available in various commands and via using directives
Some improvements have been done to the experimental support for JMH (Java Microbenchmark Harness).The --jmh and --jmh-version options can now be passed to a number of commands:
- run, as it was before (note that when --jmh is passed to run, the project's main class will default to running the benchmarks rather than the project's default main method; this behaviour is likely to be changed in future versions).
- compile, so that a Scala CLI project with benchmarking can be compiled separately from being run;
- package, although the resulting artifacts will run the project as normal for now, rather than benchmarks;
- setup-ide, so that benchmarking projects can be imported to your IDE of choice;
- test and export will now als
1.4.2 2 agosto 2024 — 64 bit MSI
Note di rilascio
Environment variable help with --env-help
You can now list environment variables used internally with the --envs-help flag.
This does include some environment variable used by Scala CLI's dependencies (like Coursier, Bloop, etc.), but should not be treated as an exhaustive list.
scala-cli --env-help --power
# The following is the list of environment variables used and recognized by Scala CLI.
# It should by no means be treated as an exhaustive list.
# Some tools and libraries Scala CLI integrates with may have their own, which may or may not be listed here.
#
# Scala CLI
# SCALA_CLI_CONFIG Scala CLI configuration file path
# SCALA_CLI_HOME Scala CLI home directory
# SCALA_CLI_INTERACTIVE Interactive mode toggle
# SCALA_CLI_INTERACTIVE_INPUTS Interactive mode inputs
# SCALA_CLI_POWER Power mode toggle
# SCALA_CLI_PRINT_STACK_TRACES Print stack traces toggle
# SCALA_CLI_SODIUM_JNI_ALLOW Allow to load libsodiumjni
# SCALA_CLI_VENDORED_ZIS Toggle io.github.scala_cli.zip.ZipInputStream
#
# Java
# JAVA_HOME Java installation directory
# JAVA_OPTS Java options
# JDK_JAVA_OPTIONS JDK Java options
#
# Coursier
# COURSIER_CACHE Coursier cache location
# COURSIER_MODE Coursier mode (can be set to 'offline')
#
# Spark
# SPARK_HOME (power) Spark installation directory
#
# Miscellaneous
# PATH The app path variable
# DYLD_LIBRARY_PATH Runtime library paths on Mac OS X
# LD_LIBRARY_PATH Runtime library paths on Linux
# PATHEXT Executable file extensions on Windows
# SHELL The currently used shell
# VCVARSALL Visual C++ Redistributable Runtimes
# ZDOTDIR Zsh configuration directory
#
# Internal
# CI (power) Marker for running on the CI

Added by @Gedochao in Features
- Add environment variable help under --envs-help & refactor environment variable usage by @Gedochao in #3055
Fixes
- Fix default scaladoc config, so that id doesn't break all scaladoc links by @KacperFKorban in #3041
- Fix the REPL crashing when a dependency's classpath is called by a macro by @Gedochao in #3043
- Fix Mill export for projects with just the test scope by @Gedochao in #3046
- Ensure --cli-default-scala-version is respected by --scalac-help by @Gedochao in #3048
- Fix generate-linux-arm64-native-launcher by @Gedochao in #3053
Internal changes
- Prevent some flaky tests from failing on the CI by @Gedochao in #3049
- Switch to GitHub M1/aarch64 runners on the CI by @Gedochao in #3050
- Fix Scala 2 nightly test failures by tagging them as flaky or skipping by @Gedochao in #3064
Updates
- Update scala-cli.sh launcher for 1.4.1 by @github-actions in #3039
- Update ammonite to 3.0.0-M2-15-9bed9700 by @scala-steward in #3059
- Update metaconfig-typesafe-config to 0.13.0 by @scala-steward in #3058
- Update semanticdb-shared_2.13.14 to 4.9.9 by @scala-steward in #3063
- Update scalafmt-cli_2.13, scalafmt-core to 3.8.3 by @scala-steward in #3062
- Update os-lib to 0.10.3 by @scala-steward in #3061
Full Changelog: https://github.com/VirtusLab/scala-cli/compare/v1.4.1...v1.4.2
1.4.1 18 luglio 2024 — 64 bit MSI
Note di rilascio
Pass compiler args as an @argument file
You can shorten or simplify a Scala CLI command by using an @argument file to specify a text file that contains compiler arguments.
-d
outputDirectory

The feature may help to work around the Windows command line character limit, among other things, making sure your scripts run on any operating system of your choice.
scala-cli run -e 'println("Hey, I am using an @args file!")' @args.txt

This works similarly to the command-line argument files feature of Java 9 and fixes backwards compatibility with the old scala runner (pre-Scala-3.5.0).Added by @kasiaMarek in #3012Explicitly enable or disable multithreading in Scala Native
It is now possible to explicitly enable or disable multithreading in Scala Native builds.
You can do it by setting the //> using nativeMultithreading directive:
//> using platform native
//> using nativeMultithreading
import scala.concurrent._
import scala.concurrent.duration._
import ExecutionContext.Implicits.global
val promise = Promise[Int]()
val thread = new Thread(new Runnable {
def run(): Unit = {
Thread.sleep(100)
promise.success(42)
}
})
thread.start()
val result = Await.result(promise.future, 2.seconds)
println(result)

Or the --native-multithreading command line option:
scala-cli run native_multithreading.sc --native --native-multithreading

Added by @Gedochao in Features
- Add a command line option & directive for enabling/disabling Scala Native multithreading by @Gedochao in #3011
- feat: allow to pass scalac options using files by @kasiaMarek in #3012
Fixes
- fix for 2954 running script in root dir by @philwalk in #2988
- Pass javaHome to Bloop by @kasiaMarek in #2985
- bugfix: Print info diagnostics by @tgodzik in #2990
- Ensure BSP respects --power mode by @Gedochao in #2997
- Add Scala to pure Java test builds by @Gedochao in #3009
- Fix --offline mode for scala-cli as scala installation via coursier by @Gedochao in #3029
- BugFix - Export issues when full scala version is not used in directives by @yadavan88 in #3032
Documentation changes
- Fix typo in docs by @ghostdogpr in #2996
- docs: remove . from command snippet by @spaceunifyfifty in #2998
Updates
- Update scala-cli.sh launcher for 1.4.0 by @github-actions in #2992
- Update winget-releaser to latest by @vedantmgoyal9 in #2991
- Update ammonite to 3.0.0-M2-13-23a8ef64 by @scala-steward in #2989
- Update Scala 3 Next RC to 3.5.0-RC2 by @scala-steward in #2981
- chore: Bump outdated javac-semanticdb plugin to 0.10.0 by @tgodzik in #3004
- Update Scala 3 Next RC to 3.5.0-RC3 by @scala-steward in #3002
- Update sbt to 1.10.1 by @scala-steward in #3015
- Bump Scala 3 Next RC to 3.5.0-RC4 by @Gedochao in #3018
- Swap scalameta trees for semanticdb-shared & bump scalameta to 4.9.8 by @Gedochao in #3017
- Update Scala 3 Next RC to 3.5.1-RC1 by @scala-steward in #3027
New Contributors
- @vedantmgoyal9 made their first contribution in #2991
- @ghostdogpr made their first contribution in #2996
- @spaceunifyfifty made their first contribution in #2998
Full Changelog: https://github.com/VirtusLab/scala-cli/compare/v1.4.0...v1.4.1
1.4.0 28 giugno 2024 — 64 bit MSI
Note di rilascio
Features
- Include test scope in the REPL when the --test flag is passed by @Gedochao in #2971
Fixes
- Fix BSP IllegalArgumentException when loading project in Metals by @joan38 in #2950
- Don't check for newer CLI versions when the --cli-version launcher param is passed (v1.4.0 and onwards, only) by @Gedochao in #2957
- fix: start bloop with jvm version from using directives for JVMs > 17 by @kasiaMarek in #2972
Documentation changes
- Typo fixed in scripts.md by @vaivanov95 in #2974
Internal changes
- Tag flaky docker image with scala.js app test by @Gedochao in #2977
Updates
- Update scala-cli.sh launcher for 1.3.2 by @github-actions in #2938
- Update guava to 33.2.1-jre by @scala-steward in #2947
- Update os-lib to 0.10.2 by @scala-steward in #2949
- Update ammonite to 3.0.0-M2-8-ba4429a2 by @scala-steward in #2948
- Update case-app to 2.1.0-M28 by @scala-steward in #2956
- Update Scala Toolkit to 0.4.0 & dynamically adjust Scala Native defaults by @Gedochao in #2955
- Update munit to 1.0.0 by @scala-steward in #2935
- Update ammonite to 3.0.0-M2-9-88291dd8 by @scala-steward in #2960
- Update scalameta to 4.9.6 by @scala-steward in #2967
- Update ammonite to 3.0.0-M2-10-f6e2c001 by @scala-steward in #2965
- Update scalafmt-cli_2.13, scalafmt-core to 3.8.2 by @scala-steward in #2966
- Update scalameta to 4.9.7 by @scala-steward in #2983
- Pin scala-cli-setup to v1 and update CI scripts' dependencies by @Gedochao in #2984
- Update Scala Native to 0.5.4 by @scala-steward in #2982
- Update mill-main to 0.11.8 by @scala-steward in #2980
- Update bloop-config_2.13 to 2.0.2 by @scala-steward in #2978
- Update ammonite to 3.0.0-M2-12-951bbc1e by @scala-steward in #2979
New Contributors
- @vaivanov95 made their first contribution in #2974
1.3.2 24 maggio 2024 — 64 bit MSI
Note di rilascio
Features
- Support ARM64 architecture to the launcher script for Mac OS by @carlosedp in #2895
- Incremental Scala.js Linking by @lolgab in #2928
Fixes
- Fix support of multiline shebang by @sierikov in #2908
- Pass scala2-sbt-bridge to Bloop explicitly for Scala 2.13.12+ by @Gedochao in #2927
- Ensure JAVA_HOME of setup-ide is respected by bsp by @Gedochao in #2920
- Improve launcher options handling by @Gedochao in #2931
Documentation changes
- Add docs for ignore keyword in snippets in md by @sierikov in #2898
- Back port of documentation changes to main by @github-actions in #2900
- Back port of documentation changes to main by @github-actions in #2910
- Add Scalafmt Cookbook by @sierikov in #2903
- Back port of documentation changes to main by @github-actions in #2914
- remove duplicated word by @naferx in #2915
- Remove unused imports by @naferx in #2916
- corrected instructions for downloading the launcher in Windows (fixes #2921) by @philwalk in #2922
Internal changes
- Fix instant-startup-scala-scripts.md overeager docs-tests by @Gedochao in #2909
Updates
- Update scala-cli.sh launcher for 1.3.1 by @github-actions in #2894
- Update ammonite to 3.0.0-M1-24-26133e66 by @scala-steward in #2896
- Update ammonite to 3.0.0-M2-1-3763a1d4 by @scala-steward in #2905
- Update scalameta to 4.9.4 by @scala-steward in #2906
- Update Scala Next to 3.4.2 by @Gedochao in #2911
- Update ammonite to 3.0.0-M2-2-741e5dbb by @scala-steward in #2913
- Update os-lib to 0.10.1 by @scala-steward in #2918
- Update scalameta to 4.9.5 by @scala-steward in #2919
- Update ammonite to 3.0.0-M2-3-b5eb4787 by @scala-steward in #2917
- Update Scala Next RC to 3.5.0-RC1 by @Gedochao in #2912
- Update bloop-rifle_2.13 to 1.5.17-sc-2 by @scala-steward in #2925
- Update sttp core_2.13 to 3.9.7 by @scala-steward in #2924
- Update ammonite to 3.0.0-M2-4-c3312916 by @scala-steward in #2923
- Bump scala-js-cli to v1.16.0.1 by @Gedochao in #2929
New Contributors
- @sierikov made their first contribution in #2898
- @naferx made their first contribution in #2915
1.3.1 6 maggio 2024 — 64 bit MSI
Note di rilascio
Fixes
- Adjust TASTY bump warnings to respect overridden Scala version defaults by @Gedochao in #2888
- Include scala3-staging and scala3-tasty-inspector artifacts when the --with-compiler option is passed in Scala 3 by @Gedochao in #2889
Internal changes
- Allow to override prog name with a launcher arg by @Gedochao in #2891
Updates
- Update scala-cli.sh launcher for 1.3.0 by @github-actions in #2876
- Update Scala 2 to 2.13.14 by @Gedochao in #2882
- Update guava to 33.2.0-jre by @scala-steward in #2883
- Update com.softwaremill.sttp.client3:core to 3.9.6 by @scala-steward in #2885
- Update sbt to 1.10.0 by @scala-steward in #2887
- Update ammonite to 3.0.0-M1-19-a7973e17 by @scala-steward in #2884
- Bump coursier to 2.1.10 by @Gedochao in #2890
1.3.0 26 aprile 2024 — 64 bit MSI
Note di rilascio
Fixes
- Add missing Scala 2 compiler print options by @Gedochao in #2848
- Don't recommend latest for toolkit version by @keynmol in #2852
- Explicitly pass scala3-sbt-bridge to Bloop by @Gedochao in #2873
Internal changes
- Add launcher options allowing to override the default Scala version by @Gedochao in #2860
Updates and maintenance
- Update scala-cli.sh launcher for 1.2.2 by @github-actions in #2847
- Update os-lib to 0.10.0 by @scala-steward in #2854
- Update scala-collection-compat to 2.12.0 by @scala-steward in #2856
- Update slf4j-nop to 2.0.13 by @scala-steward in #2857
- Update pprint to 0.9.0 by @scala-steward in #2855
- Update fansi to 0.5.0 by @scala-steward in #2853
- Update using_directives to 1.1.1 by @scala-steward in #2863
- Update Scala Native to 0.5.1 by @scala-steward and @Gedochao in #2862
- Update bloop-core to 1.5.17-sc-1 by @scala-steward in #2873
- Update bloop-config to 2.0.0 by @scala-steward in #2873
1.2.2 11 aprile 2024 — 64 bit MSI
Note di rilascio
Enhancements
- Log a warning when invalid java properties are being passed by env vars by @Gedochao in #2843
Updates and maintenance
- Update scala-cli.sh launcher for 1.2.1 by @github-actions in #2828
- Update org.scalameta:trees_2.13 to 4.9.3 by @scala-steward in #2831
- Update ammonite to 3.0.0-M1-10-105f9e32 by @scala-steward in #2844
- Bump bloop-core to 1.5.16-sc-2 by @Gedochao in #2837
1.2.1 29 marzo 2024 — 64 bit MSI
Note di rilascio
Fixes
- Fix handling for -Xlint:help by @Gedochao in #2781
- Fix --semanticdb-targetroot & --semanticdb-sourceroot for scripts by @Gedochao in #2784
- Adjust actionable diagnostics for scripts by @rochala in #2815
- Fix publishing of runner & test-runner artifacts by @Gedochao in #2819
- bugfix: Fix Bloop import by @tgodzik in #2825
Enhancements
- Ensure external help options are mentioned in short help where available by @Gedochao in #2808
Internal changes
- Run integration tests for the latest Scala 3 Next RC by @Gedochao in #2824
Documentation changes
- Add installation guide for FreeBSD by @spacebanana420 in #2793
- Back port of documentation changes to main by @github-actions in #2797
Updates and maintenance
- Update scala-cli.sh launcher for 1.2.0 by @github-actions in #2783
- Update core_2.13 to 3.9.4 by @scala-steward in #2787
- Update ammonite to 3.0.0-M1-8-35694880 by @scala-steward in #2786
- Update trees_2.13 to 4.9.2 by @scala-steward in #2795
- Update guava to 33.1.0-jre by @scala-steward in #2801
- Bump follow-redirects from 1.15.4 to 1.15.6 in /website by @dependabot in #2803
- Add -unchecked to the list of options that don't require -O by @joan38 in #2800
- Update bloop-rifle_2.13 to 1.5.12-sc-1 by @scala-steward in #2806
- Update sttp.client core to 3.9.5 by @scala-steward in #2810
- Update asm to 9.7 by @scala-steward in #2813
- Update Scala.js to 1.16.0 by @scala-steward in #2807
- Bump express from 4.18.2 to 4.19.2 in /website by @dependabot in #2816
- Update Bloop to 1.5.16-sc-1 by @Gedochao in #2818
- Bump Scala Next to 3.4.1 by @Gedochao in #2822
- Bump Typelevel Toolkit to 0.1.23 by @Gedochao in #2823
New Contributors
- @joan38 made their first contribution in #2800
- @rochala made their first contribution in #2815
1.2.0 7 marzo 2024 — 64 bit MSI
Note di rilascio
Fixes
- Updated method for choosing a free drive letter (fixes #2743) by @philwalk in #2749
- Make sure tasty-lib doesn't warn about Scala 3 Next by @Gedochao in #2775
Enhancements
- Add the ability to remap EsModule imports at link time by @Quafadas in #2737
Internal changes
- Fix overeager Scala version docs tests by @Gedochao in #2750
- Lock script wrapper tests on the internally used Scala 2.13 version by @Gedochao in #2754
- Use Scala LTS as the default version while cross compiling all Scala 3 modules on both LTS & Next by @Gedochao in #2752
- Explicitly set sonatype publishing to use the default cross Scala version by @Gedochao in #2757
- Fix publishing of artifacts to include non-cross-compiled modules by @Gedochao in #2759
- Run integration tests with both Scala 3 LTS & Next versions by @Gedochao in #2760
Documentation changes
- Fix typo by @imRentable in #2739
- Add directive examples in Scala Native docs by @spamegg1 in #2774
- toolkit latest is deprecated, mention default instead by @spamegg1 in #2776
Updates and maintenance
- Update scala-cli.sh launcher for 1.1.3 by @github-actions in #2734
- Bump webfactory/ssh-agent from 0.8.0 to 0.9.0 by @dependabot in #2731
- Update coursier to 2.1.9 by @Gedochao in #2735
- Bump scala-js-cli to 1.15.0.1 by @Gedochao in #2738
- Update Scala to 3.4.0 by @Gedochao in #2736
- Update slf4j-nop to 2.0.12 by @scala-steward in #2748
- Update trees_2.13 to 4.9.0 by @scala-steward in #2747
- Update mill-main to 0.11.7 by @scala-steward in #2744
- Update sttp client core_2.13 to 3.9.3 by @scala-steward in #2745
- Bump Scala 2.12 to 2.12.19 by @Gedochao in #2753
- Update sbt to 1.9.9 by @scala-steward in #2756
- Bump Scala 2.13 to 2.13.13 by @Gedochao in #2755
- Update scalameta to 4.9.1 by @scala-steward in #2770
- Bump Scala LTS to 3.3.3 by @Gedochao in #2772
- Update ammonite to 3.0.0-M0-71-1e75159e by @scala-steward in #2773
- Update ammonite to 3.0.0-M0-92-0b2ae1a1 by @scala-steward in #2782
New Contributors
- @imRentable made their first contribution in #2739
- @spamegg1 made their first contribution in #2774
1.1.3 14 febbraio 2024 — 64 bit MSI
Note di rilascio
Fixes
- remove user.home hack by @kasiaMarek in #2710
- Fix ultra-long invalid Scala version errors by @Gedochao in #2724
Documentation changes
- Add information about --preamble in assembly packaging documentation by @spacebanana420 in #2713
- Back port of documentation changes to main by @github-actions in #2717
- Documentation for creation of custom toolkit by @yadavan88 in #2715
- Back port of documentation changes to main by @github-actions in #2718
- Fix formatting in custom toolkit doc by @yadavan88 in #2719
- Back port of documentation changes to main by @github-actions in #2720
- Added info about repl with toolkit by @yadavan88 in #2721
- Back port of documentation changes to main by @github-actions in #2723
Updates and maintenance
- Update scala-cli.sh launcher for 1.1.2 by @github-actions in #2688
- Update bsp4j to 2.1.1 by @scala-steward in #2700
- Update Scala Native to 0.4.17 by @scala-steward in #2696
- Bump coursier/setup-action from 1.3.4 to 1.3.5 by @dependabot in #2716
New Contributors
- @kasiaMarek made their first contribution in #2710
- @spacebanana420 made their first contribution in #2713
- @yadavan88 made their first contribution in #2715
1.1.2 17 gennaio 2024 — 64 bit MSI
Note di rilascio
Fixes
- Fix repeatable compiler options handling from the command line by @Gedochao in #2666
- Fix script wrapper tests & script object wrapper using directive by @Gedochao in #2668
- Prevent consecutive -language:* options from being ignored by @Gedochao in #2667
- in FailedToStartServerException advice, include --power by @SethTisue in #2685
Documentation changes
- Fix test.md by @MaciejG604 in #2679
- Back port of documentation changes to main by @github-actions in #2681
Build and internal changes
- Update release procedure steps for v1.1.x by @Gedochao in #2665
- Tag GitHubTests.create secret as flaky on all Mac tests (including M1) by @Gedochao in #2677
Updates and maintenance
- Update scala-cli.sh launcher for 1.1.1 by @github-actions in #2662
- Bump libsodiumjni to 0.0.4 by @MaciejG604 in #2651
- Update guava to 33.0.0-jre by @scala-steward in #2670
- Update os-lib to 0.9.3 by @scala-steward in #2671
- Update sbt to 1.9.8 by @scala-steward in #2673
- Update trees_2.13 to 4.8.15 by @scala-steward in #2674
- Update slf4j-nop to 2.0.11 by @scala-steward in #2675
- Update Scala.js to 1.15.0 by @scala-steward in #2672
- Update core_2.13 to 3.9.2 by @scala-steward in #2687
1.1.1 10 gennaio 2024 — 64 bit MSI
Note di rilascio
Enhancements
- Remove semantics Compliant for asInstaceOf by @MaciejG604 in #2614
- Scala js mode validation by @MaciejG604 in #2630
- Add missing Scala.js mode aliases by @Gedochao in #2655
- Add deprecation reporting mechanism for using directives by @MaciejG604 in #2622
- Pass java opts to scalac by @MaciejG604 in #2601
Fixes
- Fallback to UTF-8 in setup-ide by @JD557 in #2599
- Separate Scala REPL classpath from user dependencies by @Gedochao in #2607
- Prevent resource directories from breaking sources hash by @Gedochao in #2654
- Fix special handling for the -Xplugin-list compiler option by @Gedochao in #2635
- Remove superfluous traits by @MaciejG604 in #2618
- Prevent the toolkit latest deprecation warning from being logged more than once by @Gedochao in #2657
Documentation changes
- Unify mentions of Java properties and link to the correct section of guides. by @MaciejG604 in #2603
- Document script wrappers by @MaciejG604 in #2596
- Shorten titles of cookbooks by @MaciejG604 in #2609
- Add docs for bloop interaction by @MaciejG604 in #2608
- Docs/java opts for compiler by @MaciejG604 in #2619
- Add a subcategories layer for guides & cookbooks by @Gedochao in #2612
- Merge documentations about proxy setup by @MaciejG604 in #2597
- Update test framework versions by @mbovel in #2625
- Back port of documentation changes to main by @github-actions in #2604
- Back port of documentation changes to main by @github-actions in #2611
- Back port of documentation changes to main by @github-actions in #2615
- Back port of documentation changes to main by @github-actions in #2617
- Back port of documentation changes to main by @github-actions in #2620
Build and internal changes
- Add debug mode by @MaciejG604 in #2643
- Downgrade Xcode on macos CI runners by @MaciejG604 in #2632
- Revert xcode version downgrade by @MaciejG604 in #2650
Updates and maintenance
- Update scala-cli.sh launcher for 1.1.0 by @github-actions in #2594
- Update org.eclipse.jgit to 6.8.0.202311291450-r by @scala-steward in #2613
- Bump docusaurus version by @MaciejG604 in #2610
- Bump actions/setup-python from 4 to 5 by @dependabot in #2624
New Contributors
- @mbovel made their first contribution in #2625
1.1.0 29 novembre 2023 — 64 bit MSI
Note di rilascio
- main classes are now named the same as the file they are defined in, they do not have the '_sc' suffix anymore, so any calls like:
- it is impossible to access the contents of a script named main.sc from another script, any references to the script object main will result in a compilation error.
UX improvements
- React to some HTTP responses by @MaciejG604 in #2007
- Chore/group warnings about directives in multiple files by @MaciejG604 in #2550
- Migrate to Docusaurus v3, add local search plugin by @MaciejG604 in #2590
Enhancements
- Default to publish repository configured for local machine when infering publish.ci.repository by @MaciejG604 in #2571
- Skip validation for default Scala versions, add build test by @MaciejG604 in #2576
Fixes
- Take into consideration --project-version when creating BuildInfo by @MaciejG604 in #2548
- Workaround for home.dir property not being set by @MaciejG604 in #2573
- Pass scalac arguments as file by @MaciejG604 in #2584
Documentation changes
- Add a doc on Windows anti-malware submission procedure by @Gedochao in #2546
- Fix list of licenses URL by @JD557 in #2552
- Fix Windows secrets path in the documentation by @JD557 in #2561
- Update the pgp-pair section of publish setup docs by @MaciejG604 in #2565
- Back port of documentation changes to main by @github-actions in #2569
- Document --python flag by @MaciejG604 in #2574
- Document publishing process configuration by @MaciejG604 in #2580
Build and internal changes
- Exclude conflicting dependencies by @MaciejG604 in #2541
- Generate test reports on the CI by @Gedochao in #2543
- Use the latest scala-cli in macos-m1-tests by @Gedochao in #2554
- Install scala-cli with cs on M1 by @Gedochao in #2555
- Fix generating test reports for failed suites by @Gedochao in #2564
- Pin scala-cli-setup version to be M1-compatible & use it in native-macos-m1-tests by @Gedochao in #2568
- Add log separators for integration and build tests by @MaciejG604 in #2570
- Adjust test report generation to mill 0.11.6 bump changes by @Gedochao in #2577
- Bump MacOS CI to macOS-13 by @Gedochao in #2579
- Back port of documentation changes to main by @github-actions in #2593
- Add env for configuring home directory overriding by @MaciejG604 in #2587
Updates and maintenance
- Update trees_2.13 to 4.8.13 by @scala-steward in #2532
- Update scala-cli.sh launcher for 1.0.6 by @github-actions in #2542
- chore: Update Bloop to v1.5.11-sc by @tgodzik in #2557
- Update trees_2.13 to 4.8.14 by @scala-steward in #2560
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.17 by @scala-steward in #2559
- Bump VirtusLab/scala-cli-setup from 1.0.5 to 1.0.6 by @dependabot in #2567
- Update ammonite to 3.0.0-M0-59-cdeaa580 by @scala-steward in #2558
- Update mill-main to 0.11.6 by @scala-steward in #2572
- Update coursier-jvm_2.13, ... to 2.1.8 by @scala-steward in #2575
- Bump coursier to v2.1.8 where it wasn't consistent by @Gedochao in #2588
- Update ammonite to 3.0.0-M0-60-89836cd8 by @scala-steward in #2586
New Contributors
- @philwalk made their first contribution in #2516
1.0.6 14 novembre 2023 — 64 bit MSI
Note di rilascio
Other changes
Fixes
- Fix --watch failing on invalid PathWatchers.
Event & skip wonky tests on Mac CI by @Gedochao in #2515
- bugfix: Don't try to always get system jvm first by @tgodzik in #2508
Documentation changes
- Back port of documentation changes to main by @github-actions in #2522
- add cookbook about Emacs integration by @ag91 in #2506
Build and internal changes
- Bump actions/setup-node from 3 to 4 by @dependabot in #2493
- Update scala-cli.sh launcher for 1.0.5 by @github-actions in #2500
- Simplify build by @lolgab in #2512
- Fix wonky native MacOS CI on stable branch by @Gedochao in #2518
- Add regexes for release-notes github reference swapping by @MaciejG604 in #2519
Updates and maintenance
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.15 by @scala-steward in #2498
- Switch lightweight-spark-distrib to the VL fork & bump to 0.0.5 by @Gedochao in #2503
- Bump VirtusLab/scala-cli-setup from 1.0.4 to 1.0.5 by @dependabot in #2504
- Switch java-class-name to the VL fork & bump to 0.1.3 by @Gedochao in #2502
- Update sbt to 1.9.7 by @scala-steward in #2505
- Update os-lib to 0.9.2 by @scala-steward in #2514
- Update case-app to 2.1.0-M26 by @scala-steward in #2513
- Update mill-main to 0.11.5 by @scala-steward & @MaciejG604 in #2446
- Update core_2.13 to 3.9.1 by @scala-steward in #2521
- Switch nocrc32-zip-input-stream to the VL fork & bump it to 0.1.2 by @Gedochao in #2520
New Contributors
- @ag91 made their first contribution in #2506
1.0.5 26 ottobre 2023 — 64 bit MSI
Note di rilascio
Enhancements
- Accumulate exp warnings with logger by @MaciejG604 in #2376
- Remove ComputeVersion.
Command, make ComputeVersion classes positioned by @MaciejG604 in #2350
- Add more configuration for publish by @MaciejG604 in #2435
- Warn about transitive using file directive by @MaciejG604 in #2432
- Support Scala Native 0.5.x changes in publishing artifacts by @WojciechMazur in #2460
Fixes
- Fix - set es version into scala-js-cli by @lwronski in #2351
- Modify the format of StrictDirective.toString by @MaciejG604 in #2355
- Make explicitly passed scala version use the latest release, not the default one by @MaciejG604 in #2411
- Release flag by @lwronski in #2413
- Ensure build resolution is kept when packaging assemblies with provided dependencies by @Gedochao in #2457
- Fix fmt sub-command exit code to mirror scalafmt by @Gedochao in #2463
- Fix 'JVM too old' as bsp by @MaciejG604 in #2445
- Read java props from env vars by @MaciejG604 in #2356
- Make script wrapper satisfy compiler checks by @MaciejG604 in #2414
- Load local ivy path from ivy.home and user.home system properties by @JD557 in #2484
Documentation changes
- Fix typo in buildInfo directive docs by @izzyreal in #2357
- configuration.md examples "using dep" to current versions by @SunKing2 in #2398
- Documentation updates by @MaciejG604 in #2375
- Fix publish directives usage displayed in one line, unify directive docs by @MaciejG604 in #2381
- Backport of docs change (#2391) by @MaciejG604 in #2403
- Add internal docs for scalajs-cli by @lwronski in #2434
- Add docs for fix command by @MaciejG604 in #2437
- Add docs for offline mode by @MaciejG604 in #2475
- Update dependencies.md to mention jitpack by @doofin in #2458
- Update the list of external repositories Scala CLI depends on by @Gedochao in #2476
- Update the docs to no longer treat --power as a launcher-only option by @Gedochao in #2478
Build and internal changes
- Add test for actionable diagnostics from compiler by @MaciejG604 in #2327
- Pin the versions of Github CI runners by @MaciejG604 in #2370
- Remove bloop timeouts in tests by @MaciejG604 in #2407
- Add post-update hook for reference doc generation by @MaciejG604 in #2406
- Add tests which check availability of scalafmt native launcher for de… by @lwronski in #2418
- Default to a Scala version for REPL if there are no Scala artifacts. by @trilleplay in #2431
- Remove unused snippet checker by @lwronski in #2423
- Allow to override internal & user default Scala versions for mill builds by @Gedochao in #2461
- NIT: Refactor: Rely on global --power option where able in cli commands by @Gedochao in #2480
Updates and maintenance
- Update scala-cli.sh launcher for 1.0.4 by @github-actions in #2344
- Update bloop-rifle_2.13 to 1.5.9-sc-2 by @lwronski in #2345
- Update core_2.13 to 3.9.0 by @scala-steward in #2346
- Update sbt to 1.9.3 by @scala-steward in #2349
- Bump VirtusLab/scala-cli-setup from 1.0.2 to 1.0.4 by @dependabot in #2348
- Update coursier-jvm_2.13, ... to 2.1.6 by @scala-steward in #2360
- Update trees_2.13 to 4.8.9 by @scala-steward in #2369
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.13 by @scala-steward in #2368
- Update bloop-rifle_2.13 to 1.5.11-sc-1 by @scala-steward in #2383
- Update org.eclipse.jgit to 6.6.1.202309021850-r by @scala-steward in #2384
- Update trees_2.13 to 4.8.10 by @scala-steward in #2387
- Update coursier-jvm_2.13, ... to 2.1.7 by @scala-steward in #2393
- Bump docker/login-action from 2 to 3 by @dependabot in #2400
- Update org.eclipse.jgit to 6.7.0.202309050840-r by @scala-steward in #2395
- Update scala3-library to 3.3.1 by @scala-steward in #2392
- Update slf4j-nop to 2.0.9 by @scala-steward in #2388
- Update file-tree-views to 2.1.11 by @scala-steward in #2410
- Update test-runner, tools to 0.4.15 by @scala-steward in #2385
- Update scala-library to 2.13.12 by @scala-steward in #2396
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.14 by @scala-steward in #2386
- Update file-tree-views to 2.1.12 by
1.0.4 10 agosto 2023 — 64 bit MSI
Note di rilascio
What's Changed
- Update scala-cli.sh launcher for 1.0.3 by @github-actions in #2338
- Add missing note to release notes about rename parameter by @lwronski in #2340
- Back port of documentation changes to main by @github-actions in #2341
- Fix - support jvmRunEnvironment request for native launcher of scala-cli by @lwronski in #2342
- 1.0.4 release notes by @lwronski in #2343
1.0.3 8 agosto 2023 — 64 bit MSI
Note di rilascio
Other changes
- Add custom exception and throw it when node not found in the path by @lwronski in #2323
- Skip reading ide-options-v2.json if doesn't exist to avoid throwing a… by @lwronski in #2333
- Skip setting release flag when user pass directly -release or -java-o… by @lwronski in #2321
- Prevent downloading Java 17 when running a REPL without sources by @lwronski in #2305
- Extract JAVA_HOME from /usr/libexec/java_home for Mac by @lwronski in #2304
- Bump case-app, add names limit to HelpFormat, move some name aliases, add test by @MaciejG604 in #2280
- Build info with compute version @MaciejG604 in #2310
Fixes
- Fix - install ps, which is necessary for starting Bloop by @lwronski in #2332
- Load virtual data as byte arrays without encoding using UTF-8 by @lwronski in #2313
- Accept directive packageType native when using native platform by @lwronski in #2311
- Ignore url query params @MaciejG604 in #2334
Documentation changes
- Update runner specification by @MaciejG604 in #2301
- Add WinGet to Windows installation methods by @lwronski in #2283
- Add missing caution to Password options and fix displaying command in… by @lwronski in #2286
- Document BuildInfo @MaciejG604 in #2325
Build and internal changes
- Add timeout for resolving semanticDbVersion by @lwronski in #2322
- Resolve semanticDB for older scala version by @lwronski in #2318
- feat: use the new ScalaAction from BSP4J by @ckipp01 in #2284
Updates and maintenance
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.12 by @lwronski in #2335
- Update trees_2.13 to 4.8.7 by @scala-steward in #2329
- Update guava to 32.1.2-jre by @scala-steward in #2324
- Update bloop-rifle_2.13 to 1.5.9-sc-1 by @scala-steward in #2314
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.11 by @scala-steward in #2315
- Update scalajs-sbt-test-adapter_2.13 to 1.13.2 by @scala-steward in #2240
- Bump VirtusLab/scala-cli-setup from 1.0.1 to 1.0.2 by @dependabot in #2300
- Update mill 0.11.1 by @lwronski in #2297
- deps: update mill-scalafix to 0.3.1 by @ckipp01 in #2285
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.10 by @scala-steward in #2295
- Update sbt to 1.9.2 by @scala-steward in #2288
- Update trees_2.13 to 4.8.4 by @scala-steward in #2290
- Update scala-cli.sh launcher for 1.0.2 by @github-actions in #2281
- Update trees_2.13 to 4.8.3 by @scala-steward in #2279
- Bump semver from 5.7.1 to 5.7.2 in /website by @dependabot in #2276
1.0.2 11 luglio 2023 — 64 bit MSI
Note di rilascio
- WinGet installation for Windows users
- better navigation with improved build target names
- introducing new command for Giter8 project generation
- easier JVM properties management with .scalaopts file support.
Other changes
- Add publish.doc directive by @lwronski in #2245
- Fix pgp create with no java 17 by @MaciejG604 in #2189
- Support for running standalone launcher of scala-cli with JVM 8 by @lwronski in #2253
Fixes
- Make dependencies keep their positions when fetching by @MaciejG604 in #2266
- Fix empty position in DependencyFormatErrors by @MaciejG604 in #2261
- Script wrapper verification by @MaciejG604 in #2227
- Fix - include test.resourceDir into sources for test scope by @lwronski in #2235
- Fix markdown - allow running .md files that start with a number by @lwronski in #2225
- Fix dep update error by @MaciejG604 in #2211
- Add new mechanism for resolving scoped BuildOptions by @MaciejG604 in #2274
- Fix - download cs from coursier-m1 as an archive by @lwronski in #2193
- Fix - Truncate file length to 0 when override content by @lwronski in #2188
Documentation changes
- Add mentions that using target directives are experimental by @MaciejG604 in #2262
- Fix inline code in directives docs by @izzyreal in #2233
- Update docs - dependency parameters by @lwronski in #2224
- Update directive docs for Platform by @lwronski in #2213
Build and internal changes
- Build changes by @lwronski in #2263
- Remove file change portion of test by @MaciejG604 in #2251
- Add logging to 'watch with interactive' test by @MaciejG604 in #2229
- Add support for parsing cancel params in native launcher of Scala CLI by @lwronski in #2195
Updates and maintenance
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.7 by @scala-steward in #2271
- Update trees_2.13 to 4.8.2 by @scala-steward in #2272
- Update core_2.13 to 3.8.16 by @scala-steward in #2270
- Update jimfs to 1.3.0 by @scala-steward in #2269
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.6 by @scala-steward in #2264
- Update trees_2.13 to 4.8.1 by @scala-steward in #2265
- Update scalafmt-cli_2.13, scalafmt-core to 3.7.5 by @scala-steward in #2256
- Update trees_2.13 to 4.8.0 by @scala-steward in #2257
- Update guava to 32.1.1-jre by @scala-steward in #2259
- Update coursier-jvm_2.13, ... to 2.1.5 by @scala-steward in #2232
- Update sbt to 1.9.0 by @scala-steward in #2222
- Update dependency to 0.2.3 by @scala-steward in #2219
- Update org.eclipse.jgit to 6.6.0.202305301015-r by @scala-steward in #2220
- Updates - amm (2.5.9), scala-library (2.12.18, 2.13.11) by @lwronski in #2223
- Update bsp4j to 2.1.0-M5 by @scala-steward in #2216
- Update jsoniter-scala-core, ... to 2.23.2 by @scala-steward in #2217
- Update scala-collection-compat to 2.11.0 by @scala-steward in #2221
- Update test-runner, tools to 0.4.14 by @scala-steward in #2192
- Bump VirtusLab/scala-cli-setup from 1.0.0 to 1.0.1 by @dependabot in #2207
- Update guava to 32.0.1-jre by @scala-steward in #2197
- Update scala-cli.sh launcher for 1.0.1 by @github-actions in #2194
- Upgrade scripts to latest coursier by @mkurz in #1728
New Contributors
- @zetashift made their first contribution in #2202
- @izzyreal made their first contribution in #2233
- @mimoguz made their first contribution in #2239
1.0.1 20 giugno 2023 — 64 bit MSI

Il più popolare in Linguaggi e SDK

Vedi tutti
  1. LLVMLinguaggi e SDK · LLVM
  2. DenoLinguaggi e SDK · Deno Land Inc.
  3. CMakeLinguaggi e SDK · Kitware
  4. YarnLinguaggi e SDK · Yarn Contributors
  5. CcacheLinguaggi e SDK · Joel Rosdahl
  6. sbtLinguaggi e SDK · Lightbend, Inc.
  7. BOINCLinguaggi e SDK · Space Sciences Laboratory, U.C. Berkeley
  8. Dart SDKLinguaggi e SDK · Google
  9. NVM for WindowsLinguaggi e SDK · Ecor Ventures LLC

Tag

Condividi