Kind of benchmark of sbt-coursier against default sbt 1 resolution. Run it locally, and tell us your results!https://github.com/alexarchambault/coursier-benchmark …
-
-
Replying to @alxarchambault @heathercmiller
I'm sure
@alxarchambault knows this, but basically every Ivy resolution with SBT seems to involve a 302 redirect to another 302 which leads to a 404, for a couple of resolvers before getting a 200. Those 302s and 404s (as per protocol) don't get cached.1 reply 0 retweets 0 likes -
Replying to @propensive @heathercmiller
Only one repository (Central) should be involved in the benchmark project, which should limit these kind of failed attempts. That said, I haven't checked whether sbt checks other repositories too here (might be good to ensure that it doesn't).
2 replies 0 retweets 0 likes -
Replying to @alxarchambault @heathercmiller
I was trying to improve downloads at Scala World, so with a "default" configuration, I ran SBT through a proxy server, and noticed about 6 HTTP requests to various repositories (e.g. typesafe) before fetching most files. I think this is typical.
1 reply 0 retweets 1 like -
Isn't that just the order your resolvers are declared in though?
1 reply 0 retweets 0 likes -
There are more repositories for plugins for sure. I re-order them in sbt-coursier, to avoid those that feel slow (https://github.com/coursier/coursier/blob/06322622188f2e458b15204e05f4cefa99321df3/sbt-coursier/src/main/scala/coursier/Tasks.scala#L101 …).
1 reply 0 retweets 1 like -
Reordering seems worthwhile. Though IIRC (I don't have it set up any more) the default settings search the Typesafe repo for every file prior to Maven Central, which just adds a fraction of a second to each dependency, because only a few files actually exist on Typesafe.
1 reply 0 retweets 0 likes -
Yeah, but that only applies to plugins then (the benchmark here is ok).
1 reply 0 retweets 0 likes -
Ok. You probably know how weak my understanding of SBT is, so I'm not sure exactly what we going on ;) but I can report that an HTTP proxy (eg Squid) is a reasonable way to inspect what's happening at the HTTP layer.
1 reply 0 retweets 0 likes -
Oh, my sbt foo isn’t too high either. sbt "show fullResolvers" should list default resolvers (only Central as remote in the benchmark). For plugins… some println in sbt-coursier told me about the other repos ;)
2 replies 0 retweets 0 likes
That reports more output than I expected, but I'm only seeing Maven Central in that list, so maybe all's good, and I was just testing with a project that had additional resolvers (and I didn't realise this was significant).
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.