From c717609ab2ad2427b485c9b660a0cd4995df2693 Mon Sep 17 00:00:00 2001 From: eugene yokota Date: Thu, 13 Aug 2026 17:00:17 -0400 Subject: [PATCH] [2.x] doc: Start sbt 2.1.0 release note (#9595) --- notes/2.1.0/2.1.0-c5eac14c-all.md | 400 +++++++++++++++++++++++++++++ notes/2.1.0/2.1.0-draft.md | 231 +++++++++++++++++ notes/2.1.0/backported-to-2.0.x.md | 157 +++++++++++ 3 files changed, 788 insertions(+) create mode 100644 notes/2.1.0/2.1.0-c5eac14c-all.md create mode 100644 notes/2.1.0/2.1.0-draft.md create mode 100644 notes/2.1.0/backported-to-2.0.x.md diff --git a/notes/2.1.0/2.1.0-c5eac14c-all.md b/notes/2.1.0/2.1.0-c5eac14c-all.md new file mode 100644 index 000000000..cb3b80f23 --- /dev/null +++ b/notes/2.1.0/2.1.0-c5eac14c-all.md @@ -0,0 +1,400 @@ +## Changes with compatibility implications + +- refactor: Make Ivy keys lazy/optional and flip useIvy default to false by @eureka928 in https://github.com/sbt/sbt/pull/8866 +- Deprecate url(...) and Resolver.url(...) in favor of uri(...) by @eed3si9n in https://github.com/sbt/sbt/pull/9420 + +## Security fixes + +- fix: Gate LSP calls behind auth ([GHSA-m2pw-22cj-jq4v](https://github.com/sbt/sbt/security/advisories/GHSA-m2pw-22cj-jq4v)) by @eed3si9n in https://github.com/sbt/sbt/commit/6365a0723 +- fix: Harden Windows VCS URI fragments against command injection by @anatoliykmetyuk in https://github.com/sbt/sbt/commit/a9347cf22 + +## 🚀 updates + +- Add project id to Zinc debug log by @Achieve3318 in https://github.com/sbt/sbt/pull/8750 +- feat: sbtn subscription level by @bitloi in https://github.com/sbt/sbt/pull/8796 +- feat: Add allowMismatchScala setting by @dev-miro26 in https://github.com/sbt/sbt/pull/8804 +- feat: Support doc / skip := true by @eureka928 in https://github.com/sbt/sbt/pull/8824 +- feat: case-insensitive tab completion by @bitloi in https://github.com/sbt/sbt/pull/8827 +- feat: support passing JVM arguments via -- delimiter in run commands by @RenzoMXD in https://github.com/sbt/sbt/pull/8868 +- dependencyTree: add `--append` for file output in multi-module builds by @oolokioo7 in https://github.com/sbt/sbt/pull/8878 +- feat: updating remote vcs projects by @seroperson in https://github.com/sbt/sbt/pull/8880 +- feat: Support --autostart=false and --no-server in sbtn client by @eureka928 in https://github.com/sbt/sbt/pull/8895 +- Retry on HTTP 5xx during dependency resolution by @majk-p in https://github.com/sbt/sbt/pull/8903 +- feat: Eviction error for downgrade of Scala 3.x by @bitloi in https://github.com/sbt/sbt/pull/8912 +- feat: Add dependencyMode setting to control classpath transitivity by @eureka928 in https://github.com/sbt/sbt/pull/8960 +- feat: Add cacheVersion setting for global cache invalidation by @eureka928 in https://github.com/sbt/sbt/pull/8993 +- feat: Add English aliases cross and switch for + / ++ by @jonathanchang31 in https://github.com/sbt/sbt/pull/9051 +- feat: Implement BSP buildTarget/dependencyModules by @jsdevninja in https://github.com/sbt/sbt/pull/9085 +- feat: Forward test events to listeners as they are emitted by @claytonlin1110 in https://github.com/sbt/sbt/pull/9087 +- feat: Expose `scripted / excludeFilter` and `scripted / includeFilter` keys for scripted test filtering. by @arashi01 in https://github.com/sbt/sbt/pull/9131 +- feat: ClassLoaderStrategy.Raw by @eed3si9n in https://github.com/sbt/sbt/pull/9161 +- Add ForkOptions.connectionTimeout by @xuwei-k in https://github.com/sbt/sbt/pull/9172 +- feat: Execution log by @eed3si9n in https://github.com/sbt/sbt/pull/9203 +- feat: Print cross-project test failure recap at end of aggregated run by @BrianHotopp in https://github.com/sbt/sbt/pull/9214 +- Add runner support for execution log by @eed3si9n in https://github.com/sbt/sbt/pull/9237 +- feat: Resolve dependencies in parallel under the super shell by @BrianHotopp in https://github.com/sbt/sbt/pull/9295 +- Allow opt-out of transient warning by @eed3si9n in https://github.com/sbt/sbt/pull/9437 +- Specific error message for defining types by @xuwei-k in https://github.com/sbt/sbt/pull/9579 + +## 🐛 Bug fixes + +- fix: excluding artifacts w/o scala version suffix (#7454) by @seroperson in https://github.com/sbt/sbt/pull/8756 +- fix: Fixes double quotes handling in fork mode by @BrianHotopp in https://github.com/sbt/sbt/pull/8765 +- Fix duplicate compiler bridge jar in ZincComponentManager by @since-2017-hub in https://github.com/sbt/sbt/pull/8800 +- fix: Refer to universal sbtn in detectNativeClient by @fireXtract in https://github.com/sbt/sbt/pull/8810 +- fix: Print server stderr on startup failure by @eureka928 in https://github.com/sbt/sbt/pull/8816 +- Fix lazy val name handling in Eval by @xuwei-k in https://github.com/sbt/sbt/pull/8818 +- fix: sbt -debug doesn't display loading log by @bitloi in https://github.com/sbt/sbt/pull/8819 +- fix: IgnoreSourceChanges now works by @seroperson in https://github.com/sbt/sbt/pull/8820 +- fix: Runner should fail on JDK < 17 for sbt 2.x by @eureka928 in https://github.com/sbt/sbt/pull/8825 +- fix: support comma-separated imports in build.sbt by @RenzoMXD in https://github.com/sbt/sbt/pull/8829 +- fix: Backtick-quote project IDs in classloader error messages by @eureka928 in https://github.com/sbt/sbt/pull/8830 +- fix: sbt --client fails if -mem is provided by @chrisrock1124 in https://github.com/sbt/sbt/pull/8831 +- fix: Fix typo in CONTRIBUTING.md ("guideslins" -> "guidelines") by @it-education-md in https://github.com/sbt/sbt/pull/8834 +- fix: Fix spelling typos in contributing docs by @it-education-md in https://github.com/sbt/sbt/pull/8835 +- fix: Fix spelling and link in AGENTS docs by @it-education-md in https://github.com/sbt/sbt/pull/8837 +- fix: Fixes double quotes handling in fork mode by @eed3si9n in https://github.com/sbt/sbt/pull/8842 +- fix: make ScopeFilter .all ordering deterministic and preserve project filter order by @bitloi in https://github.com/sbt/sbt/pull/8861 +- fix: Undefined per-project settings order by @seroperson in https://github.com/sbt/sbt/pull/8862 +- fix: Respect global log level in continuous build watcher by @eureka928 in https://github.com/sbt/sbt/pull/8864 +- fix: Unresolved dependency error for Coursier by @bitloi in https://github.com/sbt/sbt/pull/8869 +- fix: Populate explicitArtifacts from classifier in UpdateReport by @eureka928 in https://github.com/sbt/sbt/pull/8874 +- fix: handle -sbt-dir with spaces from .sbtopts by @Eruis2579 in https://github.com/sbt/sbt/pull/8875 +- fix: sbt-with-loglevel-error by @oolokioo7 in https://github.com/sbt/sbt/pull/8883 +- fix: Handle scala/toolkit.local when passed as argument to sbt new by @mohamed0803 in https://github.com/sbt/sbt/pull/8887 +- fix: fall back to the onsite task when cache fails by @idanbenzvi in https://github.com/sbt/sbt/pull/8890 +- fix: Remove projectDescriptors key that leaks Ivy types by @eureka928 in https://github.com/sbt/sbt/pull/8894 +- Fix TaskConvert.appExpr by @xuwei-k in https://github.com/sbt/sbt/pull/8899 +- fix: Fixes script mode using Scala 3.x by @bitloi in https://github.com/sbt/sbt/pull/8900 +- fix: server-test and related refactoring by @seroperson in https://github.com/sbt/sbt/pull/8904 +- fix: use new constructor for CantDownloadModule by @majk-p in https://github.com/sbt/sbt/pull/8905 +- fix: Preserve user-specified scope axes in command instead of silently discarding them by @bittoby in https://github.com/sbt/sbt/pull/8916 +- fix: Skip Conflict when dependency relocations form a cycle by @bitloi in https://github.com/sbt/sbt/pull/8919 +- fix: Use sbt script in BSP config instead of hardcoded Java path by @bittoby in https://github.com/sbt/sbt/pull/8920 +- fix: Fixes non-typelevel scalaOrganization by @eed3si9n in https://github.com/sbt/sbt/pull/8945 +- fix: Fix scripted test loading build definition twice on first test in batch by @bittoby in https://github.com/sbt/sbt/pull/8946 +- Fix misleading error message when .evaluated is used outside macro context by @BrianHotopp in https://github.com/sbt/sbt/pull/8951 +- fix: libraryDependency didn't work for cross-platform dependencies by @ckstck in https://github.com/sbt/sbt/pull/8957 +- Fix Resolvers test formatting by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/8968 +- fix: Emit in POM for non-jar explicit artifacts by @BrianHotopp in https://github.com/sbt/sbt/pull/8975 +- fix: Fix ProjectMatrix base directory resolution for source dependencies by @bittoby in https://github.com/sbt/sbt/pull/8983 +- fix: Stabilize progress indicator sort by @bittoby in https://github.com/sbt/sbt/pull/8984 +- fix: Avoid following symlinks during scripted test cleanup by @eureka928 in https://github.com/sbt/sbt/pull/8985 +- Fix: strip pipelining scalacOptions before launching the REPL by @corevibe555 in https://github.com/sbt/sbt/pull/8986 +- fix: Preserve configuration visibility in ivy.xml when publishing with coursier by @eureka928 in https://github.com/sbt/sbt/pull/8988 +- fix: Scope dependencyMode filtering to compilation only by @eureka928 in https://github.com/sbt/sbt/pull/8990 +- fix: Update ++ help text to reflect SemanticSelector matching by @BrianHotopp in https://github.com/sbt/sbt/pull/8995 +- fix: Write maven-metadata-local.xml during publishM2 for SNAPSHOTs by @BrianHotopp in https://github.com/sbt/sbt/pull/8996 +- Fix old shell syntax warning by @xuwei-k in https://github.com/sbt/sbt/pull/8998 +- fix: Resolve relative paths from -sbt-dir / sbt.global.base by @BrianHotopp in https://github.com/sbt/sbt/pull/9001 +- fix: Return JSON-RPC error for unknown server methods by @BrianHotopp in https://github.com/sbt/sbt/pull/9002 +- fix: Add --fail to curl in launcher to prevent corrupt jars by @BrianHotopp in https://github.com/sbt/sbt/pull/9003 +- fix: resolve virtual path in -Ypickle-write scalac option by @corevibe555 in https://github.com/sbt/sbt/pull/9011 +- fix: derivedProjects not invoked when no explicit root project is defined by @bitcompass in https://github.com/sbt/sbt/pull/9012 +- fix: Fixes metabuild reloading by @eed3si9n in https://github.com/sbt/sbt/pull/9019 +- fix: Fixes pollInterval by @eed3si9n in https://github.com/sbt/sbt/pull/9020 +- Prefer local ScalaModuleInfo over global config by @kitbellew in https://github.com/sbt/sbt/pull/9028 +- Fix Scala 3 .previous expansion for unstable path by @tanishiking in https://github.com/sbt/sbt/pull/9041 +- fix: Fix FileAlreadyExistsException in packageDirectory by @bitloi in https://github.com/sbt/sbt/pull/9047 +- fix: Widen IOException catch in organicTask to cover result serialization by @bittoby in https://github.com/sbt/sbt/pull/9050 +- fix: clear compiler bridge zinc cache on reboot dev by @bitloi in https://github.com/sbt/sbt/pull/9057 +- fix: stack traces suppressed in thin client batch mode by @bittoby in https://github.com/sbt/sbt/pull/9058 +- Delete bootDirectory in cleanFull by @xuwei-k in https://github.com/sbt/sbt/pull/9060 +- Fix scaladoc issue in mainProj and sbtIvyProj by @xuwei-k in https://github.com/sbt/sbt/pull/9061 +- override sbt.Tests.Group hashCode by @xuwei-k in https://github.com/sbt/sbt/pull/9065 +- hide JDK warnings if JDK 26 or later by @xuwei-k in https://github.com/sbt/sbt/pull/9068 +- fix: Add description and url to PomGenerator output by @eureka0928 in https://github.com/sbt/sbt/pull/9069 +- fix: Delete src/main/resources/log4j2.xml by @xuwei-k in https://github.com/sbt/sbt/pull/9071 +- fix: Fix consoleProject for Scala 3 by @eureka0928 in https://github.com/sbt/sbt/pull/9073 +- fix: Cache AutoPlugin projectSettings/projectConfigurations by @volcano303 in https://github.com/sbt/sbt/pull/9077 +- fix: Fixes client-side run status by @eed3si9n in https://github.com/sbt/sbt/pull/9081 +- Add Test configuration to evictionWarningOptions by @zainab-ali in https://github.com/sbt/sbt/pull/9102 +- fix: Use rootPaths to replace virtual paths in console and doc scalac options. by @mrdziuban in https://github.com/sbt/sbt/pull/9110 +- fix: Include platform suffix in Artifact.artifactName by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9118 +- fix: Fixes managedScalaInstance false support by @eed3si9n in https://github.com/sbt/sbt/pull/9121 +- fix: Fixes ctrl-c handling by @eed3si9n in https://github.com/sbt/sbt/pull/9130 +- fix: Fixes compilerPlugin(...) to ignore platform by @eed3si9n in https://github.com/sbt/sbt/pull/9135 +- fix: Remove will-be-ignored warning by @eed3si9n in https://github.com/sbt/sbt/pull/9143 +- fix: Avoid dependencyTree browse crashes on Linux by @jimcody1995 in https://github.com/sbt/sbt/pull/9147 +- fix: Fix error with "-language:postfixOps" by @xuwei-k in https://github.com/sbt/sbt/pull/9151 +- fix: Fix build.sbt file loading in subdirs by @eed3si9n in https://github.com/sbt/sbt/pull/9165 +- Fix console output not appearing with bgRun and run / fork := true by @mrdziuban in https://github.com/sbt/sbt/pull/9166 +- fix: Adjust the forked test classpath by @eed3si9n in https://github.com/sbt/sbt/pull/9170 +- Fix #9190: Ensure resources are copied atomically by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9193 +- fix: Fixes cache restoration of incremental compilation state (Analysis) by @eed3si9n in https://github.com/sbt/sbt/pull/9207 +- fix: Invalidate on JDK version by @eed3si9n in https://github.com/sbt/sbt/pull/9216 +- fix: Include test arg into hash by @eed3si9n in https://github.com/sbt/sbt/pull/9222 +- fix: Collapse duplicate subtrees in dependency tree rendering by @BrianHotopp in https://github.com/sbt/sbt/pull/9226 +- fix: Remove explicit equals and hashCode in LabeledFunctions by @xuwei-k in https://github.com/sbt/sbt/pull/9228 +- fix: Catch timeout on sbtn exit by @eed3si9n in https://github.com/sbt/sbt/pull/9239 +- fix: Add regression test by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9246 +- fix: Apply dependencyMode filtering to internal project deps by @BrianHotopp in https://github.com/sbt/sbt/pull/9250 +- Fix duplicate autoplugins packageBin mappings by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9255 +- fix: Make custom-scala-org scripted test hermetic by @BrianHotopp in https://github.com/sbt/sbt/pull/9260 +- fix: Parallelize dependency resolution when no progress bar is rendered by @BrianHotopp in https://github.com/sbt/sbt/pull/9270 +- fix: Report a missing input file clearly instead of an opaque SerializationException by @BrianHotopp in https://github.com/sbt/sbt/pull/9271 +- Opt bspBuildTargetOutputPathsItem out of caching by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9272 +- fix: Fixes backtick-quoted project handling by @xuwei-k in https://github.com/sbt/sbt/pull/9277 +- fix: Add warning about trainsient key by @eed3si9n in https://github.com/sbt/sbt/pull/9288 +- fix: Avoid updateFull by @eed3si9n in https://github.com/sbt/sbt/pull/9290 +- fix: Fixes publishing platform-specific artifacts (like Scala Native) by @arashi01 in https://github.com/sbt/sbt/pull/9293 +- fix: ByteStream chunked upload/download by @eed3si9n in https://github.com/sbt/sbt/pull/9298 +- fix: Fixes cross build caching by @eed3si9n in https://github.com/sbt/sbt/pull/9305 +- fix: Fixes chunked upload/download by @eed3si9n in https://github.com/sbt/sbt/pull/9318 +- fix: Fixes console / javaOptions by @eed3si9n in https://github.com/sbt/sbt/pull/9322 +- fix: Probe for a live server before refusing to start by @BrianHotopp in https://github.com/sbt/sbt/pull/9337 +- fix: Substitute [organisation] literally by defaulting Patterns.isMavenCompatible to false by @jozanek in https://github.com/sbt/sbt/pull/9344 +- fix: Constrain job id parser to signed longs by @merlinorg in https://github.com/sbt/sbt/pull/9353 +- Fix #9358: preserve --allow-empty and --sbt-create in sbtArguments by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9370 +- fix: Fixes dependency tree rendering on some libraries by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9371 +- Suppress multiple main classes warning when running tests by @merlinorg in https://github.com/sbt/sbt/pull/9372 +- fix: Fixes runner parsing build.properties with whitespaces by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9374 +- Fix publishDiagnostics propagation by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9376 +- Fix macro expand for HKT type arguments by @tanishiking in https://github.com/sbt/sbt/pull/9377 +- fix: Fixes global plugin loading by @eed3si9n in https://github.com/sbt/sbt/pull/9391 +- fix: Fixes sbt runner openbsd support by @eed3si9n in https://github.com/sbt/sbt/pull/9394 +- fix: Fixes WinGet release config by @eed3si9n in https://github.com/sbt/sbt/pull/9404 +- fix: Fixes auto import of givens by @xuwei-k in https://github.com/sbt/sbt/pull/9409 +- fix: Discard a cancelled task's output backlog on cancel by @BrianHotopp in https://github.com/sbt/sbt/pull/9411 +- fix: apply ByteStream deadline per-call, not on the memoized stub by @yhefamly in https://github.com/sbt/sbt/pull/9413 +- fix: Keep the output-flush timer alive across forceFlush by @BrianHotopp in https://github.com/sbt/sbt/pull/9414 +- Fix ivyless sbt plugin publish cross paths by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9416 +- Fix #9343 route pipelined dependencyPicklePath through internalDependencyPicklePath by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9425 +- fix sjson downgrade by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9426 +- fix: Honor -java-home in the Windows launchers by @jozanek in https://github.com/sbt/sbt/pull/9434 +- fix: Fixes shutdownall by @eed3si9n in https://github.com/sbt/sbt/pull/9435 +- scala-dyn-version working again by @eed3si9n in https://github.com/sbt/sbt/pull/9438 +- fix: Make forked run inherit sbt's working directory by @jozanek in https://github.com/sbt/sbt/pull/9442 +- fix: Propagate -java-home to a server the thin client starts by @BrianHotopp in https://github.com/sbt/sbt/pull/9448 +- fix dependency parsing for bsp by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9450 +- restore JVM option capability in the launcher config by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9452 +- fix: Sequence server start before publish in ivyless HTTP scripted tests by @BrianHotopp in https://github.com/sbt/sbt/pull/9463 +- fix: Don't cache environmental (position-less) compile failures by @BrianHotopp in https://github.com/sbt/sbt/pull/9464 +- fix: Fixes stale resources in test by @eed3si9n in https://github.com/sbt/sbt/pull/9469 +- fix: Re-extract a declared output directory on cache hit when it is missing by @BrianHotopp in https://github.com/sbt/sbt/pull/9473 +- clean task cleans sona-staging by @eed3si9n in https://github.com/sbt/sbt/pull/9479 +- fix: Fixes three test-classloader / jar-handle leaks in the sbt server JVM by @kevin-lee in https://github.com/sbt/sbt/pull/9485 +- fix: Fixes partial cache restoration by @stasimus in https://github.com/sbt/sbt/pull/9488 +- fix: Register every Def.declareOutput execution, not one per call site by @BrianHotopp in https://github.com/sbt/sbt/pull/9492 +- fix: Fixes common settings with extraProjects by @eed3si9n in https://github.com/sbt/sbt/pull/9495 +- fix: Keep file I/O out of cache-write serialization by @BrianHotopp in https://github.com/sbt/sbt/pull/9496 +- fix: Complete server teardown before logging so reboot works from sbtn by @BrianHotopp in https://github.com/sbt/sbt/pull/9497 +- fix: Skip checksum generation for asc file, take 2 by @eed3si9n in https://github.com/sbt/sbt/pull/9499 +- fix: Fixes gRPC channels recreated on reload by @eed3si9n in https://github.com/sbt/sbt/pull/9502 +- fix: Fixes scalaCompilerBridgeBin by @eed3si9n in https://github.com/sbt/sbt/pull/9506 +- fix: Fixes a/build.sbt leakage by @eed3si9n in https://github.com/sbt/sbt/pull/9519 +- fix: sbt.bat fails to start client/server mode on Windows by @ColOfAbRiX in https://github.com/sbt/sbt/pull/9520 +- fix: Fixes sbtn stdin race condition by @eed3si9n in https://github.com/sbt/sbt/pull/9521 +- fix: Don't freeze the server when a terminal-properties response is malformed or slow by @BrianHotopp in https://github.com/sbt/sbt/pull/9526 +- fix: Don't strand the server when a client dies with a terminal query unanswered by @BrianHotopp in https://github.com/sbt/sbt/pull/9527 +- fix: Fixes forked run baseDirectory, take 2 by @eed3si9n in https://github.com/sbt/sbt/pull/9531 +- fix: Fixes publishing with sbt-pgp by @eed3si9n in https://github.com/sbt/sbt/pull/9533 +- fix: Preserve '=' in remote cache header values by @KilianSwissborg in https://github.com/sbt/sbt/pull/9534 +- fix: Fixes AccessDeniedException issue on Windows by @eed3si9n in https://github.com/sbt/sbt/pull/9538 +- fix: Complete earlyOutputPing on cache-hit and failed compiles by @BrianHotopp in https://github.com/sbt/sbt/pull/9542 +- fix: Bound the client boot wait when the forked server never starts by @BrianHotopp in https://github.com/sbt/sbt/pull/9549 +- fix: Don't re-extract a dirzip whose digest already matches by @hoangmaihuy in https://github.com/sbt/sbt/pull/9555 +- fix: Preserve file timestamp in local diskcache by @eed3si9n in https://github.com/sbt/sbt/pull/9559 +- Ensure Java artifacts are exposed when usePipelining is set to true by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9574 + +## ⚡ Performance improvements + +- perf: lightweight UpdateReport cache persistence by @bitloi in https://github.com/sbt/sbt/pull/8815 +- perf: short-circuit --version from build.properties by @bitloi in https://github.com/sbt/sbt/pull/8822 +- perf: Use bytecodeHash for incremental test by @eed3si9n in https://github.com/sbt/sbt/pull/9146 +- optimize InterfaceUtil by @xuwei-k in https://github.com/sbt/sbt/pull/9223 +- Improve performance of `ClassStamper` by @mrdziuban in https://github.com/sbt/sbt/pull/9253 +- perf: Improve incremental test stamper by @eed3si9n in https://github.com/sbt/sbt/pull/9257 +- Migrate FarmHash usage to xxhash64 by @eed3si9n in https://github.com/sbt/sbt/pull/9267 +- Optimize incremental test further by @yhefamly in https://github.com/sbt/sbt/pull/9364 +- perf: Read the resolution's project cache once per report by @hoangmaihuy in https://github.com/sbt/sbt/pull/9522 +- perf: Intern `UpdateReport` values by @hoangmaihuy in https://github.com/sbt/sbt/pull/9523 +- perf: Stop content-hashing artifacts when writing update caches by @hoangmaihuy in https://github.com/sbt/sbt/pull/9524 +- perf: Keep the analysis cached across an action cache output sync by @hoangmaihuy in https://github.com/sbt/sbt/pull/9550 +- perf: Memoize the artifact content hash in LibraryManagementCodec by @takayahilton in https://github.com/sbt/sbt/pull/9563 + +## Behind the scenes + +- Update to Coursier 2.1.25-M24 by @eed3si9n in https://github.com/sbt/sbt/pull/8381 +- test: Add Git Bash test on Windows by @eed3si9n in https://github.com/sbt/sbt/pull/8779 +- blame ignore commits by @eed3si9n in https://github.com/sbt/sbt/pull/8814 +- refactor: Extract color-default logic as a pure function by @eureka928 in https://github.com/sbt/sbt/pull/8817 +- refactor: Remove Ivy from update path and decouple lm-coursier from lm-ivy by @eureka928 in https://github.com/sbt/sbt/pull/8832 +- ci: Update launcher-package rpmUrl by @xuwei-k in https://github.com/sbt/sbt/pull/8833 +- Move compiler bridge to Update by @eed3si9n in https://github.com/sbt/sbt/pull/8836 +- Avoid private[this] in test build files by @xuwei-k in https://github.com/sbt/sbt/pull/8839 +- Enable DagSpecification.scala by @xuwei-k in https://github.com/sbt/sbt/pull/8840 +- Comments in dot files by @eed3si9n in https://github.com/sbt/sbt/pull/8841 +- Remove unnecessary code by @xuwei-k in https://github.com/sbt/sbt/pull/8843 +- test: Use new wildcard syntax in test build files by @xuwei-k in https://github.com/sbt/sbt/pull/8844 +- sbtn 1.12.5 by @eed3si9n in https://github.com/sbt/sbt/pull/8858 +- Use given instead of implicit val by @xuwei-k in https://github.com/sbt/sbt/pull/8870 +- refactor: Extract lm-ivy to separate sbt-ivy plugin module by @eureka928 in https://github.com/sbt/sbt/pull/8873 +- Tweak the prompt by @eed3si9n in https://github.com/sbt/sbt/pull/8876 +- Improve -help/--help and fix launcher test harness by @Eruis2579 in https://github.com/sbt/sbt/pull/8879 +- Update TemplateCommandUtil.scala by @xuwei-k in https://github.com/sbt/sbt/pull/8884 +- Update semanticdbVersion in SemanticdbPlugin.scala by @xuwei-k in https://github.com/sbt/sbt/pull/8885 +- Delete reset.sh by @xuwei-k in https://github.com/sbt/sbt/pull/8886 +- ci: Update java file formatter plugin by @xuwei-k in https://github.com/sbt/sbt/pull/8892 +- refactor: Delete silent annotation by @xuwei-k in https://github.com/sbt/sbt/pull/8893 +- refactor: Use InputStream.transferTo by @xuwei-k in https://github.com/sbt/sbt/pull/8896 +- Delete checkPluginCross task. Add sourceGenerators for PluginCross by @xuwei-k in https://github.com/sbt/sbt/pull/8897 +- Format launcher-package/build.sbt by @xuwei-k in https://github.com/sbt/sbt/pull/8898 +- test: Add nested-testquick scripted test by @atoz96 in https://github.com/sbt/sbt/pull/8901 +- Simplify -Werror application by @eed3si9n in https://github.com/sbt/sbt/pull/8906 +- Add VF keys by @eed3si9n in https://github.com/sbt/sbt/pull/8915 +- ci: Add scalafix DisableSyntax.noReturns by @xuwei-k in https://github.com/sbt/sbt/pull/8922 +- deps: Updatge launcher to 1.6.1 by @corevibe555 in https://github.com/sbt/sbt/pull/8923 +- refactor: Reduce return statements by @xuwei-k in https://github.com/sbt/sbt/pull/8925 +- refactor: Remove unnecessary unchecked annotation by @xuwei-k in https://github.com/sbt/sbt/pull/8926 +- Update Parser.~.unapply by @xuwei-k in https://github.com/sbt/sbt/pull/8927 +- refactor: Update EscHelpers.scala by @xuwei-k in https://github.com/sbt/sbt/pull/8928 +- refactor: Use new Array instead of Array.fill by @xuwei-k in https://github.com/sbt/sbt/pull/8929 +- refactor: Avoid deprecated URL constructor by @xuwei-k in https://github.com/sbt/sbt/pull/8930 +- Delete sbt-test/lm-coursier/neo-sbt-scalafmt by @xuwei-k in https://github.com/sbt/sbt/pull/8931 +- test: Enable sbt-test/plugins/unidoc scripted test by @xuwei-k in https://github.com/sbt/sbt/pull/8932 +- test: Enable sbt-test/plugins/dotty-compiler-plugin by @xuwei-k in https://github.com/sbt/sbt/pull/8933 +- test: Enable sbt-test/project/src-plugins by @xuwei-k in https://github.com/sbt/sbt/pull/8934 +- test: Enable sbt-test/project/giter8-plugin by @xuwei-k in https://github.com/sbt/sbt/pull/8935 +- test: Enable sbt-test/project/setting-order by @xuwei-k in https://github.com/sbt/sbt/pull/8936 +- test: Enable sbt-test/project/skip by @xuwei-k in https://github.com/sbt/sbt/pull/8937 +- refactor: Remove `return` statement in `Escapes.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/8938 +- refactor: Remove `return` statement in `CommandExchange.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/8939 +- refactor: Remove `return` statements in `UpdateReportPersistenceBenchmark` by @xuwei-k in https://github.com/sbt/sbt/pull/8940 +- test: Use `IO.withTemporaryDirectory` in UpdateReportPersistenceSpec by @xuwei-k in https://github.com/sbt/sbt/pull/8941 +- [sbt] test: Enable sbt-test/run/fork by @xuwei-k in https://github.com/sbt/sbt/pull/8943 +- test: Enable sbt-test/plugins/twirl by @xuwei-k in https://github.com/sbt/sbt/pull/8944 +- test: Enable sbt-test/project/auto-plugins by @xuwei-k in https://github.com/sbt/sbt/pull/8947 +- test: Delete sbt-test/project/continuations by @xuwei-k in https://github.com/sbt/sbt/pull/8948 +- Add scalafmt newlines.topLevelStatementBlankLines setting by @xuwei-k in https://github.com/sbt/sbt/pull/8949 +- Replace defunct link by @Philippus in https://github.com/sbt/sbt/pull/8950 +- build(deps): bump nick-fields/retry from 3.0.2 to 4.0.0 by @dependabot in https://github.com/sbt/sbt/pull/8965 +- Update ErrorMessageAuthenticator. Remove unnecessary reflection by @xuwei-k in https://github.com/sbt/sbt/pull/8976 +- test: Update ZincComponentCompilerSpec by @xuwei-k in https://github.com/sbt/sbt/pull/8979 +- Update to Zinc 2.0.0-M15 by @eed3si9n in https://github.com/sbt/sbt/pull/8980 +- Update mima settings by @xuwei-k in https://github.com/sbt/sbt/pull/8991 +- Scala 3.8.3 by @xuwei-k in https://github.com/sbt/sbt/pull/8997 +- refactor: Fix warning in Settings.scala by @xuwei-k in https://github.com/sbt/sbt/pull/8999 +- Add parentheses by @xuwei-k in https://github.com/sbt/sbt/pull/9000 +- ci: Organize scalatest dependency by @xuwei-k in https://github.com/sbt/sbt/pull/9015 +- ci: Update sbt-native-image plugin by @xuwei-k in https://github.com/sbt/sbt/pull/9016 +- Update sbt version in launcher-package test by @xuwei-k in https://github.com/sbt/sbt/pull/9021 +- Remove unnecessary reflection in IvyXml by @xuwei-k in https://github.com/sbt/sbt/pull/9024 +- refactor: Remove unnecessary language.experimental.macros import by @xuwei-k in https://github.com/sbt/sbt/pull/9025 +- Deprecate unused code in TaskMacro by @xuwei-k in https://github.com/sbt/sbt/pull/9026 +- Remove Path type from caching by @eed3si9n in https://github.com/sbt/sbt/pull/9032 +- Enable project-matrix/native test by @xuwei-k in https://github.com/sbt/sbt/pull/9038 +- Update mima setting by @xuwei-k in https://github.com/sbt/sbt/pull/9039 +- ci: Remove unnecessary code in build file by @xuwei-k in https://github.com/sbt/sbt/pull/9045 +- Format pom.xml by @xuwei-k in https://github.com/sbt/sbt/pull/9059 +- test: Fix warnings in scripted tests by @xuwei-k in https://github.com/sbt/sbt/pull/9062 +- ci: Add -source-links option by @xuwei-k in https://github.com/sbt/sbt/pull/9063 +- Remove `whitesource` from LintUnused by @xuwei-k in https://github.com/sbt/sbt/pull/9064 +- refactor: Remove return from sbtw/Main by @xuwei-k in https://github.com/sbt/sbt/pull/9066 +- ci: Delete unused code in project/Dependencies.scala by @xuwei-k in https://github.com/sbt/sbt/pull/9070 +- ci: Remove -Ymacro-expand option by @xuwei-k in https://github.com/sbt/sbt/pull/9072 +- Update .gitattributes for contraband files by @xuwei-k in https://github.com/sbt/sbt/pull/9076 +- Update mimaPreviousArtifacts by @xuwei-k in https://github.com/sbt/sbt/pull/9083 +- refactor: Use `IO.withTemporaryDirectory` instead of `File.createTempFile` by @xuwei-k in https://github.com/sbt/sbt/pull/9084 +- refactor: Use Files.writeString instead of Files.write by @xuwei-k in https://github.com/sbt/sbt/pull/9093 +- ci: Update sbt-java-formatter by @mkurz in https://github.com/sbt/sbt/pull/9098 +- refactor: Use exists instead of find and isDefined by @xuwei-k in https://github.com/sbt/sbt/pull/9111 +- Remove duplicate hedgehog TestFramework setting by @xuwei-k in https://github.com/sbt/sbt/pull/9112 +- desp: Gigahorse 0.9.4 by @eed3si9n in https://github.com/sbt/sbt/pull/9125 +- refactor: Replace string Array with ju.List by @eed3si9n in https://github.com/sbt/sbt/pull/9138 +- Bump sbtn to 2.0.0-RC13 by @eed3si9n in https://github.com/sbt/sbt/pull/9140 +- ci: Update sbt and sbt-scalafmt plugin by @xuwei-k in https://github.com/sbt/sbt/pull/9148 +- ci: Avoid postfix in build files by @xuwei-k in https://github.com/sbt/sbt/pull/9150 +- Remove unnecessary code in build.sbt by @xuwei-k in https://github.com/sbt/sbt/pull/9154 +- ci: Filter NOTICE file by @xuwei-k in https://github.com/sbt/sbt/pull/9155 +- Remove duplicate packageSrc/mappings by @xuwei-k in https://github.com/sbt/sbt/pull/9156 +- ci: Avoid infix syntax in build files by @xuwei-k in https://github.com/sbt/sbt/pull/9157 +- test: Add more ClassLoaderLayeringStrategy.Raw test by @xuwei-k in https://github.com/sbt/sbt/pull/9163 +- test: Add javaagent test by @xuwei-k in https://github.com/sbt/sbt/pull/9164 +- ci: Avoid deprecated replaceAllLiterally by @xuwei-k in https://github.com/sbt/sbt/pull/9173 +- Remove unused code in `project/Utils.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/9174 +- Avoid infix syntax in build files by @xuwei-k in https://github.com/sbt/sbt/pull/9175 +- Remove "-source:3.7" option by @xuwei-k in https://github.com/sbt/sbt/pull/9176 +- sjson-new 0.14.0 by @eed3si9n in https://github.com/sbt/sbt/pull/9177 +- Improve --help by @eed3si9n in https://github.com/sbt/sbt/pull/9180 +- ci: Fix warnings in launcherPackage sub project by @xuwei-k in https://github.com/sbt/sbt/pull/9188 +- test: Enable project/source-plugins scripted test by @xuwei-k in https://github.com/sbt/sbt/pull/9191 +- test: Enable actions/eval-is-safe-and-sound scripted test by @xuwei-k in https://github.com/sbt/sbt/pull/9192 +- test: Add move-file test by @eed3si9n in https://github.com/sbt/sbt/pull/9197 +- test: Enable run/fork-loader scripted test by @xuwei-k in https://github.com/sbt/sbt/pull/9199 +- refactor: Use scala.jdk.OptionConverters instead of JavaInterfaceUtil by @xuwei-k in https://github.com/sbt/sbt/pull/9200 +- test: Port tests to use lm-coursier by @eed3si9n in https://github.com/sbt/sbt/pull/9205 +- Add definedTestNames test by @xuwei-k in https://github.com/sbt/sbt/pull/9210 +- refactor: Use `Files.readString` instead of `readAllBytes` by @xuwei-k in https://github.com/sbt/sbt/pull/9211 +- refactor: Use InputStream.transferTo by @xuwei-k in https://github.com/sbt/sbt/pull/9212 +- refactor: Use java.util.Arrays.copyOf in JsonRpcReader by @xuwei-k in https://github.com/sbt/sbt/pull/9213 +- Zinc 2.0.0-M18 by @eed3si9n in https://github.com/sbt/sbt/pull/9219 +- refactor: Use scala.util.Using.resource instead of try-finally by @xuwei-k in https://github.com/sbt/sbt/pull/9230 +- Update to Coursier 2.1.25-M25 by @eed3si9n in https://github.com/sbt/sbt/pull/9232 +- Update sbtn to 2.0.0-RC14 for timeout fix by @eed3si9n in https://github.com/sbt/sbt/pull/9240 +- Update mimaSettings by @xuwei-k in https://github.com/sbt/sbt/pull/9242 +- ci: Build sbt/sbt using sbt 2 by @xuwei-k in https://github.com/sbt/sbt/pull/9244 +- refactor: format launcherPackageIntegrationTest by @xuwei-k in https://github.com/sbt/sbt/pull/9245 +- Improve deprecation UX for watchSources by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9247 +- test: Add test for issue 2188 by @xuwei-k in https://github.com/sbt/sbt/pull/9264 +- Reimplement FarmHash by @eed3si9n in https://github.com/sbt/sbt/pull/9278 +- ci: Scalafmt 3.11.1 by @eed3si9n in https://github.com/sbt/sbt/pull/9279 +- sjson-new 0.15.0 + Contraband 0.9.0 by @eed3si9n in https://github.com/sbt/sbt/pull/9282 +- Update mima setting by @xuwei-k in https://github.com/sbt/sbt/pull/9294 +- ci: Remove duplicate scalaVersion setting by @xuwei-k in https://github.com/sbt/sbt/pull/9297 +- Update to Scala 3.8.4 by @eed3si9n in https://github.com/sbt/sbt/pull/9302 +- Update mimaPreviousArtifacts by @xuwei-k in https://github.com/sbt/sbt/pull/9308 +- Avoid dollars in name by @xuwei-k in https://github.com/sbt/sbt/pull/9313 +- Remove type ascription in Continuous by @xuwei-k in https://github.com/sbt/sbt/pull/9314 +- sbtn 2.0.0-f0d2fae4 by @eed3si9n in https://github.com/sbt/sbt/pull/9333 +- ci: Update mimaPreviousArtifacts by @xuwei-k in https://github.com/sbt/sbt/pull/9341 +- ci: Update version and ivy tests by @xuwei-k in https://github.com/sbt/sbt/pull/9342 +- test: Update sbt.version in launcher-package/citest2 by @xuwei-k in https://github.com/sbt/sbt/pull/9357 +- ci: sbt-salad-days by @eed3si9n in https://github.com/sbt/sbt/pull/9360 +- ipcsocket 1.7.0 by @eed3si9n in https://github.com/sbt/sbt/pull/9361 +- sbtn 2.0.0-2932685e by @eed3si9n in https://github.com/sbt/sbt/pull/9363 +- ci: bump actions/checkout from 6 to 7 by @dependabot in https://github.com/sbt/sbt/pull/9366 +- test: Refactor global plugin test by @eed3si9n in https://github.com/sbt/sbt/pull/9380 +- ci: Modify bug report template for custom labels by @eed3si9n in https://github.com/sbt/sbt/pull/9384 +- test: Enable scala-js tests by @xuwei-k in https://github.com/sbt/sbt/pull/9387 +- Update versions in TemplateCommandUtil by @xuwei-k in https://github.com/sbt/sbt/pull/9388 +- Add devcontainer by @eed3si9n in https://github.com/sbt/sbt/pull/9392 +- Update Coursier to version 2.1.25-M26 by @eed3si9n in https://github.com/sbt/sbt/pull/9393 +- Add issue reproduction skill by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9400 +- refactor: Refactor LibraryManagement.scala by @xuwei-k in https://github.com/sbt/sbt/pull/9405 +- Mark log-related keys transient by @eed3si9n in https://github.com/sbt/sbt/pull/9407 +- ivy 2.3.0-sbt-939a7ea82f140cdb1f51dc404bb43e00a8c43b83 by @eed3si9n in https://github.com/sbt/sbt/pull/9423 +- Use JDK's Unix domain socket for bootserver by @eed3si9n in https://github.com/sbt/sbt/pull/9427 +- Tweak server startup message by @eed3si9n in https://github.com/sbt/sbt/pull/9429 +- ipcsocket 1.8.0 by @eed3si9n in https://github.com/sbt/sbt/pull/9433 +- sbtn 2.0.0-b4d628dd by @eed3si9n in https://github.com/sbt/sbt/pull/9443 +- Add native client startup diagnostics regression test by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9447 +- Avoid deprecated url method in test by @xuwei-k in https://github.com/sbt/sbt/pull/9453 +- Ivy 2.3.0-sbt-f686954b0021a5c3245766ced0cdaeca8ba2fd7a by @eed3si9n in https://github.com/sbt/sbt/pull/9457 +- sjson-new 0.15.1 by @eed3si9n in https://github.com/sbt/sbt/pull/9458 +- Bump version number by @eed3si9n in https://github.com/sbt/sbt/pull/9470 +- build(deps): bump actions/setup-python from 6 to 7 by @dependabot in https://github.com/sbt/sbt/pull/9476 +- ci: Remove unused code in launcher-package/build.sbt by @xuwei-k in https://github.com/sbt/sbt/pull/9480 +- ci: Use --server by @eed3si9n in https://github.com/sbt/sbt/pull/9483 +- Zinc 2.0.2 by @eed3si9n in https://github.com/sbt/sbt/pull/9489 +- ci: Update project/plugins.sbt by @xuwei-k in https://github.com/sbt/sbt/pull/9491 +- ci: Fix warnings in build.sbt by @xuwei-k in https://github.com/sbt/sbt/pull/9494 +- Zinc 2.0.3 by @eed3si9n in https://github.com/sbt/sbt/pull/9498 +- sbtn 2.0.0-a0c4773a by @eed3si9n in https://github.com/sbt/sbt/pull/9503 +- ci: Fix publishLocalBin by @eed3si9n in https://github.com/sbt/sbt/pull/9505 +- Zinc 2.0.4 by @eed3si9n in https://github.com/sbt/sbt/pull/9508 +- ci: Update mima setting by @xuwei-k in https://github.com/sbt/sbt/pull/9511 +- Use sbt 2.0.4 by @eed3si9n in https://github.com/sbt/sbt/pull/9512 +- build(deps): bump actions/cache from 4 to 6 by @dependabot in https://github.com/sbt/sbt/pull/9513 +- refactor: Remove unnecessary match by @xuwei-k in https://github.com/sbt/sbt/pull/9539 +- test: Add test for Test/baseDirectory by @eed3si9n in https://github.com/sbt/sbt/pull/9544 +- sbtn 2.0.0-731e6666 by @eed3si9n in https://github.com/sbt/sbt/pull/9545 +- test: Add regression test for resource reading by @eed3si9n in https://github.com/sbt/sbt/pull/9552 +- ci: Remove cla-checker v1 by @eed3si9n in https://github.com/sbt/sbt/pull/9570 +- Update Eval.compileAndLoad by @xuwei-k in https://github.com/sbt/sbt/pull/9583 +- refactor: Remove unused code by @xuwei-k in https://github.com/sbt/sbt/pull/9589 +- doc: Fix HashAlgo scaladoc by @xuwei-k in https://github.com/sbt/sbt/pull/9590 +- refactor: Add tailrec annotation by @xuwei-k in https://github.com/sbt/sbt/pull/9591 +- refactor: Remove redundant String.toString by @xuwei-k in https://github.com/sbt/sbt/pull/9592 + +**Full Changelog**: https://github.com/sbt/sbt/compare/f97633075960aaacd9e571461a688a000ed5ba0d...v2.1.0 diff --git a/notes/2.1.0/2.1.0-draft.md b/notes/2.1.0/2.1.0-draft.md new file mode 100644 index 000000000..fd4ec72d7 --- /dev/null +++ b/notes/2.1.0/2.1.0-draft.md @@ -0,0 +1,231 @@ +## Ivyless publishing + +sbt 2.1.0 switches to Ivyless publishing. + +This was contributed by @bitloi, @eureka928, @BrianHotopp, and @eed3si9n in https://github.com/sbt/sbt/pull/8686, https://github.com/sbt/sbt/pull/8866, https://github.com/sbt/sbt/pull/8988, https://github.com/sbt/sbt/pull/9463, and https://github.com/sbt/sbt/pull/9533 etc. + +## Source dependency update + +sbt 2.1.0 provides better control to handle source dependencies. + +This was contributed by @seroperson in https://github.com/sbt/sbt/pull/8880. + +## 🚀 Other updates + +- Adds project id to Zinc debug log by @Achieve3318 in https://github.com/sbt/sbt/pull/8750 +- feat: Support `doc / skip := true` by @eureka928 in https://github.com/sbt/sbt/pull/8824 +- feat: case-insensitive tab completion by @bitloi in https://github.com/sbt/sbt/pull/8827 +- dependencyTree: add `--append` for file output in multi-module builds by @oolokioo7 in https://github.com/sbt/sbt/pull/8878 +- feat: Eviction error for downgrade of Scala 3.x by @bitloi in https://github.com/sbt/sbt/pull/8912 +- feat: Add English aliases `cross` and `switch` for `+` / `++` by @jonathanchang31 in https://github.com/sbt/sbt/pull/9051 +- feat: BSP `buildTarget/dependencyModules` by @jsdevninja in https://github.com/sbt/sbt/pull/9085 +- feat: Forward test events to listeners as they are emitted by @claytonlin1110 in https://github.com/sbt/sbt/pull/9087 +- feat: Print cross-project test failure recap at end of aggregated run by @BrianHotopp in https://github.com/sbt/sbt/pull/9214 +- Specific error message for defining types in `build.sbt` by @xuwei-k in https://github.com/sbt/sbt/pull/9579 +- Use JDK's Unix domain socket for bootserver by @eed3si9n in https://github.com/sbt/sbt/pull/9427 + +## 🐛 Bug fixes + +- fix: Excluding artifacts without Scala version suffix by @seroperson in https://github.com/sbt/sbt/pull/8756 +- fix: Fix duplicate compiler bridge JAR in `ZincComponentManager` by @since-2017-hub in https://github.com/sbt/sbt/pull/8800 +- fix: Backtick-quote project IDs in classloader error messages by @eureka928 in https://github.com/sbt/sbt/pull/8830 +- fix: Make `ScopeFilter.all` ordering deterministic and preserve project filter order by @bitloi in https://github.com/sbt/sbt/pull/8861 +- fix: Respect global log level in continuous build watcher by @eureka928 in https://github.com/sbt/sbt/pull/8864 +- fix: Populate `explicitArtifacts` from classifier in `UpdateReport` by @eureka928 in https://github.com/sbt/sbt/pull/8874 +- fix: handle `-sbt-dir` with spaces from `.sbtopts` by @Eruis2579 in https://github.com/sbt/sbt/pull/8875 +- fix: `sbt-with-loglevel-error` by @oolokioo7 in https://github.com/sbt/sbt/pull/8883 +- fix: Handle `scala/toolkit.local` when passed as argument to sbt new by @mohamed0803 in https://github.com/sbt/sbt/pull/8887 +- fix: Remove `projectDescriptors` key that leaks Ivy types by @eureka928 in https://github.com/sbt/sbt/pull/8894 +- Fix `TaskConvert.appExpr` by @xuwei-k in https://github.com/sbt/sbt/pull/8899 +- fix: Fixes script mode using Scala 3.x by @bitloi in https://github.com/sbt/sbt/pull/8900 +- fix: Preserve user-specified scope axes in command instead of silently discarding them by @bittoby in https://github.com/sbt/sbt/pull/8916 +- fix: Fixes scripted test loading build definition twice on first test in batch by @bittoby in https://github.com/sbt/sbt/pull/8946 +- fix: Fixes misleading error message when `.evaluated` is used outside macro context by @BrianHotopp in https://github.com/sbt/sbt/pull/8951 +- fix: Fixes `libraryDependencySchemes` on cross-platform dependencies by @ckstck in https://github.com/sbt/sbt/pull/8957 +- Fix Resolvers test formatting by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/8968 +- fix: Emit `` in POM for non-JAR explicit artifacts by @BrianHotopp in https://github.com/sbt/sbt/pull/8975 +- fix: Fix `ProjectMatrix` base directory resolution for source dependencies by @bittoby in https://github.com/sbt/sbt/pull/8983 +- fix: Stabilize progress indicator sort by @bittoby in https://github.com/sbt/sbt/pull/8984 +- fix: Avoid following symlinks during scripted test cleanup by @eureka928 in https://github.com/sbt/sbt/pull/8985 +- fix: Update `++` help text to reflect `SemanticSelector` matching by @BrianHotopp in https://github.com/sbt/sbt/pull/8995 +- fix: Write `maven-metadata-local.xml` during `publishM2` for `SNAPSHOT`s by @BrianHotopp in https://github.com/sbt/sbt/pull/8996 +- Fix old shell syntax warning by @xuwei-k in https://github.com/sbt/sbt/pull/8998 +- fix: Resolve relative paths from `-sbt-dir` / `sbt.global.base` by @BrianHotopp in https://github.com/sbt/sbt/pull/9001 +- fix: Return JSON-RPC error for unknown server methods by @BrianHotopp in https://github.com/sbt/sbt/pull/9002 +- fix: Add `--fail` to `curl` in launcher to prevent corrupt JARs by @BrianHotopp in https://github.com/sbt/sbt/pull/9003 +- fix: `derivedProjects` not invoked when no explicit root project is defined by @bitcompass in https://github.com/sbt/sbt/pull/9012 +- fix: Widen `IOException` catch in `organicTask` to cover result serialization by @bittoby in https://github.com/sbt/sbt/pull/9050 +- fix: Clear compiler bridge Zinc cache on `reboot dev` by @bitloi in https://github.com/sbt/sbt/pull/9057 +- fix: Delete `bootDirectory` in `cleanFull` by @xuwei-k in https://github.com/sbt/sbt/pull/9060 +- override `sbt.Tests.Group` `hashCode` by @xuwei-k in https://github.com/sbt/sbt/pull/9065 +- fix: Add description and url to `PomGenerator` output by @eureka928 in https://github.com/sbt/sbt/pull/9069 +- fix: Delete `src/main/resources/log4j2.xml` by @xuwei-k in https://github.com/sbt/sbt/pull/9071 +- fix: Fix `consoleProject` for Scala 3 by @eureka928 in https://github.com/sbt/sbt/pull/9073 +- fix: Cache `AutoPlugin` `projectSettings`/`projectConfigurations` by @volcano303 in https://github.com/sbt/sbt/pull/9077 +- fix: Fixes Ctrl-c handling by @eed3si9n in https://github.com/sbt/sbt/pull/9130 +- fix: Avoid `dependencyTree` browse crashes on Linux by @jimcody1995 in https://github.com/sbt/sbt/pull/9147 +- fix: Ensure resources are copied atomically by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9193 +- fix: Fixes cache restoration of incremental compilation state (Analysis) by @eed3si9n in https://github.com/sbt/sbt/pull/9207 +- fix: Collapse duplicate subtrees in dependency tree rendering by @BrianHotopp in https://github.com/sbt/sbt/pull/9226 +- fix: Remove explicit `equals` and `hashCode` in `LabeledFunctions` by @xuwei-k in https://github.com/sbt/sbt/pull/9228 +- fix: Catch timeout on sbtn exit by @eed3si9n in https://github.com/sbt/sbt/pull/9239 +- fix: Probe for a live server before refusing to start by @BrianHotopp in https://github.com/sbt/sbt/pull/9337 +- fix: Substitute `[organisation]` literally by defaulting `Patterns.isMavenCompatible` to `false` by @jozanek in https://github.com/sbt/sbt/pull/9344 +- fix: Constrain job id parser to signed longs by @merlinorg in https://github.com/sbt/sbt/pull/9353 +- fix: Suppress multiple main classes warning when running tests by @merlinorg in https://github.com/sbt/sbt/pull/9372 +- fix: Fixes auto import of givens by @xuwei-k in https://github.com/sbt/sbt/pull/9409 +- fix: Honor `-java-home` in the Windows runners by @jozanek in https://github.com/sbt/sbt/pull/9434 +- fix: Fixes dependency parsing for BSP by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9450 +- fix: Fixes gRPC channels recreated on reload by @eed3si9n in https://github.com/sbt/sbt/pull/9502 +- fix: Fixes sbtn stdin race condition by @eed3si9n in https://github.com/sbt/sbt/pull/9521 +- fix: Don't freeze the server when a terminal-properties response is malformed or slow by @BrianHotopp in https://github.com/sbt/sbt/pull/9526 +- fix: Don't strand the server when a client dies with a terminal query unanswered by @BrianHotopp in https://github.com/sbt/sbt/pull/9527 +- fix: Bound the client boot wait when the forked server never starts by @BrianHotopp in https://github.com/sbt/sbt/pull/9549 +- fix: Don't re-extract a dirzip whose digest already matches by @hoangmaihuy in https://github.com/sbt/sbt/pull/9555 +- Ensure Java artifacts are exposed when `usePipelining` is set to `true` by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9574 + +## ⚡ Performance improvements + +- perf: lightweight `UpdateReport` cache persistence by @bitloi in https://github.com/sbt/sbt/pull/8815 +- perf: Resolve dependencies in parallel under the super shell by @BrianHotopp in https://github.com/sbt/sbt/pull/9295 +- Optimize `InterfaceUtil` by @xuwei-k in https://github.com/sbt/sbt/pull/9223 +- perf: Intern `UpdateReport` values by @hoangmaihuy in https://github.com/sbt/sbt/pull/9523 +- perf: Keep the Analysis cached across an action cache output sync by @hoangmaihuy in https://github.com/sbt/sbt/pull/9550 + +## Behind the scenes + +- deps: sjson-new 0.15.0 + Contraband 0.9.0 by @eed3si9n in https://github.com/sbt/sbt/pull/9282 +- deps: Gigahorse 0.9.4 by @eed3si9n in https://github.com/sbt/sbt/pull/9125 +- deps: Zinc 2.0.3 by @eed3si9n in https://github.com/sbt/sbt/pull/9498 +- test: Enable scripted tests by @xuwei-k in https://github.com/sbt/sbt/pull/8932, https://github.com/sbt/sbt/pull/8933, https://github.com/sbt/sbt/pull/8934, https://github.com/sbt/sbt/pull/8935, https://github.com/sbt/sbt/pull/8936, https://github.com/sbt/sbt/pull/8937, https://github.com/sbt/sbt/pull/8943, https://github.com/sbt/sbt/pull/8944, https://github.com/sbt/sbt/pull/8947 +- test: Add Git Bash test on Windows by @eed3si9n in https://github.com/sbt/sbt/pull/8779 +- ci: Ignore formatting commits by @eed3si9n in https://github.com/sbt/sbt/pull/8814 +- refactor: Extract color-default logic as a pure function by @eureka928 in https://github.com/sbt/sbt/pull/8817 +- refactor: Remove Ivy from update path and decouple lm-coursier from lm-ivy by @eureka928 in https://github.com/sbt/sbt/pull/8832 +- ci: Update launcher-package rpmUrl by @xuwei-k in https://github.com/sbt/sbt/pull/8833 +- docs: Fix typo in contributor guide by @it-education-md in https://github.com/sbt/sbt/pull/8834, https://github.com/sbt/sbt/pull/8835, https://github.com/sbt/sbt/pull/8837 +- Avoid `private[this]` in test build files by @xuwei-k in https://github.com/sbt/sbt/pull/8839 +- test: Enable `DagSpecification.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/8840 +- Remove unnecessary code by @xuwei-k in https://github.com/sbt/sbt/pull/8843 +- test: Use new wildcard syntax in test build files by @xuwei-k in https://github.com/sbt/sbt/pull/8844 +- Use `given` instead of `implicit val` by @xuwei-k in https://github.com/sbt/sbt/pull/8870 +- refactor: Extract lm-ivy to separate sbt-ivy plugin module by @eureka928 in https://github.com/sbt/sbt/pull/8873 +- Improve `-help`/`--help` and fix launcher test harness by @Eruis2579 in https://github.com/sbt/sbt/pull/8879 +- Update `TemplateCommandUtil.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/8884 +- ci: Update Java file formatter plugin by @xuwei-k in https://github.com/sbt/sbt/pull/8892 +- refactor: Delete `@silent` annotation by @xuwei-k in https://github.com/sbt/sbt/pull/8893 +- refactor: Use `InputStream.transferTo` by @xuwei-k in https://github.com/sbt/sbt/pull/8896, https://github.com/sbt/sbt/pull/9212 +- Delete `checkPluginCross` task. Add `sourceGenerators` for PluginCross by @xuwei-k in https://github.com/sbt/sbt/pull/8897 +- Format `launcher-package/build.sbt` by @xuwei-k in https://github.com/sbt/sbt/pull/8898 +- test: Add `nested-testquick` scripted test by @atoz96 in https://github.com/sbt/sbt/pull/8901 +- test: server-test and related refactoring by @seroperson in https://github.com/sbt/sbt/pull/8904 +- Simplify `-Werror` application by @eed3si9n in https://github.com/sbt/sbt/pull/8906 +- Add VF keys by @eed3si9n in https://github.com/sbt/sbt/pull/8915 +- ci: Add Scalafix `DisableSyntax.noReturns` by @xuwei-k in https://github.com/sbt/sbt/pull/8922 +- deps: launcher 1.6.1 by @corevibe555 in https://github.com/sbt/sbt/pull/8923 +- refactor: Reduce `return` statements by @xuwei-k in https://github.com/sbt/sbt/pull/8925 +- refactor: Remove unnecessary unchecked annotation by @xuwei-k in https://github.com/sbt/sbt/pull/8926 +- Update `Parser.~.unapply` by @xuwei-k in https://github.com/sbt/sbt/pull/8927 +- refactor: Update `EscHelpers.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/8928 +- refactor: Use `new Array` instead of `Array.fill` by @xuwei-k in https://github.com/sbt/sbt/pull/8929 +- refactor: Avoid deprecated `URL` constructor by @xuwei-k in https://github.com/sbt/sbt/pull/8930 +- test: Delete `sbt-test/lm-coursier/neo-sbt-scalafmt` by @xuwei-k in https://github.com/sbt/sbt/pull/8931 +- refactor: Remove `return` statement in `Escapes.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/8938 +- refactor: Remove `return` statement in `CommandExchange.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/8939 +- refactor: Remove `return` statements in `UpdateReportPersistenceBenchmark` by @xuwei-k in https://github.com/sbt/sbt/pull/8940 +- test: Use `IO.withTemporaryDirectory` in `UpdateReportPersistenceSpec` by @xuwei-k in https://github.com/sbt/sbt/pull/8941 +- test: Delete `sbt-test/project/continuations` by @xuwei-k in https://github.com/sbt/sbt/pull/8948 +- Add scalafmt `newlines.topLevelStatementBlankLines` setting by @xuwei-k in https://github.com/sbt/sbt/pull/8949 +- Replace defunct link by @Philippus in https://github.com/sbt/sbt/pull/8950 +- ci: Bump nick-fields/retry from 3.0.2 to 4.0.0 by @dependabot in https://github.com/sbt/sbt/pull/8965 +- refactor: Update `ErrorMessageAuthenticator`. Remove unnecessary reflection by @xuwei-k in https://github.com/sbt/sbt/pull/8976 +- test: Update `ZincComponentCompilerSpec` by @xuwei-k in https://github.com/sbt/sbt/pull/8979 +- refactor: Fix warning in `Settings.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/8999 +- Add parentheses by @xuwei-k in https://github.com/sbt/sbt/pull/9000 +- ci: Organize ScalaTest dependency by @xuwei-k in https://github.com/sbt/sbt/pull/9015 +- ci: Update sbt-native-image plugin by @xuwei-k in https://github.com/sbt/sbt/pull/9016 +- Update sbt version in launcher-package test by @xuwei-k in https://github.com/sbt/sbt/pull/9021 +- refactor: Remove unnecessary reflection in `IvyXml` by @xuwei-k in https://github.com/sbt/sbt/pull/9024 +- refactor: Remove unnecessary `language.experimental.macros` import by @xuwei-k in https://github.com/sbt/sbt/pull/9025 +- refactor: Deprecate unused code in `TaskMacro` by @xuwei-k in https://github.com/sbt/sbt/pull/9026 +- test: Enable `project-matrix/native` test by @xuwei-k in https://github.com/sbt/sbt/pull/9038 +- ci: Remove unnecessary code in build file by @xuwei-k in https://github.com/sbt/sbt/pull/9045 +- refactor: Format `pom.xml` by @xuwei-k in https://github.com/sbt/sbt/pull/9059 +- ci: Fix Scaladoc issue in `mainProj` and `sbtIvyProj` by @xuwei-k in https://github.com/sbt/sbt/pull/9061 +- test: Fix warnings in scripted tests by @xuwei-k in https://github.com/sbt/sbt/pull/9062 +- ci: Add `-source-links` option by @xuwei-k in https://github.com/sbt/sbt/pull/9063 +- refactor: Remove `whitesource` from `LintUnused` by @xuwei-k in https://github.com/sbt/sbt/pull/9064 +- refactor: Remove return from `sbtw/Main` by @xuwei-k in https://github.com/sbt/sbt/pull/9066 +- ci: Delete unused code in `project/Dependencies.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/9070 +- ci: Remove `-Ymacro-expand` option by @xuwei-k in https://github.com/sbt/sbt/pull/9072 +- Update `.gitattributes` for Contraband files by @xuwei-k in https://github.com/sbt/sbt/pull/9076 +- refactor: Use `IO.withTemporaryDirectory` instead of `File.createTempFile` by @xuwei-k in https://github.com/sbt/sbt/pull/9084 +- refactor: Use `Files.writeString` instead of `Files.write` by @xuwei-k in https://github.com/sbt/sbt/pull/9093 +- ci: Update sbt-java-formatter by @mkurz in https://github.com/sbt/sbt/pull/9098 +- refactor: Use `exists` instead of `find` and `isDefined` by @xuwei-k in https://github.com/sbt/sbt/pull/9111 +- Remove duplicate hedgehog `TestFramework` setting by @xuwei-k in https://github.com/sbt/sbt/pull/9112 +- ci: Update sbt and sbt-scalafmt plugin by @xuwei-k in https://github.com/sbt/sbt/pull/9148 +- ci: Avoid postfix in build files by @xuwei-k in https://github.com/sbt/sbt/pull/9150 +- Remove unnecessary code in `build.sbt` by @xuwei-k in https://github.com/sbt/sbt/pull/9154 +- ci: Filter NOTICE file by @xuwei-k in https://github.com/sbt/sbt/pull/9155 +- Remove duplicate `packageSrc/mappings` by @xuwei-k in https://github.com/sbt/sbt/pull/9156 +- ci: Avoid infix syntax in build files by @xuwei-k in https://github.com/sbt/sbt/pull/9157 +- test: Add more `ClassLoaderLayeringStrategy.Raw` test by @xuwei-k in https://github.com/sbt/sbt/pull/9163 +- test: Add javaagent test by @xuwei-k in https://github.com/sbt/sbt/pull/9164 +- ci: Avoid deprecated `replaceAllLiterally` by @xuwei-k in https://github.com/sbt/sbt/pull/9173 +- Remove unused code in `project/Utils.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/9174 +- Avoid infix syntax in build files by @xuwei-k in https://github.com/sbt/sbt/pull/9175 +- Remove `-source:3.7` option by @xuwei-k in https://github.com/sbt/sbt/pull/9176 +- Improve `--help` by @eed3si9n in https://github.com/sbt/sbt/pull/9180 +- ci: Fix warnings in launcherPackage sub project by @xuwei-k in https://github.com/sbt/sbt/pull/9188 +- test: Enable `project/source-plugins` scripted test by @xuwei-k in https://github.com/sbt/sbt/pull/9191 +- test: Enable `actions/eval-is-safe-and-sound` scripted test by @xuwei-k in https://github.com/sbt/sbt/pull/9192 +- test: Add move-file test by @eed3si9n in https://github.com/sbt/sbt/pull/9197 +- test: Enable `run/fork-loader` scripted test by @xuwei-k in https://github.com/sbt/sbt/pull/9199 +- refactor: Use `scala.jdk.OptionConverters` instead of `JavaInterfaceUtil` by @xuwei-k in https://github.com/sbt/sbt/pull/9200 +- Add `definedTestNames` test by @xuwei-k in https://github.com/sbt/sbt/pull/9210 +- refactor: Use `Files.readString` instead of `readAllBytes` by @xuwei-k in https://github.com/sbt/sbt/pull/9211- refactor: Use `java.util.Arrays.copyOf` in `JsonRpcReader` by @xuwei-k in https://github.com/sbt/sbt/pull/9213 +- refactor: Use `scala.util.Using.resource` instead of `try`-`finally` by @xuwei-k in https://github.com/sbt/sbt/pull/9230 +- deps: Coursier 2.1.25-M25 by @eed3si9n in https://github.com/sbt/sbt/pull/9232 +- ci: Build sbt/sbt using sbt 2 by @xuwei-k in https://github.com/sbt/sbt/pull/9244 +- refactor: format launcherPackageIntegrationTest by @xuwei-k in https://github.com/sbt/sbt/pull/9245 +- Improve deprecation UX for `watchSources` by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9247 +- test: Add test for issue 2188 by @xuwei-k in https://github.com/sbt/sbt/pull/9264 +- ci: Remove duplicate `scalaVersion` setting by @xuwei-k in https://github.com/sbt/sbt/pull/9297 +- refactor: Avoid dollars in name by @xuwei-k in https://github.com/sbt/sbt/pull/9313 +- Remove type ascription in `Continuous` by @xuwei-k in https://github.com/sbt/sbt/pull/9314 +- ci: Update version and ivy tests by @xuwei-k in https://github.com/sbt/sbt/pull/9342 +- test: Update `sbt.version` in `launcher-package/citest2` by @xuwei-k in https://github.com/sbt/sbt/pull/9357 +- deps: sbtn 2.0.0-2932685e by @eed3si9n in https://github.com/sbt/sbt/pull/9363 +- ci: bump actions/checkout from 6 to 7 by @dependabot in https://github.com/sbt/sbt/pull/9366 +- ci: Modify bug report template for custom labels by @eed3si9n in https://github.com/sbt/sbt/pull/9384 +- test: Enable scala-js tests by @xuwei-k in https://github.com/sbt/sbt/pull/9387 +- Update versions in `TemplateCommandUtil` by @xuwei-k in https://github.com/sbt/sbt/pull/9388 +- ci: Add devcontainer by @eed3si9n in https://github.com/sbt/sbt/pull/9392 +- ci: Add issue reproduction skill by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9400 +- refactor: Refactor `LibraryManagement.scala` by @xuwei-k in https://github.com/sbt/sbt/pull/9405 +- Mark log-related keys transient by @eed3si9n in https://github.com/sbt/sbt/pull/9407 +- deps: ipcsocket 1.8.0 by @eed3si9n in https://github.com/sbt/sbt/pull/9433 +- Add native client startup diagnostics regression test by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9447 +- refactor: Avoid deprecated `url(...)` method in test by @xuwei-k in https://github.com/sbt/sbt/pull/9453 +- Bump version number by @eed3si9n in https://github.com/sbt/sbt/pull/9470 +- ci: Bump actions/setup-python from 6 to 7 by @dependabot in https://github.com/sbt/sbt/pull/9476 +- ci: Remove unused code in `launcher-package/build.sbt` by @xuwei-k in https://github.com/sbt/sbt/pull/9480 +- ci: Use `--server` by @eed3si9n in https://github.com/sbt/sbt/pull/9483 +- ci: Update `project/plugins.sbt` by @xuwei-k in https://github.com/sbt/sbt/pull/9491 +- ci: Fix warnings in `build.sbt` by @xuwei-k in https://github.com/sbt/sbt/pull/9494 +- ci: Fix `publishLocalBin` by @eed3si9n in https://github.com/sbt/sbt/pull/9505 +- ci: Update mima setting by @xuwei-k in https://github.com/sbt/sbt/pull/9511 +- ci: Use sbt 2.0.4 by @eed3si9n in https://github.com/sbt/sbt/pull/9512 +- ci: Bump actions/cache from 4 to 6 by @dependabot in https://github.com/sbt/sbt/pull/9513 +- refactor: Remove unnecessary match by @xuwei-k in https://github.com/sbt/sbt/pull/9539 +- test: Add test for `Test/baseDirectory` by @eed3si9n in https://github.com/sbt/sbt/pull/9544 +- test: Add regression test for resource reading by @eed3si9n in https://github.com/sbt/sbt/pull/9552 +- ci: Remove cla-checker v1 by @eed3si9n in https://github.com/sbt/sbt/pull/9570 +- Update `Eval.compileAndLoad` by @xuwei-k in https://github.com/sbt/sbt/pull/9583 +- refactor: Remove unused code by @xuwei-k in https://github.com/sbt/sbt/pull/9589 +- docs: Fix `HashAlgo` scaladoc by @xuwei-k in https://github.com/sbt/sbt/pull/9590 +- refactor: Add `@tailrec` annotation by @xuwei-k in https://github.com/sbt/sbt/pull/9591 +- refactor: Remove redundant `String.toString` by @xuwei-k in https://github.com/sbt/sbt/pull/9592 + +**Full Changelog**: https://github.com/sbt/sbt/compare/f97633075960aaacd9e571461a688a000ed5ba0d...v2.1.0 diff --git a/notes/2.1.0/backported-to-2.0.x.md b/notes/2.1.0/backported-to-2.0.x.md new file mode 100644 index 000000000..60716e6a9 --- /dev/null +++ b/notes/2.1.0/backported-to-2.0.x.md @@ -0,0 +1,157 @@ +## Security fixes + +- fix: Gate LSP calls behind auth ([GHSA-m2pw-22cj-jq4v](https://github.com/sbt/sbt/security/advisories/GHSA-m2pw-22cj-jq4v)) by @eed3si9n in https://github.com/sbt/sbt/commit/6365a0723 (released in 2.0.6) +- fix: Harden Windows VCS URI fragments against command injection by @anatoliykmetyuk in https://github.com/sbt/sbt/commit/a9347cf22 (released in 2.0.0) + +## 🚀 updates + +- feat: sbtn subscription level by @bitloi in https://github.com/sbt/sbt/pull/8796 (released in 2.0.0) +- feat: Add allowMismatchScala setting by @dev-miro26 in https://github.com/sbt/sbt/pull/8804 (released in 2.0.0) +- feat: support passing JVM arguments via -- delimiter in run commands by @RenzoMXD in https://github.com/sbt/sbt/pull/8868 (released in 2.0.0) +- feat: Support --autostart=false and --no-server in sbtn client by @eureka928 in https://github.com/sbt/sbt/pull/8895 (released in 2.0.0) +- Retry on HTTP 5xx during dependency resolution by @majk-p in https://github.com/sbt/sbt/pull/8903 (released in 2.0.0) +- feat: Add dependencyMode setting to control classpath transitivity by @eureka928 in https://github.com/sbt/sbt/pull/8960 (released in 2.0.0) +- feat: Add cacheVersion setting for global cache invalidation by @eureka928 in https://github.com/sbt/sbt/pull/8993 (released in 2.0.0) +- feat: Expose `scripted / excludeFilter` and `scripted / includeFilter` keys for scripted test filtering. by @arashi01 in https://github.com/sbt/sbt/pull/9131 (released in 2.0.0) +- feat: ClassLoaderStrategy.Raw by @eed3si9n in https://github.com/sbt/sbt/pull/9161 (released in 2.0.0) +- Add ForkOptions.connectionTimeout by @xuwei-k in https://github.com/sbt/sbt/pull/9172 (released in 2.0.0) +- feat: Execution log by @eed3si9n in https://github.com/sbt/sbt/pull/9203 (released in 2.0.0) +- Add runner support for execution log by @eed3si9n in https://github.com/sbt/sbt/pull/9237 (released in 2.0.0) +- Allow opt-out of transient warning by @eed3si9n in https://github.com/sbt/sbt/pull/9437 (released in 2.0.4) + +## 🐛 Bug fixes + +- fix: Fixes double quotes handling in fork mode by @BrianHotopp in https://github.com/sbt/sbt/pull/8765 (released in 2.0.0) +- fix: Refer to universal sbtn in detectNativeClient by @fireXtract in https://github.com/sbt/sbt/pull/8810 (released in 2.0.0) +- fix: Print server stderr on startup failure by @eureka928 in https://github.com/sbt/sbt/pull/8816 (released in 2.0.0) +- Fix lazy val name handling in Eval by @xuwei-k in https://github.com/sbt/sbt/pull/8818 (released in 2.0.0) +- fix: sbt -debug doesn't display loading log by @bitloi in https://github.com/sbt/sbt/pull/8819 (released in 2.0.0) +- fix: IgnoreSourceChanges now works by @seroperson in https://github.com/sbt/sbt/pull/8820 (released in 2.0.0) +- fix: Runner should fail on JDK < 17 for sbt 2.x by @eureka928 in https://github.com/sbt/sbt/pull/8825 (released in 2.0.0) +- fix: support comma-separated imports in build.sbt by @RenzoMXD in https://github.com/sbt/sbt/pull/8829 (released in 2.0.0) +- fix: sbt --client fails if -mem is provided by @chrisrock1124 in https://github.com/sbt/sbt/pull/8831 (released in 2.0.0) +- fix: Fixes double quotes handling in fork mode by @eed3si9n in https://github.com/sbt/sbt/pull/8842 (released in 2.0.0) +- fix: Undefined per-project settings order by @seroperson in https://github.com/sbt/sbt/pull/8862 (released in 2.0.0) +- fix: Unresolved dependency error for Coursier by @bitloi in https://github.com/sbt/sbt/pull/8869 (released in 2.0.0) +- fix: fall back to the onsite task when cache fails by @idanbenzvi in https://github.com/sbt/sbt/pull/8890 (released in 2.0.0) +- fix: use new constructor for CantDownloadModule by @majk-p in https://github.com/sbt/sbt/pull/8905 (released in 2.0.0) +- fix: Skip Conflict when dependency relocations form a cycle by @bitloi in https://github.com/sbt/sbt/pull/8919 (released in 2.0.0) +- fix: Use sbt script in BSP config instead of hardcoded Java path by @bittoby in https://github.com/sbt/sbt/pull/8920 (released in 2.0.0) +- fix: Fixes non-typelevel scalaOrganization by @eed3si9n in https://github.com/sbt/sbt/pull/8945 (released in 2.0.0) +- Fix: strip pipelining scalacOptions before launching the REPL by @corevibe555 in https://github.com/sbt/sbt/pull/8986 (released in 2.0.0) +- fix: Scope dependencyMode filtering to compilation only by @eureka928 in https://github.com/sbt/sbt/pull/8990 (released in 2.0.0) +- fix: resolve virtual path in -Ypickle-write scalac option by @corevibe555 in https://github.com/sbt/sbt/pull/9011 (released in 2.0.0) +- fix: Fixes metabuild reloading by @eed3si9n in https://github.com/sbt/sbt/pull/9019 (released in 2.0.0) +- fix: Fixes pollInterval by @eed3si9n in https://github.com/sbt/sbt/pull/9020 (released in 2.0.0) +- Prefer local ScalaModuleInfo over global config by @kitbellew in https://github.com/sbt/sbt/pull/9028 (released in 2.0.0) +- Fix Scala 3 .previous expansion for unstable path by @tanishiking in https://github.com/sbt/sbt/pull/9041 (released in 2.0.0) +- fix: Fix FileAlreadyExistsException in packageDirectory by @bitloi in https://github.com/sbt/sbt/pull/9047 (released in 2.0.0) +- fix: stack traces suppressed in thin client batch mode by @bittoby in https://github.com/sbt/sbt/pull/9058 (released in 2.0.0) +- hide JDK warnings if JDK 26 or later by @xuwei-k in https://github.com/sbt/sbt/pull/9068 (released in 2.0.0) +- fix: Fixes client-side run status by @eed3si9n in https://github.com/sbt/sbt/pull/9081 (released in 2.0.0) +- Add Test configuration to evictionWarningOptions by @zainab-ali in https://github.com/sbt/sbt/pull/9102 (released in 2.0.0) +- fix: Use rootPaths to replace virtual paths in console and doc scalac options. by @mrdziuban in https://github.com/sbt/sbt/pull/9110 (released in 2.0.0) +- fix: Include platform suffix in Artifact.artifactName by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9118 (released in 2.0.0) +- fix: Fixes managedScalaInstance false support by @eed3si9n in https://github.com/sbt/sbt/pull/9121 (released in 2.0.0) +- fix: Fixes compilerPlugin(...) to ignore platform by @eed3si9n in https://github.com/sbt/sbt/pull/9135 (released in 2.0.0) +- fix: Remove will-be-ignored warning by @eed3si9n in https://github.com/sbt/sbt/pull/9143 (released in 2.0.0) +- fix: Fix error with "-language:postfixOps" by @xuwei-k in https://github.com/sbt/sbt/pull/9151 (released in 2.0.0) +- fix: Fix build.sbt file loading in subdirs by @eed3si9n in https://github.com/sbt/sbt/pull/9165 (released in 2.0.0) +- Fix console output not appearing with bgRun and run / fork := true by @mrdziuban in https://github.com/sbt/sbt/pull/9166 (released in 2.0.0) +- fix: Adjust the forked test classpath by @eed3si9n in https://github.com/sbt/sbt/pull/9170 (released in 2.0.0) +- fix: Invalidate on JDK version by @eed3si9n in https://github.com/sbt/sbt/pull/9216 (released in 2.0.0) +- fix: Include test arg into hash by @eed3si9n in https://github.com/sbt/sbt/pull/9222 (released in 2.0.0) +- fix: Add regression test by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9246 (released in 2.0.0) +- fix: Apply dependencyMode filtering to internal project deps by @BrianHotopp in https://github.com/sbt/sbt/pull/9250 (released in 2.0.0) +- Fix duplicate autoplugins packageBin mappings by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9255 (released in 2.0.0) +- fix: Make custom-scala-org scripted test hermetic by @BrianHotopp in https://github.com/sbt/sbt/pull/9260 (released in 2.0.0) +- fix: Parallelize dependency resolution when no progress bar is rendered by @BrianHotopp in https://github.com/sbt/sbt/pull/9270 (released in 2.0.0) +- fix: Report a missing input file clearly instead of an opaque SerializationException by @BrianHotopp in https://github.com/sbt/sbt/pull/9271 (released in 2.0.0) +- Opt bspBuildTargetOutputPathsItem out of caching by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9272 (released in 2.0.0) +- fix: Fixes backtick-quoted project handling by @xuwei-k in https://github.com/sbt/sbt/pull/9277 (released in 2.0.0) +- fix: Add warning about trainsient key by @eed3si9n in https://github.com/sbt/sbt/pull/9288 (released in 2.0.0) +- fix: Avoid updateFull by @eed3si9n in https://github.com/sbt/sbt/pull/9290 (released in 2.0.0) +- fix: Fixes publishing platform-specific artifacts (like Scala Native) by @arashi01 in https://github.com/sbt/sbt/pull/9293 (released in 2.0.0) +- fix: ByteStream chunked upload/download by @eed3si9n in https://github.com/sbt/sbt/pull/9298 (released in 2.0.0) +- fix: Fixes cross build caching by @eed3si9n in https://github.com/sbt/sbt/pull/9305 (released in 2.0.0) +- fix: Fixes chunked upload/download by @eed3si9n in https://github.com/sbt/sbt/pull/9318 (released in 2.0.0) +- fix: Fixes console / javaOptions by @eed3si9n in https://github.com/sbt/sbt/pull/9322 (released in 2.0.0) +- Fix #9358: preserve --allow-empty and --sbt-create in sbtArguments by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9370 (released in 2.0.1) +- fix: Fixes dependency tree rendering on some libraries by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9371 (released in 2.0.4) +- fix: Fixes runner parsing build.properties with whitespaces by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9374 (released in 2.0.1) +- Fix publishDiagnostics propagation by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9376 (released in 2.0.1) +- Fix macro expand for HKT type arguments by @tanishiking in https://github.com/sbt/sbt/pull/9377 (released in 2.0.1) +- fix: Fixes global plugin loading by @eed3si9n in https://github.com/sbt/sbt/pull/9391 (released in 2.0.1) +- fix: Fixes sbt runner openbsd support by @eed3si9n in https://github.com/sbt/sbt/pull/9394 (released in 2.0.1) +- fix: Discard a cancelled task's output backlog on cancel by @BrianHotopp in https://github.com/sbt/sbt/pull/9411 (released in 2.0.2) +- fix: apply ByteStream deadline per-call, not on the memoized stub by @yhefamly in https://github.com/sbt/sbt/pull/9413 (released in 2.0.2) +- fix: Keep the output-flush timer alive across forceFlush by @BrianHotopp in https://github.com/sbt/sbt/pull/9414 (released in 2.0.2) +- Fix ivyless sbt plugin publish cross paths by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9416 (released in 2.0.2) +- Fix #9343 route pipelined dependencyPicklePath through internalDependencyPicklePath by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9425 (released in 2.0.2) +- fix sjson downgrade by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9426 (released in 2.0.2) +- fix: Fixes shutdownall by @eed3si9n in https://github.com/sbt/sbt/pull/9435 (released in 2.0.2) +- scala-dyn-version working again by @eed3si9n in https://github.com/sbt/sbt/pull/9438 (released in 2.0.2) +- fix: Make forked run inherit sbt's working directory by @jozanek in https://github.com/sbt/sbt/pull/9442 (released in 2.0.4) +- fix: Propagate -java-home to a server the thin client starts by @BrianHotopp in https://github.com/sbt/sbt/pull/9448 (released in 2.0.4) +- restore JVM option capability in the launcher config by @anatoliykmetyuk in https://github.com/sbt/sbt/pull/9452 (released in 2.0.3) +- fix: Don't cache environmental (position-less) compile failures by @BrianHotopp in https://github.com/sbt/sbt/pull/9464 (released in 2.0.4) +- fix: Fixes stale resources in test by @eed3si9n in https://github.com/sbt/sbt/pull/9469 (released in 2.0.4) +- fix: Re-extract a declared output directory on cache hit when it is missing by @BrianHotopp in https://github.com/sbt/sbt/pull/9473 (released in 2.0.4) +- clean task cleans sona-staging by @eed3si9n in https://github.com/sbt/sbt/pull/9479 (released in 2.0.4) +- fix: Fixes three test-classloader / jar-handle leaks in the sbt server JVM by @kevin-lee in https://github.com/sbt/sbt/pull/9485 (released in 2.0.4) +- fix: Fixes partial cache restoration by @stasimus in https://github.com/sbt/sbt/pull/9488 (released in 2.0.4) +- fix: Register every Def.declareOutput execution, not one per call site by @BrianHotopp in https://github.com/sbt/sbt/pull/9492 (released in 2.0.4) +- fix: Fixes common settings with extraProjects by @eed3si9n in https://github.com/sbt/sbt/pull/9495 (released in 2.0.4) +- fix: Keep file I/O out of cache-write serialization by @BrianHotopp in https://github.com/sbt/sbt/pull/9496 (released in 2.0.4) +- fix: Complete server teardown before logging so reboot works from sbtn by @BrianHotopp in https://github.com/sbt/sbt/pull/9497 (released in 2.0.4) +- fix: Skip checksum generation for asc file, take 2 by @eed3si9n in https://github.com/sbt/sbt/pull/9499 (released in 2.0.4) +- fix: Fixes scalaCompilerBridgeBin by @eed3si9n in https://github.com/sbt/sbt/pull/9506 (released in 2.0.4) +- fix: Fixes a/build.sbt leakage by @eed3si9n in https://github.com/sbt/sbt/pull/9519 (released in 2.0.5) +- fix: sbt.bat fails to start client/server mode on Windows by @ColOfAbRiX in https://github.com/sbt/sbt/pull/9520 (released in 2.0.5) +- fix: Fixes forked run baseDirectory, take 2 by @eed3si9n in https://github.com/sbt/sbt/pull/9531 (released in 2.0.5) +- fix: Preserve '=' in remote cache header values by @KilianSwissborg in https://github.com/sbt/sbt/pull/9534 (released in 2.0.5) +- fix: Fixes AccessDeniedException issue on Windows by @eed3si9n in https://github.com/sbt/sbt/pull/9538 (released in 2.0.5) +- fix: Complete earlyOutputPing on cache-hit and failed compiles by @BrianHotopp in https://github.com/sbt/sbt/pull/9542 (released in 2.0.5) +- fix: Preserve file timestamp in local diskcache by @eed3si9n in https://github.com/sbt/sbt/pull/9559 (released in 2.0.6) + +## ⚡ Performance improvements + +- perf: short-circuit --version from build.properties by @bitloi in https://github.com/sbt/sbt/pull/8822 (released in 2.0.0) +- perf: Use bytecodeHash for incremental test by @eed3si9n in https://github.com/sbt/sbt/pull/9146 (released in 2.0.0) +- Improve performance of `ClassStamper` by @mrdziuban in https://github.com/sbt/sbt/pull/9253 (released in 2.0.1) +- perf: Improve incremental test stamper by @eed3si9n in https://github.com/sbt/sbt/pull/9257 (released in 2.0.0) +- Migrate FarmHash usage to xxhash64 by @eed3si9n in https://github.com/sbt/sbt/pull/9267 (released in 2.0.0) +- Optimize incremental test further by @yhefamly in https://github.com/sbt/sbt/pull/9364 (released in 2.0.1) +- perf: Read the resolution's project cache once per report by @hoangmaihuy in https://github.com/sbt/sbt/pull/9522 (released in 2.0.5) +- perf: Stop content-hashing artifacts when writing update caches by @hoangmaihuy in https://github.com/sbt/sbt/pull/9524 (released in 2.0.5) +- perf: Memoize the artifact content hash in LibraryManagementCodec by @takayahilton in https://github.com/sbt/sbt/pull/9563 (released in 2.0.6) + +## Behind the scenes + +- Update to Coursier 2.1.25-M24 by @eed3si9n in https://github.com/sbt/sbt/pull/8381 (released in 2.0.0) +- Move compiler bridge to Update by @eed3si9n in https://github.com/sbt/sbt/pull/8836 (released in 2.0.4) +- Comments in dot files by @eed3si9n in https://github.com/sbt/sbt/pull/8841 (released in 2.0.0) +- Tweak the prompt by @eed3si9n in https://github.com/sbt/sbt/pull/8876 (released in 2.0.0) +- Update semanticdbVersion in SemanticdbPlugin.scala by @xuwei-k in https://github.com/sbt/sbt/pull/8885 (released in 2.0.0) +- Scala 3.8.3 by @xuwei-k in https://github.com/sbt/sbt/pull/8997 (released in 2.0.0) +- Remove Path type from caching by @eed3si9n in https://github.com/sbt/sbt/pull/9032 (released in 2.0.0) +- refactor: Replace string Array with ju.List by @eed3si9n in https://github.com/sbt/sbt/pull/9138 (released in 2.0.0) +- Bump sbtn to 2.0.0-RC13 by @eed3si9n in https://github.com/sbt/sbt/pull/9140 (released in 2.0.0) +- sjson-new 0.14.0 by @eed3si9n in https://github.com/sbt/sbt/pull/9177 (released in 2.0.0) +- test: Port tests to use lm-coursier by @eed3si9n in https://github.com/sbt/sbt/pull/9205 (released in 2.0.0) +- Update sbtn to 2.0.0-RC14 for timeout fix by @eed3si9n in https://github.com/sbt/sbt/pull/9240 (released in 2.0.0) +- Reimplement FarmHash by @eed3si9n in https://github.com/sbt/sbt/pull/9278 (released in 2.0.0) +- ci: Scalafmt 3.11.1 by @eed3si9n in https://github.com/sbt/sbt/pull/9279 (released in 2.0.0) +- Update to Scala 3.8.4 by @eed3si9n in https://github.com/sbt/sbt/pull/9302 (released in 2.0.0) +- sbtn 2.0.0-f0d2fae4 by @eed3si9n in https://github.com/sbt/sbt/pull/9333 (released in 2.0.0) +- ci: sbt-salad-days by @eed3si9n in https://github.com/sbt/sbt/pull/9360 (released in 2.0.1) +- test: Refactor global plugin test by @eed3si9n in https://github.com/sbt/sbt/pull/9380 (released in 2.0.1) +- Update Coursier to version 2.1.25-M26 by @eed3si9n in https://github.com/sbt/sbt/pull/9393 (released in 2.0.1) +- ivy 2.3.0-sbt-939a7ea82f140cdb1f51dc404bb43e00a8c43b83 by @eed3si9n in https://github.com/sbt/sbt/pull/9423 (released in 2.0.2) +- Tweak server startup message by @eed3si9n in https://github.com/sbt/sbt/pull/9429 (released in 2.0.2) +- sbtn 2.0.0-b4d628dd by @eed3si9n in https://github.com/sbt/sbt/pull/9443 (released in 2.0.2) +- Ivy 2.3.0-sbt-f686954b0021a5c3245766ced0cdaeca8ba2fd7a by @eed3si9n in https://github.com/sbt/sbt/pull/9457 (released in 2.0.3) +- sjson-new 0.15.1 by @eed3si9n in https://github.com/sbt/sbt/pull/9458 (released in 2.0.3) +- sbtn 2.0.0-a0c4773a by @eed3si9n in https://github.com/sbt/sbt/pull/9503 (released in 2.0.4) +- Zinc 2.0.4 by @eed3si9n in https://github.com/sbt/sbt/pull/9508 (released in 2.0.4) +- sbtn 2.0.0-731e6666 by @eed3si9n in https://github.com/sbt/sbt/pull/9545 (released in 2.0.5)