## 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