Files
sbt/notes/2.0.0/parallel-resolution-supershell.md
T
BrianHotoppandClaude Opus 4.8 f0d2fae4d8 [2.x] feat: Resolve dependencies in parallel under the super shell (#9295)
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.

Count distinct non-checksum urls instead and drop the module claim.
Report the elapsed time of the current burst so the super shell renders
a live counter rather than a frozen "0s". Tests now encode coursier's
per-session call pattern.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-11 15:17:03 -04:00

990 B

update resolves in parallel under the super shell

Building on #9270 (parallel dependency resolution for non-interactive runs), update now also resolves in parallel under the interactive super shell. Previously sbt let coursier draw its own per-module progress bars there, and those bars cannot be rendered from more than one module at once, so resolution was serialized one module at a time. sbt now suppresses coursier's bars and renders a single aggregate progress line at the task level instead, counting distinct files (metadata and artifacts) and bytes downloaded, e.g.:

downloading 240 files, 31.0 MiB 12s

so resolution can run concurrently across modules. Setting csrLogger := Some(...) opts out: your logger is used instead, and coursier's behavior is unchanged.

This is the first step of #5627. Per-module status lines (which would add a status field to ProgressItem) remain a possible follow-up.