sbt/notes
Brian Hotopp 3f6fd595ff [2.x] feat: Resolve dependencies in parallel under the super shell
Building on #9270 (which parallelized resolution in non-interactive runs by
narrowing the lm-coursier lock to only fire while coursier renders its
interactive progress bar), this makes `update` resolve in parallel under the
interactive super shell as well.

Under the super shell, LMCoursier.coursierLoggerTask previously returned None,
so coursier drew its own per-module progress bars and resolution stayed
serialized (those bars are not safe to render concurrently). It now supplies a
CacheLogger, which both suppresses coursier's bars and flips #9270's
progressBarActive predicate to false, so resolution runs in parallel. Progress
is rendered at the sbt task level instead.

Resolution progress is tracked by a per-command ResolutionProgress instance,
created in MainLoop.next alongside Keys.taskProgress and held under an
AttributeKey with the same lifecycle -- no JVM-global state. coursierLoggerTask
reads it from State and hands it to the ResolutionProgressLogger that coursier's
download threads call; TaskProgress holds the same instance and appends a single
aggregate line at render time, e.g. "Updating 18 modules, 240 artifacts,
31.0 MiB". The instance is born empty per command and discarded with it, so
totals never leak across commands and the count never resets mid-update (a
single update runs a resolve phase and a separate artifacts phase).

v1 renders one aggregate line because it needs no schema change; per-module
status lines (which would add a status field to ProgressItem) are a follow-up.
UpdateRun's report-building lock is left as a separate follow-up since the
network-heavy paths (ResolutionRun/ArtifactsRun) are already unlocked.

re: #5627

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 15:46:53 -04:00
..
1.0.0 Implement sequential[B](tasks: Seq[Initialize[Task[B]]]) and remove useless comment outs 2018-09-19 20:54:18 -04:00
1.0.3 Merge branch '1.x' into help-sbt-new 2017-12-11 16:57:40 +00:00
1.1.2 Add more configuration axis ScopeFilter factory methods 2018-03-06 23:01:31 +01:00
1.1.4 [alodavi/improving_loading_settings_messaging] added notes on the Pr 2018-05-15 14:44:00 +02:00
1.1.5 move notes to 1.1.5 2018-05-04 16:39:05 +02:00
1.2.0 Revert "don't require publishTo specified if publishArtifact is `false`" 2019-08-08 00:36:36 -04:00
1.3.0 Set swoval.tmpdir with absolute path via globalBasePath (#5048) 2019-09-09 14:13:34 -04:00
1.6.0 Enable the asciiGraphWidth setting to the dependencyTree tasks. #5962 2021-10-19 02:15:31 +09:00
1.7.0 Filter incompatible Scala 3 projects in cross switch commands 2022-06-26 22:46:37 -04:00
1.8.0 Add support for BSP's buildTarget/outputPaths method 2022-08-03 10:13:48 +02:00
2.0.0 [2.x] feat: Resolve dependencies in parallel under the super shell 2026-06-02 15:46:53 -04:00
0.10.0.markdown Reorganize directory structure 2016-05-06 16:01:49 -04:00
0.10.1.markdown Reorganize directory structure 2016-05-06 16:01:49 -04:00
0.11.0.markdown Reorganize directory structure 2016-05-06 16:01:49 -04:00
0.11.3.markdown Reorganize directory structure 2016-05-06 16:01:49 -04:00
0.13.6.markdown Spelling (#8028) 2025-02-04 01:11:28 -05:00
0.13.7.markdown Spelling (#8028) 2025-02-04 01:11:28 -05:00
0.13.8.markdown https://www.scala-sbt.org 2019-09-05 14:11:13 -04:00
0.13.9.markdown https://github.com 2019-09-05 14:11:04 -04:00
0.13.11.markdown Spelling (#8028) 2025-02-04 01:11:28 -05:00
0.13.12.markdown https://github.com 2019-09-05 14:11:04 -04:00
0.13.13.markdown https://www.scala-sbt.org 2019-09-05 14:11:13 -04:00
0.13.14.markdown https://www.scala-sbt.org 2019-09-05 14:11:13 -04:00
0.13.16.markdown Fix the several typos detected by github.com/client9/misspell 2018-08-08 15:57:34 +09:00
1.0.0.markdown Spelling (#8028) 2025-02-04 01:11:28 -05:00
1.0.1.markdown https://github.com 2019-09-05 14:11:04 -04:00
1.0.2.markdown contributors 2017-09-16 20:32:33 -04:00
1.0.3.markdown notes for 1.0.3 2017-10-26 22:39:35 -04:00
1.0.4.markdown Spelling (#8028) 2025-02-04 01:11:28 -05:00
1.1.0.markdown Spelling (#8028) 2025-02-04 01:11:28 -05:00
1.1.1.markdown https://github.com 2019-09-05 14:11:04 -04:00
about.markdown https://www.scala-sbt.org 2019-09-05 14:11:13 -04:00
sample.md Add project id to watching message 2017-12-15 01:49:14 +00:00