Skip to content

Commit 42e0e92

Browse files
committed
fixup
1 parent 44c1a52 commit 42e0e92

File tree

5 files changed

+81
-14
lines changed

5 files changed

+81
-14
lines changed

Sources/PackageGraph/DependencyResolver.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import TSCBasic
1212
import PackageModel
1313

1414
public protocol DependencyResolver {
15-
typealias Binding = (container: PackageReference, binding: BoundVersion, products: ProductFilter)
15+
typealias Binding = (package: PackageReference, binding: BoundVersion, products: ProductFilter)
1616
typealias Delegate = DependencyResolverDelegate
1717
}
1818

Sources/PackageGraph/Pubgrub/PubgrubDependencyResolver.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ public struct PubgrubDependencyResolver {
227227
var finalAssignments: [DependencyResolver.Binding]
228228
= flattenedAssignments.keys.sorted(by: { $0.name < $1.name }).map { package in
229229
let details = flattenedAssignments[package]!
230-
return (container: package, binding: details.binding, products: details.products)
230+
return (package: package, binding: details.binding, products: details.products)
231231
}
232232

233233
// Add overriden packages to the result.
@@ -499,7 +499,6 @@ public struct PubgrubDependencyResolver {
499499
return .conflict
500500
}
501501

502-
//log("derived: \(unsatisfiedTerm.inverse)")
503502
self.delegate?.derived(term: unsatisfiedTerm.inverse)
504503
state.derive(unsatisfiedTerm.inverse, cause: incompatibility)
505504

@@ -586,7 +585,6 @@ public struct PubgrubDependencyResolver {
586585
}
587586
}
588587

589-
//log("failed: \(incompatibility)")
590588
self.delegate?.failedToResolve(incompatibility: incompatibility)
591589
throw PubgrubError._unresolvable(incompatibility, state.incompatibilities)
592590
}
@@ -672,7 +670,6 @@ public struct PubgrubDependencyResolver {
672670

673671
// Decide this version if there was no conflict with its dependencies.
674672
if !haveConflict {
675-
//self.log("decision: \(pkgTerm.node.package)@\(version)")
676673
self.delegate?.didResolve(term: pkgTerm, version: version)
677674
state.decide(pkgTerm.node, at: version)
678675
}

Sources/Workspace/Workspace.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2325,7 +2325,7 @@ extension Workspace {
23252325
resolver: PubgrubDependencyResolver,
23262326
constraints: [PackageContainerConstraint],
23272327
diagnostics: DiagnosticsEngine
2328-
) -> [(container: PackageReference, binding: BoundVersion, products: ProductFilter)] {
2328+
) -> [(package: PackageReference, binding: BoundVersion, products: ProductFilter)] {
23292329

23302330
os_signpost(.begin, log: .swiftpm, name: SignpostName.resolution)
23312331
let result = resolver.solve(constraints: constraints)

Tests/PackageGraphPerformanceTests/DependencyResolverPerfTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class DependencyResolverRealWorldPerfTests: XCTestCasePerf {
6262
XCTFail("Unexpected result")
6363
return nil
6464
}
65-
return ($0.container, version)
65+
return ($0.package, version)
6666
}
6767
graph.checkResult(result)
6868
case .failure:

Tests/PackageGraphTests/PubgrubTests.swift

Lines changed: 77 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,8 @@ final class PubgrubTests: XCTestCase {
318318
XCTFail("Unexpected error: \(error)")
319319
case .success(let bindings):
320320
XCTAssertEqual(bindings.count, 1)
321-
let foo = bindings.first { $0.container.identity == PackageIdentity("foo") }
322-
XCTAssertEqual(foo?.container.name, "bar")
321+
let foo = bindings.first { $0.package.identity == PackageIdentity("foo") }
322+
XCTAssertEqual(foo?.package.name, "bar")
323323
}
324324
}
325325

