sbt 1.10.6: Performance regression of update tasks #7945
Closed
Description
steps
In sbt 1.10.5:
$ gh repo clone wvlet/wvlet
$ cd wvlet
# Edit project/build.properties to use sbt 1.10.5
$ ./sbt
sbt:wvlet> runner/update
[success] Total time: 1 s, completed Dec 13, 2024, 11:08:53 AM
In sbt 1.10.6:
# Edit project/build.properties to use sbt 1.10.6
sbt:wvlet> runner/update
[success] Total time: 59 s, completed Dec 13, 2024, 11:12:14 AM
-- The second run still takes longer time than sbt 1.10.5
sbt:wvlet> runner/update
[success] Total time: 6 s, completed Dec 13, 2024, 11:13:36 AM
problem
Resolving some of the Java dependencies (Trino -> Apache Hadoop related dependencies?) in this build.sbt takes quite a long time. It was 1 second in sbt 1.10.5, but sbt 1.10.6 requires almost 1 minute:
https://github.com/wvlet/wvlet/blob/2987497fbc906149bb77c2a77d600b7f6270e2e9/build.sbt#L338-L355
Even after the first update run, there is still significant overhead.
expectation
As sbt update tasks always happen before recompilation, this step needs to be faster, at least after the first cold run.