v1.0.0
The official scala runner release
Scala CLI has reached the highly anticipated 1.0.0 milestone!
Having addressed all the SIP-46 requirements,
this version is going to become the official scala runner, replacing the old scala command.
For a deeper understanding of Scala CLI as the new scala runner and to explore its benefits and features,
we encourage you to check out our blogpost.
Also be sure to get familiar with all the differences introduced by this change in our migration guide.
What's Changed
New default Scala version - 3.3.0
Scala 3.3.0 is now the default version for Scala CLI projects.
It's the first LTS (Long Term Support) release of Scala 3 to be used by Scala CLI.
Right on time for 1.0.0!
Toolkit-test
By incorporating the Scala Toolkit into your project, you gain the advantage of two additional
dependencies seamlessly integrated into your classpath:
org.scala-lang:toolkit:<version>is added to the main scope, allowing its utilization throughout your project.org.scala-lang:toolkit-test:<version>is included in the test scope, making it available exclusively for testing purposes.
Scala CLI now supports the following features for the toolkit:
- including e.g.
//> using toolkit latestin any main scope file will automatically add thetoolkitdependency to the main scope and thetoolkit-testdependency to the test scope - if you place e.g.
//> using toolkit latestwithin a test scope file, bothtoolkitandtoolkit-testwill be limited to the test scope only - inserting e.g.
//> using test.toolkit latestanywhere in the project will add bothtoolkitandtoolkit-testto the test scope only
This convention is encouraged for other toolkit-like libraries as well.
Added by @Gedochao #2127 and #2137
Forcing an object wrapper for scripts
Scala CLI now supports the //> using objectWrapper directive, along with the corresponding --object-wrapper option,
which allows to force wrapping script code in an object body instead of a class.
Using object wrappers should be avoided for scripts relying on multi-threading (as it may cause deadlocks), but may prove to be the only option in some cases.
Added by @MaciejG604 #2136
Other changes
- Add alias for snapshots repository in Maven by @lwronski #2125
- Bump typelevel-toolkit to 0.0.11, configure toolkit-test by @armanbilge #2135
- Fix updating toolkit dependencies by @Gedochao #2138
- Improve directive parsing errors & special-case
toolkitdirective version parsing by @Gedochao #2133 - Fix determining position for value in directive without quotes by @lwronski #2141
Fixes
- Fix line conversion logic by simplifying topWrapperLen to line count of top wrapper by @MaciejG604 #2101
- Fix test watch infinite loop by @MaciejG604 #2113
- Fix flaky completions for
zshby @Jasper-M #2118 - Fix - install certificates for java by @lwronski #2123
- Fix the
--source-jaroption & add correspondingusingdirectives by @Gedochao #2120
Documentation changes
- Add docs for bootstrapped standalone fat JAR by @lwronski #2122
- Add developer docs on modifying
reflect-config.jsonby @Gedochao #2114
Build and internal changes
- Update release procedure - update also v1 tag by @lwronski #2107
- NIT Refactor test scope directives by @Gedochao #2083
- Add main class to jar manifest in assembly by @romanowski #2124
Updates and maintenance
- Update scala-cli.sh launcher for 1.0.0-RC2 by @github-actions #2105
- Update org.eclipse.jgit to 6.5.0.202303070854-r by @scala-steward #2090
New Contributors
Full Changelog: v1.0.0-RC2...v1.0.0