1.6.0
Changes with compatibility implications
- Updates to log4j 2.17.0. See The state of the log4j CVE in the Scala ecosystem for details.
- The Scala version used to compile
build.sbt
is updated to Scala 2.12.15, which improves the compatibility with JDK 17+. The metabuild is compiled with-Xsource:3
flag #6664 by @Nirvikalpa108 + @eed3si9n sbt.TrapExit
is dropped due to Security Manager being deprecated in JDK 17. Callingsys.exit
inrun
ortest
would shutdown the sbt session. Use forking to prevent it #6665 by @eed3si9n- sbt 1.6.0 reads credentials from the file specified using
SBT_CREDENTIALS
environment variable, following sbt launcher #6724 by @daddykotex
BSP improvements
- Fixes
.sbtopts
not getting picked up when sbt server is started by Metals #6593 by @adpi2 - Fixes BSP IntelliJ import when
java
is not onPATH
#6576 by @github-samuel-clarenc - Implements BSP
buildTarget/cleanCache
, which fixes IntelliJrebuild
#6638 by @hmemcpy - Implements BSP
build/taskProgress
notifications #6642 by @hmemcpy - Improves BSP IntelliJ import by sending information about sbt server process failure #6573 by @github-samuel-clarenc
- Makes BSP requests robust to some target failures #6609 by @adpi2
- Sends BSP diagnostics and meaningful error message when reloading fails #6566 by @adpi2
- Fixes handling of sources in the base directory #6701 by @adpi2
- Fixes
sbtn
buffer not printing out all the outputs on system out #6703 by @adpi2 - Fixes infinite loop when server fails to load #6707 by @adpi2
- Fixes handling of fake position such as
<macro>
, which are occasionally returned by the compiler #6730 by @eed3si9n - Adds
sbt shutdownall
to shutdown all sbt server instances #6697 by @er1c - Adds
sbt --no-server
to not start the server or use a virtual terminal #6728 by @eed3si9n
Zinc improvements
- Fixes under-compilation of folded constants (see also SI-7173) zinc@d15228/zinc#1003 by @ephemerist and @dwijnand
- Fixes over-compilation of extended classes on JDK 11 zinc#998 by @lrytz
- Improves performance of loading used names from persisted
Analysis
file zinc#995 by @dwijnand - Fixes hashing of large files zinc#1018 by @niktrop
Remote caching improvements
sbt 1.6.0 improves remote caching of resources
directory by virtualizing the internal sync state (copy-resources.txt
). This allows incremental resource
directory synching to be resumed from the remote cache, similar to how Zinc has been able to resume incremental compilation from the remote cache. This was contributed by Amina Adewusi (@Nirvikalpa108) as #6611.
Dependency tree improvements
- Fixes
dependencyTree
to useasciiGraphWidth
setting 6693 by @kijuky - Fixes rendering cycles in
dependencyBrowseTree
#6675 by @nimatrueway - Migrates
dependencyBrowseTree
to use Contraband data types instead ofscala.util.parsing.json
#6699 by @Nirvikalpa108
Other updates
- Updates to lm-coursier 2.0.9, which uses Coursier 2.1.0-M2. This fixes full Scala suffix getting incorrectly overwritten by
scalaVersion
#6753 by @eed3si9n - Fixes tab completion of global keys #6716 by @eed3si9n
- Fixes shutdown hook error in timing report #6630 by @Nirvikalpa108
- Fixes
ClassCastException
inXMainConfiguration
#6649 by @eed3si9n - Moves
scalaInstanceTopLoader
tocompileBase
settings #6480 by @adpi2 - Fixes
crossSbtVersions
included intolintBuild
#6656 by @Nirvikalpa108 - Fixes
realpathish
function insbt
runner script #6641 by @darabos - Fixes repeated version numbers in eviction error lm#386 by @rtyley
- Flyweights
ConfigRef
to reduce heap usage lm#390 by @eed3si9n - Adds Windows Java home selectors for JDK cross building #6684 by @kxbmap
- Makes scripted Java home configurable using
scripted / javaHome
#6673 by @kxbmap maven.repo.local
system property configures local Maven repository lm#391 by @peter-janssen