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