@@ -1096,6 +1096,72 @@ final class PubgrubTests: XCTestCase {
10961096
("transitive", .version(v1))
10971097
])
10981098
}
1099+
1100+
func testDelegate() {
1101+
class TestDelegate: DependencyResolverDelegate {
1102+
var events = [String]()
1103+
let lock = Lock()
1104+
1105+
1106+
func willResolve(term: Term) {
1107+
self.lock.withLock {
1108+
self.events.append("willResolve '\(term.node.package.identity)'")
1109+
}
1110+
}
1111+
1112+
func didResolve(term: Term, version: Version) {
1113+
self.lock.withLock {
1114+
self.events.append("didResolve '\(term.node.package.identity)' at '\(version)'")
1115+
}
1116+
}
1117+
1118+
func derived(term: Term) {}
1119+
1120+
func conflict(conflict: Incompatibility) {}
1121+
1122+
func satisfied(term: Term, by: Assignment, incompatibility: Incompatibility) {}
1123+
1124+
func partiallySatisfied(term: Term, by: Assignment, incompatibility: Incompatibility, difference: Term) {}
1125+
1126+
func failedToResolve(incompatibility: Incompatibility) {}
1127+
1128+
func computed(bindings: [DependencyResolver.Binding]) {
1129+
let decision = bindings.sorted(by: { $0.package.identity < $1.package.identity }).map { "'\($0.package.identity)' at '\($0.binding)'" }
1130+
self.lock.withLock {
1131+
self.events.append("computed: \(decision.joined(separator: ", "))")
1132+
}
1133+
}
1134+
}
1135+
1136+
builder.serve("foo", at: "1.0.0")
1137+
builder.serve("foo", at: "1.1.0")
1138+
builder.serve("foo", at: "2.0.0")
1139+
builder.serve("foo", at: "2.0.1")
1140+
1141+
builder.serve("bar", at: "1.0.0")
1142+
builder.serve("bar", at: "1.1.0")
1143+
builder.serve("bar", at: "2.0.0")
1144+
builder.serve("bar", at: "2.0.1")
1145+
1146+
let delegate = TestDelegate()
1147+
let resolver = builder.create(delegate: delegate)
1148+
let dependencies = builder.create(dependencies: [
1149+
"foo": (.versionSet(v1Range), .specific(["foo"])),
1150+
"bar": (.versionSet(v2Range), .specific(["bar"])),
1151+
])
1152+
let result = resolver.solve(constraints: dependencies)
1153+
1154+
AssertResult(result, [
1155+
("foo", .version("1.1.0")),
1156+
("bar", .version("2.0.1")),
1157+
])
1158+
1159+
XCTAssertTrue(delegate.events.contains("willResolve 'foo'"), "\(delegate.events)")
1160+
XCTAssertTrue(delegate.events.contains("didResolve 'foo' at '1.1.0'"), "\(delegate.events)")
1161+
XCTAssertTrue(delegate.events.contains("willResolve 'bar'"), "\(delegate.events)")
1162+
XCTAssertTrue(delegate.events.contains("didResolve 'bar' at '2.0.1'"), "\(delegate.events)")
1163+
XCTAssertTrue(delegate.events.contains("computed: 'bar' at '2.0.1', 'foo' at '1.1.0'"), "\(delegate.events)")
1164+
}
10991165
}
11001166

11011167
final class PubGrubTestsBasicGraphs: XCTestCase {
@@ -1857,15 +1923,15 @@ private func AssertBindings(
18571923
let unexpectedBindings = bindings
18581924
.filter { binding in
18591925
packages.contains(where: { pkg in
1860-
pkg.identity != binding.container.identity
1926+
pkg.identity != binding.package.identity
18611927
})
18621928
}
1863-
.map { $0.container.identity }
1929+
.map { $0.package.identity }
18641930

18651931
XCTFail("Unexpected binding(s) found for \(unexpectedBindings.map { $0.description }.joined(separator: ", ")).", file: file, line: line)
18661932
}
18671933
for package in packages {
1868-
guard let binding = bindings.first(where: { $0.container.identity == package.identity }) else {
1934+
guard let binding = bindings.first(where: { $0.package.identity == package.identity }) else {
18691935
XCTFail("No binding found for \(package.identity).", file: file, line: line)
18701936
continue
18711937
}
@@ -1900,7 +1966,7 @@ private func AssertError(
19001966
) {
19011967
switch result {
19021968
case .success(let bindings):
1903-
let bindingsDesc = bindings.map { "\($0.container)@\($0.binding)" }.joined(separator: ", ")
1969+
let bindingsDesc = bindings.map { "\($0.package)@\($0.binding)" }.joined(separator: ", ")
19041970
XCTFail("Expected unresolvable graph, found bindings instead: \(bindingsDesc)", file: file, line: line)
19051971
case .failure(let foundError):
19061972
XCTAssertEqual(String(describing: foundError), String(describing: expectedError), file: file, line: line)
@@ -2147,12 +2213,16 @@ class DependencyGraphBuilder {
21472213
}
21482214

21492215
func create(pinsMap: PinsStore.PinsMap = [:], log: Bool = false) -> PubgrubDependencyResolver {
2216+
let delegate = log ? TracingDependencyResolverDelegate(stream: stdoutStream) : nil
2217+
return self.create(pinsMap: pinsMap, delegate: delegate)
2218+
}
2219+
2220+
func create(pinsMap: PinsStore.PinsMap = [:], delegate: DependencyResolverDelegate?) -> PubgrubDependencyResolver {
21502221
defer {
21512222
self.containers = [:]
21522223
self.references = [:]
21532224
}
21542225
let provider = MockProvider(containers: self.containers.values.map { $0 })
2155-
let delegate = log ? TracingDependencyResolverDelegate(stream: stdoutStream) : nil
21562226
return PubgrubDependencyResolver(provider :provider, pinsMap: pinsMap, delegate: delegate)
21572227
}
21582228
}

0 commit comments

Comments
 (0)