Skip to content

v1.0.0

Compare
Choose a tag to compare
@MaciejG604 MaciejG604 released this 24 May 13:38
· 755 commits to main since this release

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!

Added by @lwronski #2140

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 latest in any main scope file will automatically add the toolkit dependency to the main scope and the toolkit-test dependency to the test scope
  • if you place e.g. //> using toolkit latest within a test scope file, both toolkit and toolkit-test will be limited to the test scope only
  • inserting e.g. //> using test.toolkit latest anywhere in the project will add both toolkit and toolkit-test to 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 toolkit directive version parsing by @Gedochao #2133
  • Fix determining position for value in directive without quotes by @lwronski #2141

Fixes

Documentation changes

Build and internal changes

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