From 8d12cdac63fe530e725c3e0ade6ad3d4a8a2436b Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 1 Oct 2015 21:57:25 -0400 Subject: [PATCH 1/5] Split RichUpdateReport into internal --- deltag.sh | 7 ++ .../librarymanagement/RichUpdateReport.scala | 75 +++++++++++++++++++ .../internal/librarymanagement/syntax.scala | 10 +++ .../sbt/librarymanagement/UpdateReport.scala | 70 ----------------- 4 files changed, 92 insertions(+), 70 deletions(-) create mode 100755 deltag.sh create mode 100644 librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala create mode 100644 librarymanagement/src/main/scala/sbt/internal/librarymanagement/syntax.scala diff --git a/deltag.sh b/deltag.sh new file mode 100755 index 000000000..d9510e9b5 --- /dev/null +++ b/deltag.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +for t in `git tag` +do + git tag -d $t +done + diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala new file mode 100644 index 000000000..3c43e863a --- /dev/null +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala @@ -0,0 +1,75 @@ +package sbt +package internal +package librarymanagement + +import java.io.File +import java.net.URL +import sbt.librarymanagement._ + +/** Provides extra methods for filtering the contents of an `UpdateReport` and for obtaining references to a selected subset of the underlying files. */ +final class RichUpdateReport(report: UpdateReport) { + def recomputeStamps(): UpdateReport = + { + val files = report.cachedDescriptor +: allFiles + val stamps = files.map(f => (f, f.lastModified)).toMap + new UpdateReport(report.cachedDescriptor, report.configurations, report.stats, stamps) + } + + import DependencyFilter._ + + /** Obtains all successfully retrieved files in all configurations and modules. */ + def allFiles: Seq[File] = matching(DependencyFilter.allPass) + + /** Obtains all successfully retrieved files in configurations, modules, and artifacts matching the specified filter. */ + def matching(f: DependencyFilter): Seq[File] = select0(f).distinct + + /** Obtains all successfully retrieved files matching all provided filters. An unspecified argument matches all files. */ + def select(configuration: ConfigurationFilter = configurationFilter(), module: ModuleFilter = moduleFilter(), artifact: ArtifactFilter = artifactFilter()): Seq[File] = + matching(DependencyFilter.make(configuration, module, artifact)) + + private[this] def select0(f: DependencyFilter): Seq[File] = + for (cReport <- report.configurations; mReport <- cReport.modules; (artifact, file) <- mReport.artifacts if f(cReport.configuration, mReport.module, artifact)) yield { + if (file == null) sys.error("Null file: conf=" + cReport.configuration + ", module=" + mReport.module + ", art: " + artifact) + file + } + + /** Constructs a new report that only contains files matching the specified filter.*/ + private[sbt] def filter(f: DependencyFilter): UpdateReport = + moduleReportMap { (configuration, modReport) => + modReport.copy( + artifacts = modReport.artifacts filter { case (art, file) => f(configuration, modReport.module, art) }, + missingArtifacts = modReport.missingArtifacts filter { art => f(configuration, modReport.module, art) } + ) + } + def substitute(f: (String, ModuleID, Seq[(Artifact, File)]) => Seq[(Artifact, File)]): UpdateReport = + moduleReportMap { (configuration, modReport) => + val newArtifacts = f(configuration, modReport.module, modReport.artifacts) + modReport.copy( + artifacts = f(configuration, modReport.module, modReport.artifacts), + missingArtifacts = Nil + ) + } + + def toSeq: Seq[(String, ModuleID, Artifact, File)] = + for (confReport <- report.configurations; modReport <- confReport.modules; (artifact, file) <- modReport.artifacts) yield (confReport.configuration, modReport.module, artifact, file) + + def allMissing: Seq[(String, ModuleID, Artifact)] = + for (confReport <- report.configurations; modReport <- confReport.modules; artifact <- modReport.missingArtifacts) yield (confReport.configuration, modReport.module, artifact) + + def addMissing(f: ModuleID => Seq[Artifact]): UpdateReport = + moduleReportMap { (configuration, modReport) => + modReport.copy( + missingArtifacts = (modReport.missingArtifacts ++ f(modReport.module)).distinct + ) + } + + def moduleReportMap(f: (String, ModuleReport) => ModuleReport): UpdateReport = + { + val newConfigurations = report.configurations.map { confReport => + import confReport._ + val newModules = modules map { modReport => f(configuration, modReport) } + new ConfigurationReport(configuration, newModules, details, evicted) + } + new UpdateReport(report.cachedDescriptor, newConfigurations, report.stats, report.stamps) + } +} diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/syntax.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/syntax.scala new file mode 100644 index 000000000..4ddc5d243 --- /dev/null +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/syntax.scala @@ -0,0 +1,10 @@ +package sbt +package internal +package librarymanagement + +import sbt.librarymanagement._ + +object syntax { + implicit def richUpateReport(ur: UpdateReport): RichUpdateReport = + new RichUpdateReport(ur) +} diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateReport.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateReport.scala index 611de450f..e2f19827f 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateReport.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateReport.scala @@ -229,76 +229,6 @@ final class UpdateReport(val cachedDescriptor: File, val configurations: Seq[Con } object UpdateReport { - implicit def richUpdateReport(report: UpdateReport): RichUpdateReport = new RichUpdateReport(report) - - /** Provides extra methods for filtering the contents of an `UpdateReport` and for obtaining references to a selected subset of the underlying files. */ - final class RichUpdateReport(report: UpdateReport) { - def recomputeStamps(): UpdateReport = - { - val files = report.cachedDescriptor +: allFiles - val stamps = files.map(f => (f, f.lastModified)).toMap - new UpdateReport(report.cachedDescriptor, report.configurations, report.stats, stamps) - } - - import DependencyFilter._ - - /** Obtains all successfully retrieved files in all configurations and modules. */ - def allFiles: Seq[File] = matching(DependencyFilter.allPass) - - /** Obtains all successfully retrieved files in configurations, modules, and artifacts matching the specified filter. */ - private[sbt] def matching(f: DependencyFilter): Seq[File] = select0(f).distinct - - /** Obtains all successfully retrieved files matching all provided filters. An unspecified argument matches all files. */ - private[sbt] def select(configuration: ConfigurationFilter = configurationFilter(), module: ModuleFilter = moduleFilter(), artifact: ArtifactFilter = artifactFilter()): Seq[File] = - matching(DependencyFilter.make(configuration, module, artifact)) - - private[this] def select0(f: DependencyFilter): Seq[File] = - for (cReport <- report.configurations; mReport <- cReport.modules; (artifact, file) <- mReport.artifacts if f(cReport.configuration, mReport.module, artifact)) yield { - if (file == null) sys.error("Null file: conf=" + cReport.configuration + ", module=" + mReport.module + ", art: " + artifact) - file - } - - /** Constructs a new report that only contains files matching the specified filter.*/ - private[sbt] def filter(f: DependencyFilter): UpdateReport = - moduleReportMap { (configuration, modReport) => - modReport.copy( - artifacts = modReport.artifacts filter { case (art, file) => f(configuration, modReport.module, art) }, - missingArtifacts = modReport.missingArtifacts filter { art => f(configuration, modReport.module, art) } - ) - } - def substitute(f: (String, ModuleID, Seq[(Artifact, File)]) => Seq[(Artifact, File)]): UpdateReport = - moduleReportMap { (configuration, modReport) => - val newArtifacts = f(configuration, modReport.module, modReport.artifacts) - modReport.copy( - artifacts = f(configuration, modReport.module, modReport.artifacts), - missingArtifacts = Nil - ) - } - - def toSeq: Seq[(String, ModuleID, Artifact, File)] = - for (confReport <- report.configurations; modReport <- confReport.modules; (artifact, file) <- modReport.artifacts) yield (confReport.configuration, modReport.module, artifact, file) - - def allMissing: Seq[(String, ModuleID, Artifact)] = - for (confReport <- report.configurations; modReport <- confReport.modules; artifact <- modReport.missingArtifacts) yield (confReport.configuration, modReport.module, artifact) - - def addMissing(f: ModuleID => Seq[Artifact]): UpdateReport = - moduleReportMap { (configuration, modReport) => - modReport.copy( - missingArtifacts = (modReport.missingArtifacts ++ f(modReport.module)).distinct - ) - } - - def moduleReportMap(f: (String, ModuleReport) => ModuleReport): UpdateReport = - { - val newConfigurations = report.configurations.map { confReport => - import confReport._ - val newModules = modules map { modReport => f(configuration, modReport) } - new ConfigurationReport(configuration, newModules, details) - } - new UpdateReport(report.cachedDescriptor, newConfigurations, report.stats, report.stamps) - } - } - private val vectorConfigurationReportPickler = implicitly[Pickler[Vector[ConfigurationReport]]] private val vectorConfigurationReportUnpickler = implicitly[Unpickler[Vector[ConfigurationReport]]] private val updateStatsPickler = implicitly[Pickler[UpdateStats]] From 82282a20907bf0a475688a77ecbea9663488a99a Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 1 Oct 2015 21:57:37 -0400 Subject: [PATCH 2/5] bump util --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index ee5217690..f07eb3e1d 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -5,7 +5,7 @@ object Dependencies { lazy val scala210 = "2.10.5" lazy val scala211 = "2.11.7" - val utilVersion = "0.1.0-M3" + val utilVersion = "0.1.0-M5" val ioVersion = "1.0.0-M3" lazy val sbtIO = "org.scala-sbt" %% "io" % ioVersion lazy val utilCollection = "org.scala-sbt" %% "util-collection" % utilVersion From 5af540628f76606370668c06f295177c24a1d8a0 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 1 Oct 2015 23:44:10 -0400 Subject: [PATCH 3/5] use the internal syntax --- .../main/scala/sbt/internal/librarymanagement/IvyActions.scala | 1 + .../main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala | 1 + .../scala/sbt/internal/librarymanagement/RichUpdateReport.scala | 2 +- .../ivyint/CachedResolutionResolveEngine.scala | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyActions.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyActions.scala index 817d41a69..6353530cd 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyActions.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyActions.scala @@ -20,6 +20,7 @@ import sbt.io.{ IO, PathFinder } import sbt.util.Logger import sbt.internal.util.{ ShowLines, SourcePosition, LinePosition, RangePosition, LineRange } import sbt.librarymanagement._ +import sbt.internal.librarymanagement.syntax._ final class DeliverConfiguration(val deliverIvyPattern: String, val status: String, val configurations: Option[Seq[Configuration]], val logging: UpdateLogging.Value) final class PublishConfiguration(val ivyFile: Option[File], val resolverName: String, val artifacts: Map[Artifact, File], val checksums: Seq[String], val logging: UpdateLogging.Value, diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala index 196e0e1ae..765af3ab1 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala @@ -15,6 +15,7 @@ import resolve.{ IvyNode, IvyNodeCallers } import IvyNodeCallers.{ Caller => IvyCaller } import ivyint.SbtDefaultDependencyDescriptor import sbt.librarymanagement._ +import sbt.internal.librarymanagement.syntax._ object IvyRetrieve { def reports(report: ResolveReport): Seq[ConfigurationResolveReport] = diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala index 3c43e863a..61675fd2d 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala @@ -68,7 +68,7 @@ final class RichUpdateReport(report: UpdateReport) { val newConfigurations = report.configurations.map { confReport => import confReport._ val newModules = modules map { modReport => f(configuration, modReport) } - new ConfigurationReport(configuration, newModules, details, evicted) + new ConfigurationReport(configuration, newModules, details) } new UpdateReport(report.cachedDescriptor, newConfigurations, report.stats, report.stamps) } diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/CachedResolutionResolveEngine.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/CachedResolutionResolveEngine.scala index 4a8a8094e..c566fea30 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/CachedResolutionResolveEngine.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/CachedResolutionResolveEngine.scala @@ -25,6 +25,7 @@ import sbt.io.{ DirectoryFilter, Hash, IO, Path } import sbt.util.Logger import sbt.librarymanagement._ import Configurations.{ System => _, _ } +import sbt.internal.librarymanagement.syntax._ private[sbt] object CachedResolutionResolveCache { def createID(organization: String, name: String, revision: String) = From c97563a0c0df4c0c35421ed33e78495ab6e50dc4 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 1 Oct 2015 23:57:58 -0400 Subject: [PATCH 4/5] change Scaladoc style comment --- .../scala/sbt/librarymanagement/UpdateOptions.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala index 47ab13507..be2ad412f 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala @@ -13,15 +13,15 @@ import sbt.util.Logger * See also UpdateConfiguration in IvyActions.scala. */ final class UpdateOptions private[sbt] ( - /** If set to CircularDependencyLevel.Error, halt the dependency resolution. */ + // If set to CircularDependencyLevel.Error, halt the dependency resolution. val circularDependencyLevel: CircularDependencyLevel, - /** If set to true, check all resolvers for snapshots. */ + // If set to true, check all resolvers for snapshots. val latestSnapshots: Boolean, - /** If set to true, use consolidated resolution. */ + // If set to true, use consolidated resolution. val consolidatedResolution: Boolean, - /** If set to true, use cached resolution. */ + // If set to true, use cached resolution. val cachedResolution: Boolean, - /** Extention point for an alternative resolver converter. */ + // Extention point for an alternative resolver converter. val resolverConverter: UpdateOptions.ResolverConverter ) { def withCircularDependencyLevel(circularDependencyLevel: CircularDependencyLevel): UpdateOptions = From c740f4c29e69716c91ada2152db33955e2d9ffb2 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 2 Oct 2015 02:47:44 -0400 Subject: [PATCH 5/5] Remove deltag.sh --- deltag.sh | 7 ------- 1 file changed, 7 deletions(-) delete mode 100755 deltag.sh diff --git a/deltag.sh b/deltag.sh deleted file mode 100755 index d9510e9b5..000000000 --- a/deltag.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -for t in `git tag` -do - git tag -d $t -done -