sbt/sbt (sbt/sbt)
### [`v1.10.5`](https://redirect.github.com/sbt/sbt/compare/v1.10.4...v1.10.5)
[Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.4...v1.10.5)
### [`v1.10.4`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.4): 1.10.4
[Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.3...v1.10.4)
#### updates and bug fixes
- fix: Fixes Jansi deprecation notice by switching to jline-terminal-jni by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7811](https://redirect.github.com/sbt/sbt/pull/7811)
- fix: Fixes GLIBC\_2.32 issue on sbtn by statically linking musl by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7823](https://redirect.github.com/sbt/sbt/pull/7823)
- fix: Throw exception when `sbt new` fails to find template by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7835](https://redirect.github.com/sbt/sbt/pull/7835)
- fix: Fixes `~` with `Global / onChangedBuildSource := ReloadOnSourceChanges` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7838](https://redirect.github.com/sbt/sbt/pull/7838)
- fix: Fixes "Unrecognized option: --server" error on BSP server by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7824](https://redirect.github.com/sbt/sbt/pull/7824)
- fix: Fixes pipelined build while changing version frequently by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7830](https://redirect.github.com/sbt/sbt/pull/7830)
- fix: Change the default analysis format to older binary, and make Consistent Analysis opt-in by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7807](https://redirect.github.com/sbt/sbt/pull/7807)
#### behind the scene
- ci: Bump supported JDK version to 21 in `DEVELOPING.md` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7784](https://redirect.github.com/sbt/sbt/pull/7784)
- ci: Bump sbt to 1.10.3 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7802](https://redirect.github.com/sbt/sbt/pull/7802)
- ci: Bump `TEST_SBT_VER` to 1.10.3 & remove unused CI variables by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7825](https://redirect.github.com/sbt/sbt/pull/7825)
- ci: Delete `.java-version` to not fix java version to 1.8 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7827](https://redirect.github.com/sbt/sbt/pull/7827)
- deps: Bump Scala 2.13 to 2.13.15 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7798](https://redirect.github.com/sbt/sbt/pull/7798)
- deps: Bump JLine to `3.27.1` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7829](https://redirect.github.com/sbt/sbt/pull/7829)
- deps: Zinc 1.10.4 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7839](https://redirect.github.com/sbt/sbt/pull/7839)
- refactor: Remove two unused methods that depends on Analysis Timestamp by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7787](https://redirect.github.com/sbt/sbt/pull/7787)
- refactor: Deprecate useJCenter key by [@Philippus](https://redirect.github.com/Philippus) in [https://github.com/sbt/sbt/pull/7822](https://redirect.github.com/sbt/sbt/pull/7822)
**Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.3...v1.10.4
### [`v1.10.3`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.3): 1.10.3
[Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.2...v1.10.3)
##### Protobuf with potential Denial of Service (CVE-2024-7254)
sbt 1.10.3 updates protobuf-java library to 3.25.5 to address CVE-2024-7254 / https://github.com/advisories/GHSA-735f-pc8j-v9w8, which states that while parsing unknown fields in the Protobuf Java library, a maliciously crafted message can cause a StackOverflow error. Given the nature of how Protobuf is used in Zinc as internal serialization, we think the impact of this issue is minimum. However, security software might still flag this to be an issue while using sbt or Zinc, so upgrade is advised. This issue was originally reported by [@gabrieljones](https://redirect.github.com/gabrieljones) and was fixed by Jerry Tan ([@Friendseeker](https://redirect.github.com/Friendseeker)) in [zinc#1443](https://redirect.github.com/zinc/sbt/issues/1443).
[@adpi2](https://redirect.github.com/adpi2) at Scala Center has also configured dependency graph submission to get security alerts in [zinc#1448](https://redirect.github.com/zinc/sbt/issues/1448). sbt/sbt was configured by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7746](https://redirect.github.com/sbt/sbt/pull/7746).
##### Reverting the invalidation of circular-dependent sources
sbt 1.10.3 reverts the initial invalidation of circular-dependent Scala source pairs.
There had been a series of incremental compiler bugs such as "Invalid superClass" and "value b is not a member of A" that would go away after `clean`. The root cause of these bugs were identified by [@smarter](https://redirect.github.com/smarter) ([https://github.com/sbt/zinc/issues/598#issuecomment-449028234](https://redirect.github.com/sbt/zinc/issues/598#issuecomment-449028234)) and [@Friendseeker](https://redirect.github.com/Friendseeker) to be partial compilation of circular-dependent sources where two sources `A.scala` and `B.scala` use some constructs from each other.
sbt 1.10.0 fixed this issue via [https://github.com/sbt/zinc/pull/1284](https://redirect.github.com/sbt/zinc/pull/1284) by invalidating the circular-dependent pairs together. In other words, if `A.scala` was changed, it would immediately invalidate `B.scala`. It turns out, that people have been writing circular-dependent code, and this has resulted in multiple reports of Zinc's over-compilation ([zinc#1420](https://redirect.github.com/sbt/zinc/issues/1420), [zinc#1461](https://redirect.github.com/sbt/zinc/issues/1461)). Given that the invalidation seems to affect the users more frequently than the original bug, we're going to revert the fix for now. We might bring this back with an opt-out flag later on. The revert was contributed by by Li Haoyi ([@lihaoyi](https://redirect.github.com/lihaoyi)) in [https://github.com/sbt/zinc/pull/1462](https://redirect.github.com/sbt/zinc/pull/1462).
##### Improvement: ParallelGzipOutputStream
sbt 1.10.0 via [https://github.com/sbt/zinc/pull/1326](https://redirect.github.com/sbt/zinc/pull/1326) added a new consistent (repeatable) formats for Analysis storage. As a minor optimization, the pull request also included an implementation of `ParallelGzipOutputStream`, which would reduce the generate file size by 20%, but with little time penalty. Unfortunately, however, we have observed in CI that that the `scala.concurrent.Future`-based implementation gets stuck in a deadlock. [@Ichoran](https://redirect.github.com/Ichoran) and [@Friendseeker](https://redirect.github.com/Friendseeker) have contributed an alternative implementation that uses Java threads directly, which fixes the issue in [https://github.com/sbt/zinc/pull/1466](https://redirect.github.com/sbt/zinc/pull/1466).
##### bug fixes and updates
- deps: Updates metabuild Scala version to 2.12.20 by [@SethTisue](https://redirect.github.com/SethTisue) in [#7636](https://redirect.github.com/sbt/sbt/pull/7636)
- fix: Fixes "illegal reflective access operation" error on JDK 11 by updating JLine to 3.27.0 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [#7695](https://redirect.github.com/sbt/sbt/pull/7695)
- fix: Fixes transitive invalidation interfering with cycle stopping condition by [@Friendseeker](https://redirect.github.com/Friendseeker) in [zinc#1397](https://redirect.github.com/sbt/zinc/pull/1397)
- fix: Fixes dependency resolution of sbt plugins by excluding custom extra attributes from POM dependencies by [@adpi2](https://redirect.github.com/adpi2) in [lm#451](https://redirect.github.com/sbt/librarymanagement/pull/451)
- fix: Fixes directory permission issue under a multi-user environment by [@eed3si9n](https://redirect.github.com/eed3si9n) in [ipcsocket#43](https://redirect.github.com/sbt/ipcsocket/pull/43)
- deps: Updates `sbt init` template deps by [@xuwei-k](https://redirect.github.com/xuwei-k) in [#7730](https://redirect.github.com/sbt/sbt/pull/7730)
- Updates sbt runner to default to sbtn for sbt 2.x by [@eed3si9n](https://redirect.github.com/eed3si9n) in [#7775](https://redirect.github.com/sbt/sbt/pull/7775)
##### behind the scene
- ci: Bump CI to JDK 21 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7760](https://redirect.github.com/sbt/sbt/pull/7760)
- refactor: Remove deprecated `System.runFinalization` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7732](https://redirect.github.com/sbt/sbt/pull/7732)
- refactor: Remove deprecated `Thread.getId` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7733](https://redirect.github.com/sbt/sbt/pull/7733)
- refactor: Regenerate Contraband files by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7764](https://redirect.github.com/sbt/sbt/pull/7764)
- deps: Bump IO, ipc-socket, and launcher by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7776](https://redirect.github.com/sbt/sbt/pull/7776)
- deps: Zinc 1.10.3 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7781](https://redirect.github.com/sbt/sbt/pull/7781)
- deps: lm 1.10.2 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7782](https://redirect.github.com/sbt/sbt/pull/7782)
- ci: Set a default timeout for ci by [@nathanlao](https://redirect.github.com/nathanlao) in [https://github.com/sbt/sbt/pull/7766](https://redirect.github.com/sbt/sbt/pull/7766)
- ci: Removes `vscode-sbt-scala` from build.sbt by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7728](https://redirect.github.com/sbt/sbt/pull/7728)
- ci: Adds dependabot setting for develop branch by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/sbt/sbt/pull/7701](https://redirect.github.com/sbt/sbt/pull/7701)
**Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.2...v1.10.3
### [`v1.10.2`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.2): 1.10.2
[Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.1...v1.10.2)
#### Changes with compatibility implications
- Uses `_sbt2_3` suffix for sbt 2.x by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7671](https://redirect.github.com/sbt/sbt/pull/7671)
#### Updates and bug fixes
- Fixes the attribute key name from `serverIdleTimeOut` to `serverIdleTimeout` to match the variable name by [@lervag](https://redirect.github.com/lervag) in [https://github.com/sbt/sbt/pull/7651](https://redirect.github.com/sbt/sbt/pull/7651)
- Fixes incremental Scala-Java mixed compilation that produces JAR directly by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/zinc/pull/1377](https://redirect.github.com/sbt/zinc/pull/1377)
- Fixes over-compilation when using a class directory as a library by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/zinc/pull/1382](https://redirect.github.com/sbt/zinc/pull/1382)
- Perf: Copy bytes directly instead of using `scala.reflect.io.Streamable` by [@rochala](https://redirect.github.com/rochala) in [https://github.com/sbt/zinc/pull/1395](https://redirect.github.com/sbt/zinc/pull/1395)
- Includes all sources and resources in source jar by [@jroper](https://redirect.github.com/jroper) in [https://github.com/sbt/sbt/pull/7630](https://redirect.github.com/sbt/sbt/pull/7630)
- Fixes the handling of `Optional` inter-project dependency in BSP by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7568](https://redirect.github.com/sbt/sbt/pull/7568)
- Trims spaces around k and v to tolerate extra whitespace in `build.properties` by [@invadergir](https://redirect.github.com/invadergir) in [https://github.com/sbt/sbt/pull/7585](https://redirect.github.com/sbt/sbt/pull/7585)
- Fixes legacy repositories like `scala-tools-releases` in `repositories` file blocking sbt from launching by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/launcher/pull/104](https://redirect.github.com/sbt/launcher/pull/104)
- Fixes stale BSP diagnostics by [@SlowBrainDude](https://redirect.github.com/SlowBrainDude) in [https://github.com/sbt/sbt/pull/7610](https://redirect.github.com/sbt/sbt/pull/7610)
- Fixes scripted support for sbt 2.x by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7672](https://redirect.github.com/sbt/sbt/pull/7672)
- Avoids using `ThreadDeath` for future JDK compatibility by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/sbt/sbt/pull/7652](https://redirect.github.com/sbt/sbt/pull/7652)
- Avoids using `ZipError` for future JDK compatibility by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/zinc/pull/1393](https://redirect.github.com/sbt/zinc/pull/1393)
#### Behind the scenes
- Update to Zinc 1.10.2 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7674](https://redirect.github.com/sbt/sbt/pull/7674)
- Update to lm 1.10.1 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7597](https://redirect.github.com/sbt/sbt/pull/7597)
- Update to Launcher 1.4.3 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7598](https://redirect.github.com/sbt/sbt/pull/7598)
- Update to the common Scala 2.12 version for the sbtn subproject by [@SlowBrainDude](https://redirect.github.com/SlowBrainDude) in [https://github.com/sbt/sbt/pull/7605](https://redirect.github.com/sbt/sbt/pull/7605)
- Note in dev docs on supported build time JDK version dependency by [@SlowBrainDude](https://redirect.github.com/SlowBrainDude) in [https://github.com/sbt/sbt/pull/7606](https://redirect.github.com/sbt/sbt/pull/7606)
- CI: Zinc default branch is 1.10.x by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7654](https://redirect.github.com/sbt/sbt/pull/7654)
- Upgrade sbt plugins to avoid deprecated repo.scala-sbt.org by [@mkurz](https://redirect.github.com/mkurz) in [https://github.com/sbt/sbt/pull/7555](https://redirect.github.com/sbt/sbt/pull/7555)
- Update Scala 3 doc test by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7619](https://redirect.github.com/sbt/sbt/pull/7619)
- Bump scalacenter/sbt-dependency-submission from 2 to 3 by [@dependabot](https://redirect.github.com/dependabot) in [https://github.com/sbt/sbt/pull/7565](https://redirect.github.com/sbt/sbt/pull/7565)
- Fixes `dependency-management/force-update-period` test (backport of [#7538](https://redirect.github.com/sbt/sbt/issues/7538)) by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7567](https://redirect.github.com/sbt/sbt/pull/7567)
- Fixes BuildServerTest by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7638](https://redirect.github.com/sbt/sbt/pull/7638)
#### New contributors
- [@invadergir](https://redirect.github.com/invadergir) made their first contribution in [https://github.com/sbt/sbt/pull/7585](https://redirect.github.com/sbt/sbt/pull/7585)
- [@rochala](https://redirect.github.com/rochala) made their first contribution in [https://github.com/sbt/zinc/pull/1395](https://redirect.github.com/sbt/zinc/pull/1395)
- [@SlowBrainDude](https://redirect.github.com/SlowBrainDude) made their first contribution in [https://github.com/sbt/sbt/pull/7606](https://redirect.github.com/sbt/sbt/pull/7606)
- [@lervag](https://redirect.github.com/lervag) made their first contribution in [https://github.com/sbt/sbt/pull/7651](https://redirect.github.com/sbt/sbt/pull/7651)
**Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.0...v1.10.2
### [`v1.10.1`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.1): 1.10.1
[Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.0...v1.10.1)
#### bug fixes and updates
- Fixes column/position information missing from the javac error messages in IntelliJ by [@vasilmkd](https://redirect.github.com/vasilmkd) in [https://github.com/sbt/zinc/pull/1373](https://redirect.github.com/sbt/zinc/pull/1373)
- Fixes backslash handling in `expandMavenSettings` by [@desbo](https://redirect.github.com/desbo) in [https://github.com/sbt/librarymanagement/pull/444](https://redirect.github.com/sbt/librarymanagement/pull/444)
- Fixes JSON serialization of `Map` and `LList` in sjson-new 0.10.1 by [@steinybot](https://redirect.github.com/steinybot) + [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/eed3si9n/sjson-new/pull/142](https://redirect.github.com/eed3si9n/sjson-new/pull/142)
- Fixes the hash code for empty files in the classpath cache by [@szeiger](https://redirect.github.com/szeiger) in [https://github.com/sbt/zinc/pull/1366](https://redirect.github.com/sbt/zinc/pull/1366)
- Fixes `forceUpdatePeriod` by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7567](https://redirect.github.com/sbt/sbt/pull/7567)
- Fixes BSP handling of `Optional` inter-project dependencies by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7568](https://redirect.github.com/sbt/sbt/pull/7568)
- Ignores `jcenter` and `scala-tools-releases` entries in the `~/.sbt/repositories` file by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/launcher/pull/104](https://redirect.github.com/sbt/launcher/pull/104)
#### behind the scenes
- Updates sbt plugins to avoid deprecated repo.scala-sbt.org by [@mkurz](https://redirect.github.com/mkurz) in [https://github.com/sbt/sbt/pull/7555](https://redirect.github.com/sbt/sbt/pull/7555)
- Updates scalacenter/sbt-dependency-submission from 2 to 3 by [@dependabot](https://redirect.github.com/dependabot) in [https://github.com/sbt/sbt/pull/7565](https://redirect.github.com/sbt/sbt/pull/7565)
**Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.0...v1.10.1
### [`v1.10.0`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.0): 1.10.0
[Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.9.9...v1.10.0)
[@eed3si9n]: https://redirect.github.com/eed3si9n
[@adpi2]: https://redirect.github.com/adpi2
[@dwijnand]: https://redirect.github.com/dwijnand
[@xuwei-k]: https://redirect.github.com/xuwei-k
[@mdedetrich]: https://redirect.github.com/mdedetrich
[@mkurz]: https://redirect.github.com/mkurz
[@hvesalai]: https://redirect.github.com/hvesalai
[@Friendseeker]: https://redirect.github.com/Friendseeker
[@RustedBones]: https://redirect.github.com/RustedBones
[@minkyu97]: https://redirect.github.com/minkyu97
[@azdrojowa123]: https://redirect.github.com/azdrojowa123
[@SethTisue]: https://redirect.github.com/SethTisue
[@Tammo0987]: https://redirect.github.com/Tammo0987
[@azolotko]: https://redirect.github.com/azolotko
[@rtyley]: https://redirect.github.com/rtyley
[@mazugrin]: https://redirect.github.com/mazugrin
[7350]: https://redirect.github.com/sbt/sbt/pull/7350
[7352]: https://redirect.github.com/sbt/sbt/pull/7352
[7470]: https://redirect.github.com/sbt/sbt/pull/7470
[7475]: https://redirect.github.com/sbt/sbt/pull/7475
[7480]: https://redirect.github.com/sbt/sbt/pull/7480
[7496]: https://redirect.github.com/sbt/sbt/pull/7496
[7516]: https://redirect.github.com/sbt/sbt/pull/7516
[7513]: https://redirect.github.com/sbt/sbt/pull/7513
[7419]: https://redirect.github.com/sbt/sbt/pull/7419
[7389]: https://redirect.github.com/sbt/sbt/pull/7389
[7398]: https://redirect.github.com/sbt/sbt/pull/7398
[7178]: https://redirect.github.com/sbt/sbt/pull/7178
[7437]: https://redirect.github.com/sbt/sbt/pull/7437
[7545]: https://redirect.github.com/sbt/sbt/pull/7545
[sip51]: https://docs.scala-lang.org/sips/drop-stdlib-forwards-bin-compat.html
[zinc1319]: https://redirect.github.com/sbt/zinc/pull/1319
[zinc1316]: https://redirect.github.com/sbt/zinc/pull/1316
[zinc1314]: https://redirect.github.com/sbt/zinc/pull/1314
[zinc1326]: https://redirect.github.com/sbt/zinc/pull/1326
[zinc1324]: https://redirect.github.com/sbt/zinc/pull/1324
[zinc1312]: https://redirect.github.com/sbt/zinc/pull/1312
[zinc1310]: https://redirect.github.com/sbt/zinc/pull/1310
[zinc1278]: https://redirect.github.com/sbt/zinc/pull/1278
[zinc1284]: https://redirect.github.com/sbt/zinc/pull/1284
[zinc1259]: https://redirect.github.com/sbt/zinc/pull/1259
[zinc1277]: https://redirect.github.com/sbt/zinc/pull/1277
[zinc1265]: https://redirect.github.com/sbt/zinc/pull/1265
[zinc1289]: https://redirect.github.com/sbt/zinc/pull/1289
[zinc1290]: https://redirect.github.com/sbt/zinc/pull/1290
[zinc1282]: https://redirect.github.com/sbt/zinc/pull/1282
[zinc1293]: https://redirect.github.com/sbt/zinc/pull/1293
[zinc1288]: https://redirect.github.com/sbt/zinc/pull/1288
[zinc1287]: https://redirect.github.com/sbt/zinc/pull/1287
[lm436]: https://redirect.github.com/sbt/librarymanagement/pull/436
[lm433]: https://redirect.github.com/sbt/librarymanagement/pull/433
#### Changes with compatibility implications
- For SIP-51 support, `scalaVersion` can no longer be a lower 2.13.x version number than its transitive depdencies. See below for details.
- ConsistentAnalysisFormat is enabled by default. See below for details.
- Updates lm-coursier-shaded to 2.1.4, which brings in Coursier 2.1.9 [#7513][7513].
- Updates Jsch to [mwiede/jsch](https://redirect.github.com/mwiede/jsch) fork by [@azolotko][@azolotko] in [lm#436][lm436]
- Updates the Scala version used by sbt 1.x to 2.12.19 by [@SethTisue][@SethTisue] in [#7516][7516].
#### SIP-51 Support for Scala 2.13 Evolution
Modern Scala 2.x has kept both forward and backward binary compatibility so a library compiled using Scala 2.13.12 can be used by an application compiled with Scala 2.13.11 etc, and vice versa. The forward compatibility restricts Scala 2.x from evolving during the patch releases, so in [SIP-51][sip51] Lukas Rytz at Lightbend Scala Team proposed:
> I propose to drop the forwards binary compatibility requirement that build tools enforce on the Scala 2.13 standard library. This will allow implementing performance optimizations of collection operations that are currently not possible. It also unblocks adding new classes and new members to existing classes in the standard library.
Lukas has also contributed changes to sbt 1.10.0 to enforce stricter `scalaVersion`. Starting sbt 1.10.0, when a Scala 2.13.x patch version newer than `scalaVersion` is found, it will fail the build as follows:
```scala
sbt:foo> run
[error] stack trace is suppressed; run last scalaInstance for the full output
[error] (scalaInstance) expected `foo/scalaVersion` to be "2.13.10" or later,
[error] but found "2.13.5"; upgrade scalaVerion to fix the build.
[error]
[error] to support backwards-only binary compatibility (SIP-51),
[error] the Scala 2.13 compiler cannot be older than scala-library on the
[error] dependency classpath.
[error] see `foo/evicted` to know why scala-library 2.13.10 is getting pulled in.
```
When you see the error message like above, you can fix this by updating the Scala version to the suggested version (e.g. 2.13.10):
```scala
ThisBuild / scalaVersion := "2.13.10"
```
Side note: Old timers might know that [sbt 0.13.0](https://www.scala-sbt.org/0.13/docs/ChangeSummary\_0.13.0.html#sbt+0.13.0) also introduced the idea of *scala-library as a normal dependency*. This created various confusions as developers expected `scalaVersion`, compiler version, and scala-library version as expected to align. With the hindsight, sbt 1.10.0 will continue to respect `scalaVersion` to be the source-of-truth, but will reject bad ones at build time.
This was contributed by Lukas Rytz in [#7480][7480].
#### Zinc fixes
- Fixes macro undercompilation by invalidating macro call sites when a type parameter changes by [@Friendseeker][@Friendseeker] in [zinc#1316][zinc1316]
- Fixes macro undercompilation by invalidating macro source when its dependency changes by [@dwijnand][@dwijnand] in [zinc#1282][zinc1282]
- Fixes SAM type undercompilation by [@Friendseeker][@Friendseeker] in [zinc#1288][zinc1288]
- Fixes infinite incremental loop when Scala and Java are involved by [@Friendseeker][@Friendseeker] in [zinc#1312][zinc1312]
- Fixes overcompilation on default parameter changes by [@Friendseeker][@Friendseeker] in [zinc#1324][zinc1324]
- Fixes `IncOptions.useOptimizedSealed` not working for Scala 2.13 by [@Friendseeker][@Friendseeker] in [zinc#1278][zinc1278]
- Includes extra invalidations in initial validation to fix initial compilation error by [@Friendseeker][@Friendseeker] in [zinc#1284][zinc1284]
- Refixes compact names without breaking local names by [@dwijnand][@dwijnand] in [zinc#1259][zinc1259]
- Undoes Protobuf workaround for build to work on Apple Silicon by [@Friendseeker][@Friendseeker] in [zinc#1277][zinc1277]
- Uses `ClassTag` instead of `Manifest` by [@xuwei-k][@xuwei-k] in [zinc#1265][zinc1265]
- Encodes parent trait private members in `extraHash` to propagate `TraitPrivateMembersModified` across external dependency by [@Friendseeker][@Friendseeker] in [zinc#1289][zinc1289]
- Includes internal dependency in `extraHash` computation by [@Friendseeker][@Friendseeker] in [zinc#1290][zinc1290]
- Deletes products of previous analysis when dropping previous analysis by [@Friendseeker][@Friendseeker] in [zinc#1293][zinc1293]
- Uses the most up-to-date analysis for binary to source class name lookup by [@Friendseeker][@Friendseeker] in [zinc#1287][zinc1287]
- Fixes inconsistent Analysis by removing source stamp caching by [@Friendseeker][@Friendseeker] in [zinc#1319][zinc1319]
- Invalidate sources that depends on `@inline` methods in Scala 2.x by [@Friendseeker][@Friendseeker] in [zinc#1310][zinc1310]
- Fixes `-Xshow-phases` handling by [@Friendseeker][@Friendseeker] in [zinc#1314][zinc1314]
#### ConsistentAnalysisFormat: new Zinc Analysis serialization
sbt 1.10.0 adds a new Zinc serialization format that is faster and repeatable, unlike the current Protobuf-based serialization. Benchmark data based on scala-library + reflect + compiler:
| | Write time | Read time | File size |
|-----------------------------|------------|-----------|-----------|
| sbt Text | 1002 ms | 791 ms | ~ 7102 kB |
| sbt Binary | 654 ms | 277 ms | ~ 6182 kB |
| ConsistentBinary | 157 ms | 100 ms | 3097 kB |
Since Zinc Analysis is internal to sbt, sbt 1.10.0 will enable this format by default. The following setting can be used to opt-out:
```scala
Global / enableConsistentCompileAnalysis := false
```
This was contributed by Stefan Zeiger at Databricks in [zinc#1326][zinc1326].
#### New CommandProgress API
sbt 1.10.0 adds a new CommandProgress API.
This was contributed by Iulian Dragos at Gradle Inc in [#7350][7350].
#### Other updates
- Updates to JLine 3.24.1 and JAnsi 2.4.1 by [@hvesalai][@hvesalai]/[@mazugrin][@mazugrin] in [#7419][7419]/[#7545][7545]
- Supports cross-build for external project ref by [@RustedBones][@RustedBones] in [#7389][7389]
- Avoids deprecated `java.net.URL` constructor by [@xuwei-k][@xuwei-k] in [#7398][7398]
- Fixes bug of unmanagedResourceDirectories by [@minkyu97][@minkyu97] in [#7178][7178]
- Fixes `updateSbtClassifiers` task by [@azdrojowa123][@azdrojowa123] in [#7437][7437]
- Fixes `packageSrc` to include `managedSources` by [@Friendseeker][@Friendseeker] in [#7470][7470]
- Fixes publishing to use the publisher specified using the `publisher` setting by [@Tammo0987][@Tammo0987] in [#7475][7475]
- Fixes eviction warning message by avoid repeating versions by [@rtyley][@rtyley] in [lm#433][lm433]
- BSP: Implements `buildTarget/javacOptions` by [@adpi2][@adpi2] in [#7352][7352]
- BSP: Adds `noOp` field in the compile report by [@adpi2][@adpi2] in [#7496][7496]
### [`v1.9.9`](https://redirect.github.com/sbt/sbt/releases/tag/v1.9.9): 1.9.9
[Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.9.8...v1.9.9)
#### Bug fixes
- To fix `console` task on Scala 2.13.13, sbt 1.9.9 backports updates to JLine 3.24.1 and JAnsi 2.4.0 by [@hvesalai](https://redirect.github.com/hvesalai) in [https://github.com/sbt/sbt/pull/7503](https://redirect.github.com/sbt/sbt/pull/7503) / [https://github.com/sbt/sbt/issues/7502](https://redirect.github.com/sbt/sbt/issues/7502)
- To fix sbt 1.9.8's `UnsatisfiedLinkError` with `stat`, sbt 1.9.9 removes native code that was used to get the millisecond-precision timestamp that was broken ([JDK-8177809](https://bugs.openjdk.org/browse/JDK-8177809)) on JDK 8 prior to [OpenJDK 8u302](https://mail.openjdk.org/pipermail/jdk8u-dev/2021-July/014118.html) by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/io/pull/367](https://redirect.github.com/sbt/io/pull/367)
**Full Changelog**: https://github.com/sbt/sbt/compare/v1.9.8...v1.9.9
### [`v1.9.8`](https://redirect.github.com/sbt/sbt/releases/tag/v1.9.8): 1.9.8
[Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.9.7...v1.9.8)
#### updates
- Fixes `IO.getModifiedOrZero` on Alpine etc, by using clib `stat()` instead of non-standard `__xstat64` abi by [@bratkartoffel](https://redirect.github.com/bratkartoffel) in [https://github.com/sbt/io/pull/362](https://redirect.github.com/sbt/io/pull/362)
- As a temporary fix for JLine issue, this disables vi-style effects inside emacs by [@hvesalai](https://redirect.github.com/hvesalai) in [https://github.com/sbt/sbt/pull/7420](https://redirect.github.com/sbt/sbt/pull/7420)
- Backports fix for `updateSbtClassifiers` not downloading sources [https://github.com/sbt/sbt/pull/7437](https://redirect.github.com/sbt/sbt/pull/7437) by [@azdrojowa123](https://redirect.github.com/azdrojowa123)
- Backports missing logger methods that take Java Supplier [https://github.com/sbt/sbt/pull/7447](https://redirect.github.com/sbt/sbt/pull/7447) by [@mkurz](https://redirect.github.com/mkurz)
**Full Changelog**: https://github.com/sbt/sbt/compare/v1.9.7...v1.9.8
Configuration
đ Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
đŠ Automerge: Disabled by config. Please merge this manually once you are satisfied.
â» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
đ Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
1.9.7
->1.10.5
Release Notes
sbt/sbt (sbt/sbt)
### [`v1.10.5`](https://redirect.github.com/sbt/sbt/compare/v1.10.4...v1.10.5) [Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.4...v1.10.5) ### [`v1.10.4`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.4): 1.10.4 [Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.3...v1.10.4) #### updates and bug fixes - fix: Fixes Jansi deprecation notice by switching to jline-terminal-jni by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7811](https://redirect.github.com/sbt/sbt/pull/7811) - fix: Fixes GLIBC\_2.32 issue on sbtn by statically linking musl by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7823](https://redirect.github.com/sbt/sbt/pull/7823) - fix: Throw exception when `sbt new` fails to find template by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7835](https://redirect.github.com/sbt/sbt/pull/7835) - fix: Fixes `~` with `Global / onChangedBuildSource := ReloadOnSourceChanges` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7838](https://redirect.github.com/sbt/sbt/pull/7838) - fix: Fixes "Unrecognized option: --server" error on BSP server by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7824](https://redirect.github.com/sbt/sbt/pull/7824) - fix: Fixes pipelined build while changing version frequently by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7830](https://redirect.github.com/sbt/sbt/pull/7830) - fix: Change the default analysis format to older binary, and make Consistent Analysis opt-in by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7807](https://redirect.github.com/sbt/sbt/pull/7807) #### behind the scene - ci: Bump supported JDK version to 21 in `DEVELOPING.md` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7784](https://redirect.github.com/sbt/sbt/pull/7784) - ci: Bump sbt to 1.10.3 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7802](https://redirect.github.com/sbt/sbt/pull/7802) - ci: Bump `TEST_SBT_VER` to 1.10.3 & remove unused CI variables by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7825](https://redirect.github.com/sbt/sbt/pull/7825) - ci: Delete `.java-version` to not fix java version to 1.8 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7827](https://redirect.github.com/sbt/sbt/pull/7827) - deps: Bump Scala 2.13 to 2.13.15 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7798](https://redirect.github.com/sbt/sbt/pull/7798) - deps: Bump JLine to `3.27.1` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7829](https://redirect.github.com/sbt/sbt/pull/7829) - deps: Zinc 1.10.4 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7839](https://redirect.github.com/sbt/sbt/pull/7839) - refactor: Remove two unused methods that depends on Analysis Timestamp by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7787](https://redirect.github.com/sbt/sbt/pull/7787) - refactor: Deprecate useJCenter key by [@Philippus](https://redirect.github.com/Philippus) in [https://github.com/sbt/sbt/pull/7822](https://redirect.github.com/sbt/sbt/pull/7822) **Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.3...v1.10.4 ### [`v1.10.3`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.3): 1.10.3 [Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.2...v1.10.3) ##### Protobuf with potential Denial of Service (CVE-2024-7254) sbt 1.10.3 updates protobuf-java library to 3.25.5 to address CVE-2024-7254 / https://github.com/advisories/GHSA-735f-pc8j-v9w8, which states that while parsing unknown fields in the Protobuf Java library, a maliciously crafted message can cause a StackOverflow error. Given the nature of how Protobuf is used in Zinc as internal serialization, we think the impact of this issue is minimum. However, security software might still flag this to be an issue while using sbt or Zinc, so upgrade is advised. This issue was originally reported by [@gabrieljones](https://redirect.github.com/gabrieljones) and was fixed by Jerry Tan ([@Friendseeker](https://redirect.github.com/Friendseeker)) in [zinc#1443](https://redirect.github.com/zinc/sbt/issues/1443). [@adpi2](https://redirect.github.com/adpi2) at Scala Center has also configured dependency graph submission to get security alerts in [zinc#1448](https://redirect.github.com/zinc/sbt/issues/1448). sbt/sbt was configured by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7746](https://redirect.github.com/sbt/sbt/pull/7746). ##### Reverting the invalidation of circular-dependent sources sbt 1.10.3 reverts the initial invalidation of circular-dependent Scala source pairs. There had been a series of incremental compiler bugs such as "Invalid superClass" and "value b is not a member of A" that would go away after `clean`. The root cause of these bugs were identified by [@smarter](https://redirect.github.com/smarter) ([https://github.com/sbt/zinc/issues/598#issuecomment-449028234](https://redirect.github.com/sbt/zinc/issues/598#issuecomment-449028234)) and [@Friendseeker](https://redirect.github.com/Friendseeker) to be partial compilation of circular-dependent sources where two sources `A.scala` and `B.scala` use some constructs from each other. sbt 1.10.0 fixed this issue via [https://github.com/sbt/zinc/pull/1284](https://redirect.github.com/sbt/zinc/pull/1284) by invalidating the circular-dependent pairs together. In other words, if `A.scala` was changed, it would immediately invalidate `B.scala`. It turns out, that people have been writing circular-dependent code, and this has resulted in multiple reports of Zinc's over-compilation ([zinc#1420](https://redirect.github.com/sbt/zinc/issues/1420), [zinc#1461](https://redirect.github.com/sbt/zinc/issues/1461)). Given that the invalidation seems to affect the users more frequently than the original bug, we're going to revert the fix for now. We might bring this back with an opt-out flag later on. The revert was contributed by by Li Haoyi ([@lihaoyi](https://redirect.github.com/lihaoyi)) in [https://github.com/sbt/zinc/pull/1462](https://redirect.github.com/sbt/zinc/pull/1462). ##### Improvement: ParallelGzipOutputStream sbt 1.10.0 via [https://github.com/sbt/zinc/pull/1326](https://redirect.github.com/sbt/zinc/pull/1326) added a new consistent (repeatable) formats for Analysis storage. As a minor optimization, the pull request also included an implementation of `ParallelGzipOutputStream`, which would reduce the generate file size by 20%, but with little time penalty. Unfortunately, however, we have observed in CI that that the `scala.concurrent.Future`-based implementation gets stuck in a deadlock. [@Ichoran](https://redirect.github.com/Ichoran) and [@Friendseeker](https://redirect.github.com/Friendseeker) have contributed an alternative implementation that uses Java threads directly, which fixes the issue in [https://github.com/sbt/zinc/pull/1466](https://redirect.github.com/sbt/zinc/pull/1466). ##### bug fixes and updates - deps: Updates metabuild Scala version to 2.12.20 by [@SethTisue](https://redirect.github.com/SethTisue) in [#7636](https://redirect.github.com/sbt/sbt/pull/7636) - fix: Fixes "illegal reflective access operation" error on JDK 11 by updating JLine to 3.27.0 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [#7695](https://redirect.github.com/sbt/sbt/pull/7695) - fix: Fixes transitive invalidation interfering with cycle stopping condition by [@Friendseeker](https://redirect.github.com/Friendseeker) in [zinc#1397](https://redirect.github.com/sbt/zinc/pull/1397) - fix: Fixes dependency resolution of sbt plugins by excluding custom extra attributes from POM dependencies by [@adpi2](https://redirect.github.com/adpi2) in [lm#451](https://redirect.github.com/sbt/librarymanagement/pull/451) - fix: Fixes directory permission issue under a multi-user environment by [@eed3si9n](https://redirect.github.com/eed3si9n) in [ipcsocket#43](https://redirect.github.com/sbt/ipcsocket/pull/43) - deps: Updates `sbt init` template deps by [@xuwei-k](https://redirect.github.com/xuwei-k) in [#7730](https://redirect.github.com/sbt/sbt/pull/7730) - Updates sbt runner to default to sbtn for sbt 2.x by [@eed3si9n](https://redirect.github.com/eed3si9n) in [#7775](https://redirect.github.com/sbt/sbt/pull/7775) ##### behind the scene - ci: Bump CI to JDK 21 by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7760](https://redirect.github.com/sbt/sbt/pull/7760) - refactor: Remove deprecated `System.runFinalization` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7732](https://redirect.github.com/sbt/sbt/pull/7732) - refactor: Remove deprecated `Thread.getId` by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7733](https://redirect.github.com/sbt/sbt/pull/7733) - refactor: Regenerate Contraband files by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7764](https://redirect.github.com/sbt/sbt/pull/7764) - deps: Bump IO, ipc-socket, and launcher by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7776](https://redirect.github.com/sbt/sbt/pull/7776) - deps: Zinc 1.10.3 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7781](https://redirect.github.com/sbt/sbt/pull/7781) - deps: lm 1.10.2 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7782](https://redirect.github.com/sbt/sbt/pull/7782) - ci: Set a default timeout for ci by [@nathanlao](https://redirect.github.com/nathanlao) in [https://github.com/sbt/sbt/pull/7766](https://redirect.github.com/sbt/sbt/pull/7766) - ci: Removes `vscode-sbt-scala` from build.sbt by [@Friendseeker](https://redirect.github.com/Friendseeker) in [https://github.com/sbt/sbt/pull/7728](https://redirect.github.com/sbt/sbt/pull/7728) - ci: Adds dependabot setting for develop branch by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/sbt/sbt/pull/7701](https://redirect.github.com/sbt/sbt/pull/7701) **Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.2...v1.10.3 ### [`v1.10.2`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.2): 1.10.2 [Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.1...v1.10.2) #### Changes with compatibility implications - Uses `_sbt2_3` suffix for sbt 2.x by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7671](https://redirect.github.com/sbt/sbt/pull/7671) #### Updates and bug fixes - Fixes the attribute key name from `serverIdleTimeOut` to `serverIdleTimeout` to match the variable name by [@lervag](https://redirect.github.com/lervag) in [https://github.com/sbt/sbt/pull/7651](https://redirect.github.com/sbt/sbt/pull/7651) - Fixes incremental Scala-Java mixed compilation that produces JAR directly by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/zinc/pull/1377](https://redirect.github.com/sbt/zinc/pull/1377) - Fixes over-compilation when using a class directory as a library by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/zinc/pull/1382](https://redirect.github.com/sbt/zinc/pull/1382) - Perf: Copy bytes directly instead of using `scala.reflect.io.Streamable` by [@rochala](https://redirect.github.com/rochala) in [https://github.com/sbt/zinc/pull/1395](https://redirect.github.com/sbt/zinc/pull/1395) - Includes all sources and resources in source jar by [@jroper](https://redirect.github.com/jroper) in [https://github.com/sbt/sbt/pull/7630](https://redirect.github.com/sbt/sbt/pull/7630) - Fixes the handling of `Optional` inter-project dependency in BSP by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7568](https://redirect.github.com/sbt/sbt/pull/7568) - Trims spaces around k and v to tolerate extra whitespace in `build.properties` by [@invadergir](https://redirect.github.com/invadergir) in [https://github.com/sbt/sbt/pull/7585](https://redirect.github.com/sbt/sbt/pull/7585) - Fixes legacy repositories like `scala-tools-releases` in `repositories` file blocking sbt from launching by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/launcher/pull/104](https://redirect.github.com/sbt/launcher/pull/104) - Fixes stale BSP diagnostics by [@SlowBrainDude](https://redirect.github.com/SlowBrainDude) in [https://github.com/sbt/sbt/pull/7610](https://redirect.github.com/sbt/sbt/pull/7610) - Fixes scripted support for sbt 2.x by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7672](https://redirect.github.com/sbt/sbt/pull/7672) - Avoids using `ThreadDeath` for future JDK compatibility by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/sbt/sbt/pull/7652](https://redirect.github.com/sbt/sbt/pull/7652) - Avoids using `ZipError` for future JDK compatibility by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/zinc/pull/1393](https://redirect.github.com/sbt/zinc/pull/1393) #### Behind the scenes - Update to Zinc 1.10.2 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7674](https://redirect.github.com/sbt/sbt/pull/7674) - Update to lm 1.10.1 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7597](https://redirect.github.com/sbt/sbt/pull/7597) - Update to Launcher 1.4.3 by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7598](https://redirect.github.com/sbt/sbt/pull/7598) - Update to the common Scala 2.12 version for the sbtn subproject by [@SlowBrainDude](https://redirect.github.com/SlowBrainDude) in [https://github.com/sbt/sbt/pull/7605](https://redirect.github.com/sbt/sbt/pull/7605) - Note in dev docs on supported build time JDK version dependency by [@SlowBrainDude](https://redirect.github.com/SlowBrainDude) in [https://github.com/sbt/sbt/pull/7606](https://redirect.github.com/sbt/sbt/pull/7606) - CI: Zinc default branch is 1.10.x by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7654](https://redirect.github.com/sbt/sbt/pull/7654) - Upgrade sbt plugins to avoid deprecated repo.scala-sbt.org by [@mkurz](https://redirect.github.com/mkurz) in [https://github.com/sbt/sbt/pull/7555](https://redirect.github.com/sbt/sbt/pull/7555) - Update Scala 3 doc test by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/sbt/pull/7619](https://redirect.github.com/sbt/sbt/pull/7619) - Bump scalacenter/sbt-dependency-submission from 2 to 3 by [@dependabot](https://redirect.github.com/dependabot) in [https://github.com/sbt/sbt/pull/7565](https://redirect.github.com/sbt/sbt/pull/7565) - Fixes `dependency-management/force-update-period` test (backport of [#7538](https://redirect.github.com/sbt/sbt/issues/7538)) by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7567](https://redirect.github.com/sbt/sbt/pull/7567) - Fixes BuildServerTest by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7638](https://redirect.github.com/sbt/sbt/pull/7638) #### New contributors - [@invadergir](https://redirect.github.com/invadergir) made their first contribution in [https://github.com/sbt/sbt/pull/7585](https://redirect.github.com/sbt/sbt/pull/7585) - [@rochala](https://redirect.github.com/rochala) made their first contribution in [https://github.com/sbt/zinc/pull/1395](https://redirect.github.com/sbt/zinc/pull/1395) - [@SlowBrainDude](https://redirect.github.com/SlowBrainDude) made their first contribution in [https://github.com/sbt/sbt/pull/7606](https://redirect.github.com/sbt/sbt/pull/7606) - [@lervag](https://redirect.github.com/lervag) made their first contribution in [https://github.com/sbt/sbt/pull/7651](https://redirect.github.com/sbt/sbt/pull/7651) **Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.0...v1.10.2 ### [`v1.10.1`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.1): 1.10.1 [Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.10.0...v1.10.1) #### bug fixes and updates - Fixes column/position information missing from the javac error messages in IntelliJ by [@vasilmkd](https://redirect.github.com/vasilmkd) in [https://github.com/sbt/zinc/pull/1373](https://redirect.github.com/sbt/zinc/pull/1373) - Fixes backslash handling in `expandMavenSettings` by [@desbo](https://redirect.github.com/desbo) in [https://github.com/sbt/librarymanagement/pull/444](https://redirect.github.com/sbt/librarymanagement/pull/444) - Fixes JSON serialization of `Map` and `LList` in sjson-new 0.10.1 by [@steinybot](https://redirect.github.com/steinybot) + [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/eed3si9n/sjson-new/pull/142](https://redirect.github.com/eed3si9n/sjson-new/pull/142) - Fixes the hash code for empty files in the classpath cache by [@szeiger](https://redirect.github.com/szeiger) in [https://github.com/sbt/zinc/pull/1366](https://redirect.github.com/sbt/zinc/pull/1366) - Fixes `forceUpdatePeriod` by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7567](https://redirect.github.com/sbt/sbt/pull/7567) - Fixes BSP handling of `Optional` inter-project dependencies by [@adpi2](https://redirect.github.com/adpi2) in [https://github.com/sbt/sbt/pull/7568](https://redirect.github.com/sbt/sbt/pull/7568) - Ignores `jcenter` and `scala-tools-releases` entries in the `~/.sbt/repositories` file by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/launcher/pull/104](https://redirect.github.com/sbt/launcher/pull/104) #### behind the scenes - Updates sbt plugins to avoid deprecated repo.scala-sbt.org by [@mkurz](https://redirect.github.com/mkurz) in [https://github.com/sbt/sbt/pull/7555](https://redirect.github.com/sbt/sbt/pull/7555) - Updates scalacenter/sbt-dependency-submission from 2 to 3 by [@dependabot](https://redirect.github.com/dependabot) in [https://github.com/sbt/sbt/pull/7565](https://redirect.github.com/sbt/sbt/pull/7565) **Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.0...v1.10.1 ### [`v1.10.0`](https://redirect.github.com/sbt/sbt/releases/tag/v1.10.0): 1.10.0 [Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.9.9...v1.10.0) [@eed3si9n]: https://redirect.github.com/eed3si9n [@adpi2]: https://redirect.github.com/adpi2 [@dwijnand]: https://redirect.github.com/dwijnand [@xuwei-k]: https://redirect.github.com/xuwei-k [@mdedetrich]: https://redirect.github.com/mdedetrich [@mkurz]: https://redirect.github.com/mkurz [@hvesalai]: https://redirect.github.com/hvesalai [@Friendseeker]: https://redirect.github.com/Friendseeker [@RustedBones]: https://redirect.github.com/RustedBones [@minkyu97]: https://redirect.github.com/minkyu97 [@azdrojowa123]: https://redirect.github.com/azdrojowa123 [@SethTisue]: https://redirect.github.com/SethTisue [@Tammo0987]: https://redirect.github.com/Tammo0987 [@azolotko]: https://redirect.github.com/azolotko [@rtyley]: https://redirect.github.com/rtyley [@mazugrin]: https://redirect.github.com/mazugrin [7350]: https://redirect.github.com/sbt/sbt/pull/7350 [7352]: https://redirect.github.com/sbt/sbt/pull/7352 [7470]: https://redirect.github.com/sbt/sbt/pull/7470 [7475]: https://redirect.github.com/sbt/sbt/pull/7475 [7480]: https://redirect.github.com/sbt/sbt/pull/7480 [7496]: https://redirect.github.com/sbt/sbt/pull/7496 [7516]: https://redirect.github.com/sbt/sbt/pull/7516 [7513]: https://redirect.github.com/sbt/sbt/pull/7513 [7419]: https://redirect.github.com/sbt/sbt/pull/7419 [7389]: https://redirect.github.com/sbt/sbt/pull/7389 [7398]: https://redirect.github.com/sbt/sbt/pull/7398 [7178]: https://redirect.github.com/sbt/sbt/pull/7178 [7437]: https://redirect.github.com/sbt/sbt/pull/7437 [7545]: https://redirect.github.com/sbt/sbt/pull/7545 [sip51]: https://docs.scala-lang.org/sips/drop-stdlib-forwards-bin-compat.html [zinc1319]: https://redirect.github.com/sbt/zinc/pull/1319 [zinc1316]: https://redirect.github.com/sbt/zinc/pull/1316 [zinc1314]: https://redirect.github.com/sbt/zinc/pull/1314 [zinc1326]: https://redirect.github.com/sbt/zinc/pull/1326 [zinc1324]: https://redirect.github.com/sbt/zinc/pull/1324 [zinc1312]: https://redirect.github.com/sbt/zinc/pull/1312 [zinc1310]: https://redirect.github.com/sbt/zinc/pull/1310 [zinc1278]: https://redirect.github.com/sbt/zinc/pull/1278 [zinc1284]: https://redirect.github.com/sbt/zinc/pull/1284 [zinc1259]: https://redirect.github.com/sbt/zinc/pull/1259 [zinc1277]: https://redirect.github.com/sbt/zinc/pull/1277 [zinc1265]: https://redirect.github.com/sbt/zinc/pull/1265 [zinc1289]: https://redirect.github.com/sbt/zinc/pull/1289 [zinc1290]: https://redirect.github.com/sbt/zinc/pull/1290 [zinc1282]: https://redirect.github.com/sbt/zinc/pull/1282 [zinc1293]: https://redirect.github.com/sbt/zinc/pull/1293 [zinc1288]: https://redirect.github.com/sbt/zinc/pull/1288 [zinc1287]: https://redirect.github.com/sbt/zinc/pull/1287 [lm436]: https://redirect.github.com/sbt/librarymanagement/pull/436 [lm433]: https://redirect.github.com/sbt/librarymanagement/pull/433 #### Changes with compatibility implications - For SIP-51 support, `scalaVersion` can no longer be a lower 2.13.x version number than its transitive depdencies. See below for details. - ConsistentAnalysisFormat is enabled by default. See below for details. - Updates lm-coursier-shaded to 2.1.4, which brings in Coursier 2.1.9 [#7513][7513]. - Updates Jsch to [mwiede/jsch](https://redirect.github.com/mwiede/jsch) fork by [@azolotko][@azolotko] in [lm#436][lm436] - Updates the Scala version used by sbt 1.x to 2.12.19 by [@SethTisue][@SethTisue] in [#7516][7516]. #### SIP-51 Support for Scala 2.13 Evolution Modern Scala 2.x has kept both forward and backward binary compatibility so a library compiled using Scala 2.13.12 can be used by an application compiled with Scala 2.13.11 etc, and vice versa. The forward compatibility restricts Scala 2.x from evolving during the patch releases, so in [SIP-51][sip51] Lukas Rytz at Lightbend Scala Team proposed: > I propose to drop the forwards binary compatibility requirement that build tools enforce on the Scala 2.13 standard library. This will allow implementing performance optimizations of collection operations that are currently not possible. It also unblocks adding new classes and new members to existing classes in the standard library. Lukas has also contributed changes to sbt 1.10.0 to enforce stricter `scalaVersion`. Starting sbt 1.10.0, when a Scala 2.13.x patch version newer than `scalaVersion` is found, it will fail the build as follows: ```scala sbt:foo> run [error] stack trace is suppressed; run last scalaInstance for the full output [error] (scalaInstance) expected `foo/scalaVersion` to be "2.13.10" or later, [error] but found "2.13.5"; upgrade scalaVerion to fix the build. [error] [error] to support backwards-only binary compatibility (SIP-51), [error] the Scala 2.13 compiler cannot be older than scala-library on the [error] dependency classpath. [error] see `foo/evicted` to know why scala-library 2.13.10 is getting pulled in. ``` When you see the error message like above, you can fix this by updating the Scala version to the suggested version (e.g. 2.13.10): ```scala ThisBuild / scalaVersion := "2.13.10" ``` Side note: Old timers might know that [sbt 0.13.0](https://www.scala-sbt.org/0.13/docs/ChangeSummary\_0.13.0.html#sbt+0.13.0) also introduced the idea of *scala-library as a normal dependency*. This created various confusions as developers expected `scalaVersion`, compiler version, and scala-library version as expected to align. With the hindsight, sbt 1.10.0 will continue to respect `scalaVersion` to be the source-of-truth, but will reject bad ones at build time. This was contributed by Lukas Rytz in [#7480][7480]. #### Zinc fixes - Fixes macro undercompilation by invalidating macro call sites when a type parameter changes by [@Friendseeker][@Friendseeker] in [zinc#1316][zinc1316] - Fixes macro undercompilation by invalidating macro source when its dependency changes by [@dwijnand][@dwijnand] in [zinc#1282][zinc1282] - Fixes SAM type undercompilation by [@Friendseeker][@Friendseeker] in [zinc#1288][zinc1288] - Fixes infinite incremental loop when Scala and Java are involved by [@Friendseeker][@Friendseeker] in [zinc#1312][zinc1312] - Fixes overcompilation on default parameter changes by [@Friendseeker][@Friendseeker] in [zinc#1324][zinc1324] - Fixes `IncOptions.useOptimizedSealed` not working for Scala 2.13 by [@Friendseeker][@Friendseeker] in [zinc#1278][zinc1278] - Includes extra invalidations in initial validation to fix initial compilation error by [@Friendseeker][@Friendseeker] in [zinc#1284][zinc1284] - Refixes compact names without breaking local names by [@dwijnand][@dwijnand] in [zinc#1259][zinc1259] - Undoes Protobuf workaround for build to work on Apple Silicon by [@Friendseeker][@Friendseeker] in [zinc#1277][zinc1277] - Uses `ClassTag` instead of `Manifest` by [@xuwei-k][@xuwei-k] in [zinc#1265][zinc1265] - Encodes parent trait private members in `extraHash` to propagate `TraitPrivateMembersModified` across external dependency by [@Friendseeker][@Friendseeker] in [zinc#1289][zinc1289] - Includes internal dependency in `extraHash` computation by [@Friendseeker][@Friendseeker] in [zinc#1290][zinc1290] - Deletes products of previous analysis when dropping previous analysis by [@Friendseeker][@Friendseeker] in [zinc#1293][zinc1293] - Uses the most up-to-date analysis for binary to source class name lookup by [@Friendseeker][@Friendseeker] in [zinc#1287][zinc1287] - Fixes inconsistent Analysis by removing source stamp caching by [@Friendseeker][@Friendseeker] in [zinc#1319][zinc1319] - Invalidate sources that depends on `@inline` methods in Scala 2.x by [@Friendseeker][@Friendseeker] in [zinc#1310][zinc1310] - Fixes `-Xshow-phases` handling by [@Friendseeker][@Friendseeker] in [zinc#1314][zinc1314] #### ConsistentAnalysisFormat: new Zinc Analysis serialization sbt 1.10.0 adds a new Zinc serialization format that is faster and repeatable, unlike the current Protobuf-based serialization. Benchmark data based on scala-library + reflect + compiler: | | Write time | Read time | File size | |-----------------------------|------------|-----------|-----------| | sbt Text | 1002 ms | 791 ms | ~ 7102 kB | | sbt Binary | 654 ms | 277 ms | ~ 6182 kB | | ConsistentBinary | 157 ms | 100 ms | 3097 kB | Since Zinc Analysis is internal to sbt, sbt 1.10.0 will enable this format by default. The following setting can be used to opt-out: ```scala Global / enableConsistentCompileAnalysis := false ``` This was contributed by Stefan Zeiger at Databricks in [zinc#1326][zinc1326]. #### New CommandProgress API sbt 1.10.0 adds a new CommandProgress API. This was contributed by Iulian Dragos at Gradle Inc in [#7350][7350]. #### Other updates - Updates to JLine 3.24.1 and JAnsi 2.4.1 by [@hvesalai][@hvesalai]/[@mazugrin][@mazugrin] in [#7419][7419]/[#7545][7545] - Supports cross-build for external project ref by [@RustedBones][@RustedBones] in [#7389][7389] - Avoids deprecated `java.net.URL` constructor by [@xuwei-k][@xuwei-k] in [#7398][7398] - Fixes bug of unmanagedResourceDirectories by [@minkyu97][@minkyu97] in [#7178][7178] - Fixes `updateSbtClassifiers` task by [@azdrojowa123][@azdrojowa123] in [#7437][7437] - Fixes `packageSrc` to include `managedSources` by [@Friendseeker][@Friendseeker] in [#7470][7470] - Fixes publishing to use the publisher specified using the `publisher` setting by [@Tammo0987][@Tammo0987] in [#7475][7475] - Fixes eviction warning message by avoid repeating versions by [@rtyley][@rtyley] in [lm#433][lm433] - BSP: Implements `buildTarget/javacOptions` by [@adpi2][@adpi2] in [#7352][7352] - BSP: Adds `noOp` field in the compile report by [@adpi2][@adpi2] in [#7496][7496] ### [`v1.9.9`](https://redirect.github.com/sbt/sbt/releases/tag/v1.9.9): 1.9.9 [Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.9.8...v1.9.9) #### Bug fixes - To fix `console` task on Scala 2.13.13, sbt 1.9.9 backports updates to JLine 3.24.1 and JAnsi 2.4.0 by [@hvesalai](https://redirect.github.com/hvesalai) in [https://github.com/sbt/sbt/pull/7503](https://redirect.github.com/sbt/sbt/pull/7503) / [https://github.com/sbt/sbt/issues/7502](https://redirect.github.com/sbt/sbt/issues/7502) - To fix sbt 1.9.8's `UnsatisfiedLinkError` with `stat`, sbt 1.9.9 removes native code that was used to get the millisecond-precision timestamp that was broken ([JDK-8177809](https://bugs.openjdk.org/browse/JDK-8177809)) on JDK 8 prior to [OpenJDK 8u302](https://mail.openjdk.org/pipermail/jdk8u-dev/2021-July/014118.html) by [@eed3si9n](https://redirect.github.com/eed3si9n) in [https://github.com/sbt/io/pull/367](https://redirect.github.com/sbt/io/pull/367) **Full Changelog**: https://github.com/sbt/sbt/compare/v1.9.8...v1.9.9 ### [`v1.9.8`](https://redirect.github.com/sbt/sbt/releases/tag/v1.9.8): 1.9.8 [Compare Source](https://redirect.github.com/sbt/sbt/compare/v1.9.7...v1.9.8) #### updates - Fixes `IO.getModifiedOrZero` on Alpine etc, by using clib `stat()` instead of non-standard `__xstat64` abi by [@bratkartoffel](https://redirect.github.com/bratkartoffel) in [https://github.com/sbt/io/pull/362](https://redirect.github.com/sbt/io/pull/362) - As a temporary fix for JLine issue, this disables vi-style effects inside emacs by [@hvesalai](https://redirect.github.com/hvesalai) in [https://github.com/sbt/sbt/pull/7420](https://redirect.github.com/sbt/sbt/pull/7420) - Backports fix for `updateSbtClassifiers` not downloading sources [https://github.com/sbt/sbt/pull/7437](https://redirect.github.com/sbt/sbt/pull/7437) by [@azdrojowa123](https://redirect.github.com/azdrojowa123) - Backports missing logger methods that take Java Supplier [https://github.com/sbt/sbt/pull/7447](https://redirect.github.com/sbt/sbt/pull/7447) by [@mkurz](https://redirect.github.com/mkurz) **Full Changelog**: https://github.com/sbt/sbt/compare/v1.9.7...v1.9.8Configuration
đ Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
đŠ Automerge: Disabled by config. Please merge this manually once you are satisfied.
â» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
đ Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.