sbt, the interactive build tool
Go to file
Anatolii Kmetiuk 4ed16c96ce
[2.x] Fix publishDiagnostics propagation (#9376)
**Problem**
Test is based on https://github.com/sbt/sbt/issues/9345#issuecomment-4718229113 which gives us the following sequence:

1. Metals sends buildTarget/compile.
2. sbt publishes real non-empty diagnostics.
3. Metals sends buildTarget/scalaMainClasses.
4. During that request, sbt emits build/publishDiagnostics with diagnostics: [] and reset: true.
5. The following build/taskFinish still reports errors: 1.

Previously, errors for diagnostics reporting via bsp were collected from a live compilation run. In the sequence above, that is triggered by buildTarget/compile. Then, buildTarget/scalaMainClasses does not trigger such a run for the second time, it uses the cached compilation result. Therefore, the diagnostics is not populated.

**Solution**
The proposed fix modifies sendFailureReport to accept an optional CompileFailed object that contains the diagnostics even in case the actual compiler did not run because the cached result was used. If no problems were found for a file via default means, this CompileFailed object is queried to see if it has any information about problems in a given file.
2026-06-26 12:36:42 -04:00
.github [2.x] ci: bump actions/checkout from 6 to 7 (#9366) 2026-06-22 01:10:42 -04:00
buildfile/src [2.x] fix: Fixes backtick-quoted project handling (#9277) 2026-05-30 22:09:46 -04:00
client Revert "[2.x] feat: Enable musl static linking for sbtn on JDK 17+ (#8464)" (#8557) 2026-01-16 00:06:28 -05:00
contributing-docs [2.x] Update to Scala 3.8.4 (#9302) 2026-06-07 20:52:13 -04:00
core-macros/src [2.x] Fix macro expand for HKT type arguments (#9377) 2026-06-24 21:22:11 -04:00
internal [2.x] sjson-new 0.15.0 2026-06-01 01:52:50 -04:00
launch [2.x] feat: repositories_force support (#8761) 2026-02-20 01:52:59 -05:00
launcher-package [2.x] fix: Fixes runner parsing build.properties with whitespaces (#9374) 2026-06-25 02:48:40 -04:00
licenses move remaining pieces of sbt subproject to sbt_pending and fix notices 2010-09-21 21:55:50 -04:00
lm-core [2.x] fix: Substitute [organisation] literally by defaulting Patterns.isMavenCompatible to false (#9344) 2026-06-15 23:54:28 -04:00
lm-coursier [2.x] fix: Fixes dependency tree rendering on some libraries (#9371) 2026-06-23 14:35:44 -04:00
lm-ivy/src [2.x] fix: Substitute [organisation] literally by defaulting Patterns.isMavenCompatible to false (#9344) 2026-06-15 23:54:28 -04:00
main [2.x] Fix publishDiagnostics propagation (#9376) 2026-06-26 12:36:42 -04:00
main-actions/src [2.x] Avoid dollars in name (#9313) 2026-06-08 23:39:10 -04:00
main-command/src Fix #9358: preserve --allow-empty and --sbt-create in sbtArguments (#9370) 2026-06-23 15:03:21 +09:00
main-settings/src [2.x] Fix macro expand for HKT type arguments (#9377) 2026-06-24 21:22:11 -04:00
notes [2.x] fix: Substitute [organisation] literally by defaulting Patterns.isMavenCompatible to false (#9344) 2026-06-15 23:54:28 -04:00
project [2.x] ipcsocket 1.7.0 (#9361) 2026-06-21 01:31:40 -04:00
protocol/src Contraband 0.9.0 2026-06-01 01:52:50 -04:00
run [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
sbt-app/src [2.x] fix: Fixes dependency tree rendering on some libraries (#9371) 2026-06-23 14:35:44 -04:00
sbt-ivy/src/main/scala/sbt [2.x] refactor: Use Files.writeString instead of Files.write (#9093) 2026-04-15 22:29:19 -04:00
sbt-remote-cache/src [2.x] fix: Fixes chunked upload/download (#9318) 2026-06-09 21:48:07 +09:00
sbtw [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
scripted-sbt [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
scripts Fix lm-coursier scripted 2024-10-11 14:30:55 +02:00
server-test/src [2.x] Fix publishDiagnostics propagation (#9376) 2026-06-26 12:36:42 -04:00
src [2.x] Add scripted test for #7838 (#8541) 2026-01-20 12:13:27 -05:00
tasks [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
tasks-standard [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
testing Contraband 0.9.0 2026-06-01 01:52:50 -04:00
util-cache [2.x] fix: ByteStream chunked upload/download (#9298) 2026-06-07 15:17:20 -04:00
util-collection [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
util-tracking [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
worker/src [2.x] fix: Include test arg into hash (#9222) 2026-05-16 04:12:33 -04:00
zinc-lm-integration/src [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
.git-blame-ignore-revs [2.x] blame ignore commits (#8814) 2026-02-25 10:51:21 -05:00
.gitattributes [2.x] Update .gitattributes for contraband files (#9076) 2026-04-12 13:51:06 -04:00
.gitignore [2.x] fix : BSP compile returns StatusCode.Error on failure (#8104) (#8709) 2026-02-07 11:01:49 -05:00
.gitmodules Move metadata to lm-coursier/metadata 2024-10-09 09:44:42 +02:00
.java-version Scala 3.8.0 2026-01-24 04:52:28 -05:00
.jvmopts Add .jvmopts 2023-11-25 01:06:30 -05:00
.mailmap Add mailmap 2019-06-11 09:30:14 +02:00
.sbtopts Restore .sbtopts file 2020-11-19 12:42:26 -08:00
.scala-steward.conf Pin slf4j-api 2023-01-02 22:06:46 -05:00
.scalafix.conf [2.x] ci: Add scalafix DisableSyntax.noReturns (#8922) 2026-03-19 10:48:10 -04:00
.scalafmt.conf [2.x] ci: Scalafmt 3.11.1 (#9279) 2026-05-31 16:01:15 -04:00
AGENTS.md [2.x] fix: Fix spelling and link in AGENTS docs (#8837) 2026-03-01 00:25:09 -05:00
CONTRIBUTING.md [2.x] fix: Fix typo in CONTRIBUTING guide 2026-02-28 20:44:19 -06:00
LICENSE Transfer copyright to Scala Center 2023-06-20 16:39:07 +02:00
NOTICE Transfer copyright to Scala Center 2023-06-20 16:39:07 +02:00
PROFILING.md docs: Update flamegraph guide --lines 2025-11-09 18:06:13 -05:00
README.md [2.x] docs: Move to CONTRIBUTING (#8629) 2026-01-25 15:48:09 -05:00
SUPPORT.md Transfer copyright to Scala Center 2023-06-20 16:39:07 +02:00
build.sbt [2.x] Fix publishDiagnostics propagation (#9376) 2026-06-26 12:36:42 -04:00
sbt [2.x] fix: Fixes runner parsing build.properties with whitespaces (#9374) 2026-06-25 02:48:40 -04:00
sbt-allsources.sh Merge remote-tracking branch 'lm/wip/sbt-2.x' into 2.x-lm-coursier 2024-10-09 08:50:03 +02:00
sbt.sh Implement sbt-launch.jar download 2021-04-19 23:43:15 -04:00
server.md setting query is "sbt/setting" 2017-10-03 01:45:06 -04:00

README.md

CI Latest version Discord

sbt

sbt is a build tool for Scala, Java, and more.

For general documentation, see https://www.scala-sbt.org/.

sbt 2.x

This is the 2.x series of sbt. The source code of sbt is split across several GitHub repositories, including this one.

  • sbt/io hosts sbt.io module.
  • sbt/zinc hosts Zinc, an incremental compiler for Scala.
  • sbt/sbt, this repository hosts modules that implement the build tool.
  • Setup: Describes getting started with the latest binary release.
  • FAQ: Explains how to get help and more.
  • sbt/sbt-zero-seven: hosts sbt 0.7.7 and earlier versions

Issues and Pull Requests

Please read CONTRIBUTING carefully before opening a GitHub Issue or a pull request.

If you're looking for an idea for a contribution, issues labeled with good first issue or help wanted might be good starting points.

If you would like to ask questions about sbt, there's sbt channel on Scala Discord, but it would be good to gather questions on Stackoverflow.

license

See LICENSE.