From 409d1a7f4e26f67d918ab92fac3a56813314bf4f Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Mon, 14 Dec 2015 16:59:55 -0500 Subject: [PATCH 1/4] Fixes #1514. Enable latest SNAPSHOT option by default to check all resolvers to find the latest snapshot artifacts. This behavior did not work well with Maven repositories where sbt was failing to calculate the correct publication dates. Now that #2075 fixes the Maven integration issue we should enable this flag back again. The build user can opt out by: updateOptions := updateOptions.value.withLatestSnapshots(false) --- .../src/main/scala/sbt/librarymanagement/UpdateOptions.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala index 8b70c3971..ed63b4c48 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala @@ -93,7 +93,7 @@ object UpdateOptions { new UpdateOptions( circularDependencyLevel = CircularDependencyLevel.Warn, interProjectFirst = true, - latestSnapshots = false, + latestSnapshots = true, consolidatedResolution = false, cachedResolution = false, resolverConverter = PartialFunction.empty From 33ae4440411f10fbb1f1a5a46b5bf55392f30ed0 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 30 Dec 2015 04:07:39 -0500 Subject: [PATCH 2/4] Bump up ivy to 2.3.0-sbt-39ece6f17e1af62c2e89a9d88b59c0c3aad56145 Ref sbt/ivy#21 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 9c78cc053..10466124d 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -13,7 +13,7 @@ object Dependencies { lazy val utilTesting = "org.scala-sbt" %% "util-testing" % utilVersion lazy val launcherInterface = "org.scala-sbt" % "launcher-interface" % "1.0.0-M1" - lazy val ivy = "org.scala-sbt.ivy" % "ivy" % "2.3.0-sbt-927bc9ded7f8fba63297cddd0d5a3d01d6ad5d8d" + lazy val ivy = "org.scala-sbt.ivy" % "ivy" % "2.3.0-sbt-39ece6f17e1af62c2e89a9d88b59c0c3aad56145" lazy val jsch = "com.jcraft" % "jsch" % "0.1.46" intransitive () lazy val sbtSerialization = "org.scala-sbt" %% "serialization" % "0.1.2" lazy val scalaReflect = Def.setting { "org.scala-lang" % "scala-reflect" % scalaVersion.value } From bd792c3bb829094bb6d83e311effd2f479513bba Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 30 Dec 2015 04:46:20 -0500 Subject: [PATCH 3/4] Fixes #1616. Fixes the "latest snapshot" chain resolver The "latest snapshot" chain resolver was assuming that there's at least one artifact per module. I think that was the root cause of #1616. --- .../librarymanagement/ivyint/SbtChainResolver.scala | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala index c325d4af3..e621ac7a0 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala @@ -193,15 +193,11 @@ private[sbt] case class SbtChainResolver( // Now that we know the real latest revision, let's force Ivy to use it val artifactOpt = findFirstArtifactRef(rmr.getDescriptor, dd, data, resolver) artifactOpt match { - case None if resolver.getName == "inter-project" => // do nothing - case None if resolver.isInstanceOf[CustomMavenResolver] => - // do nothing for now.... - // We want to see if the maven caching is sufficient and we do not need to duplicate within the ivy cache... - case None => throw new RuntimeException(s"\t${resolver.getName}: no ivy file nor artifact found for $rmr") case Some(artifactRef) => val systemMd = toSystem(rmr.getDescriptor) getRepositoryCacheManager.cacheModuleDescriptor(resolver, artifactRef, toSystem(dd), systemMd.getAllArtifacts.head, None.orNull, getCacheOptions(data)) + case None => // do nothing. There are modules without artifacts } rmr } From 660d66ef1f9e83b296aadf7f2ec073476ddae1d6 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 30 Dec 2015 07:21:07 -0500 Subject: [PATCH 4/4] Bump up ivy to 2.3.0-sbt-2cc8d2761242b072cedb0a04cb39435c4fa24f9a --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 10466124d..4a46dfaaf 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -13,7 +13,7 @@ object Dependencies { lazy val utilTesting = "org.scala-sbt" %% "util-testing" % utilVersion lazy val launcherInterface = "org.scala-sbt" % "launcher-interface" % "1.0.0-M1" - lazy val ivy = "org.scala-sbt.ivy" % "ivy" % "2.3.0-sbt-39ece6f17e1af62c2e89a9d88b59c0c3aad56145" + lazy val ivy = "org.scala-sbt.ivy" % "ivy" % "2.3.0-sbt-2cc8d2761242b072cedb0a04cb39435c4fa24f9a" lazy val jsch = "com.jcraft" % "jsch" % "0.1.46" intransitive () lazy val sbtSerialization = "org.scala-sbt" %% "serialization" % "0.1.2" lazy val scalaReflect = Def.setting { "org.scala-lang" % "scala-reflect" % scalaVersion.value }