Skip to content

Commit 78c68fe

Browse files
committed
Remove all extraneous uses of provided libraries throughout code base
Only workspace and PubGrub dependency resolver need to know about provided libraries. Post-resolution everything acts based on managed dependencies and package identifiers.
1 parent 6d7e795 commit 78c68fe

14 files changed

+12
-95
lines changed

Sources/Commands/PackageCommands/EditCommands.swift

-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ extension SwiftPackageCommand {
7474
packageName: packageName,
7575
forceRemove: shouldForceRemove,
7676
root: swiftCommandState.getWorkspaceRoot(),
77-
availableLibraries: swiftCommandState.getHostToolchain().providedLibraries,
7877
observabilityScope: swiftCommandState.observabilityScope
7978
)
8079
}

Sources/CoreCommands/SwiftCommandState.swift

-1
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,6 @@ package final class SwiftCommandState {
607607
explicitProduct: explicitProduct,
608608
forceResolvedVersions: options.resolver.forceResolvedVersions,
609609
testEntryPointPath: testEntryPointPath,
610-
availableLibraries: self.getHostToolchain().providedLibraries,
611610
observabilityScope: self.observabilityScope
612611
)
613612

Sources/PackageGraph/ModulesGraph.swift

-1
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,6 @@ public func loadModulesGraph(
490490
shouldCreateMultipleTestProducts: shouldCreateMultipleTestProducts,
491491
createREPLProduct: createREPLProduct,
492492
customXCTestMinimumDeploymentTargets: customXCTestMinimumDeploymentTargets,
493-
availableLibraries: [],
494493
fileSystem: fileSystem,
495494
observabilityScope: observabilityScope
496495
)

Sources/PackageGraph/ProvidedLibraryPackageContainer.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ public struct ProvidedLibraryPackageContainer: PackageContainer {
4646
}
4747

4848
public func toolsVersion(for version: Version) throws -> ToolsVersion {
49-
.v6_0
49+
.v4
5050
}
5151

5252
public func toolsVersionsAppropriateVersionsDescending() throws -> [Version] {
5353
return try versionsDescending()
5454
}
5555

5656
public func versionsAscending() throws -> [Version] {
57-
[] // TODO
57+
[]
5858
}
5959

6060
public func getDependencies(at version: Version, productFilter: ProductFilter) throws -> [PackageContainerConstraint] {

Sources/PackageGraph/Resolution/PubGrub/ContainerProvider.swift

+2-5
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,9 @@ final class ContainerProvider {
115115
}
116116

117117
/// Starts prefetching the given containers.
118-
func prefetch(containers identifiers: [PackageReference], availableLibraries: [ProvidedLibrary]) {
119-
let filteredIdentifiers = identifiers.filter {
120-
$0.matchingPrebuiltLibrary(in: availableLibraries) == nil
121-
}
118+
func prefetch(containers identifiers: [PackageReference]) {
122119
// Process each container.
123-
for identifier in filteredIdentifiers {
120+
for identifier in identifiers {
124121
var needsFetching = false
125122
self.prefetches.memoize(identifier) {
126123
let group = DispatchGroup()

Sources/PackageGraph/Resolution/PubGrub/PubGrubDependencyResolver.swift

+4-3
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public struct PubGrubDependencyResolver {
203203
let pins = self.pins.values
204204
.map(\.packageRef)
205205
.filter { !inputs.overriddenPackages.keys.contains($0) }
206-
self.provider.prefetch(containers: pins, availableLibraries: self.availableLibraries)
206+
self.provider.prefetch(containers: pins)
207207
}
208208

209209
let state = State(root: root, overriddenPackages: inputs.overriddenPackages)
@@ -500,8 +500,9 @@ public struct PubGrubDependencyResolver {
500500

501501
// initiate prefetch of known packages that will be used to make the decision on the next step
502502
self.provider.prefetch(
503-
containers: state.solution.undecided.map(\.node.package),
504-
availableLibraries: self.availableLibraries
503+
containers: state.solution.undecided.map(\.node.package).filter {
504+
$0.matchingPrebuiltLibrary(in: self.availableLibraries) == nil
505+
}
505506
)
506507

507508
// If decision making determines that no more decisions are to be

Sources/SPMTestSupport/MockWorkspace.swift

-6
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,6 @@ package final class MockWorkspace {
368368
packageName: packageName,
369369
forceRemove: forceRemove,
370370
root: rootInput,
371-
availableLibraries: [], // assume no provided libraries for testing.
372371
observabilityScope: observability.topScope
373372
)
374373
}
@@ -467,7 +466,6 @@ package final class MockWorkspace {
467466
let graph = try workspace.loadPackageGraph(
468467
rootInput: rootInput,
469468
forceResolvedVersions: forceResolvedVersions,
470-
availableLibraries: [], // assume no provided libraries for testing.
471469
expectedSigningEntities: expectedSigningEntities,
472470
observabilityScope: observability.topScope
473471
)
@@ -506,7 +504,6 @@ package final class MockWorkspace {
506504
try workspace.loadPackageGraph(
507505
rootInput: rootInput,
508506
forceResolvedVersions: forceResolvedVersions,
509-
availableLibraries: [], // assume no provided libraries for testing.
510507
observabilityScope: observability.topScope
511508
)
512509
}
@@ -532,7 +529,6 @@ package final class MockWorkspace {
532529

533530
let dependencyManifests = try workspace.loadDependencyManifests(
534531
root: root,
535-
availableLibraries: [], // assume no provided libraries for testing.
536532
observabilityScope: observability.topScope
537533
)
538534

@@ -541,7 +537,6 @@ package final class MockWorkspace {
541537
dependencyManifests: dependencyManifests,
542538
pinsStore: pinsStore,
543539
constraints: [],
544-
availableLibraries: [], // assume no provided libraries for testing.
545540
observabilityScope: observability.topScope
546541
)
547542

@@ -752,7 +747,6 @@ package final class MockWorkspace {
752747
let graphRoot = PackageGraphRoot(input: rootInput, manifests: rootManifests, observabilityScope: observability.topScope)
753748
let manifests = try workspace.loadDependencyManifests(
754749
root: graphRoot,
755-
availableLibraries: [], // assume no provided libraries for testing.
756750
observabilityScope: observability.topScope
757751
)
758752
result(manifests, observability.diagnostics)

Sources/Workspace/Workspace+Dependencies.swift

+2-23
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ extension Workspace {
5858
root: PackageGraphRootInput,
5959
packages: [String] = [],
6060
dryRun: Bool = false,
61-
availableLibraries: [ProvidedLibrary],
6261
observabilityScope: ObservabilityScope
6362
) throws -> [(PackageReference, Workspace.PackageStateChange)]? {
6463
let start = DispatchTime.now()
@@ -89,7 +88,6 @@ extension Workspace {
8988
)
9089
let currentManifests = try self.loadDependencyManifests(
9190
root: graphRoot,
92-
availableLibraries: availableLibraries,
9391
observabilityScope: observabilityScope
9492
)
9593

@@ -124,7 +122,6 @@ extension Workspace {
124122
// Resolve the dependencies.
125123
let resolver = try self.createResolver(
126124
pins: pins,
127-
availableLibraries: availableLibraries,
128125
observabilityScope: observabilityScope
129126
)
130127
self.activeResolver = resolver
@@ -167,7 +164,6 @@ extension Workspace {
167164
// Load the updated manifests.
168165
let updatedDependencyManifests = try self.loadDependencyManifests(
169166
root: graphRoot,
170-
availableLibraries: availableLibraries,
171167
observabilityScope: observabilityScope
172168
)
173169
// If we have missing packages, something is fundamentally wrong with the resolution of the graph
@@ -201,7 +197,6 @@ extension Workspace {
201197
func _resolve(
202198
root: PackageGraphRootInput,
203199
explicitProduct: String?,
204-
availableLibraries: [ProvidedLibrary],
205200
resolvedFileStrategy: ResolvedFileStrategy,
206201
observabilityScope: ObservabilityScope
207202
) throws -> DependencyManifests {
@@ -217,7 +212,6 @@ extension Workspace {
217212
return try self._resolveBasedOnResolvedVersionsFile(
218213
root: root,
219214
explicitProduct: explicitProduct,
220-
availableLibraries: availableLibraries,
221215
observabilityScope: observabilityScope
222216
)
223217
case .update(let forceResolution):
@@ -254,7 +248,6 @@ extension Workspace {
254248
let (manifests, precomputationResult) = try self.tryResolveBasedOnResolvedVersionsFile(
255249
root: root,
256250
explicitProduct: explicitProduct,
257-
availableLibraries: availableLibraries,
258251
observabilityScope: observabilityScope
259252
)
260253
switch precomputationResult {
@@ -278,7 +271,6 @@ extension Workspace {
278271
return try self.resolveAndUpdateResolvedFile(
279272
root: root,
280273
explicitProduct: explicitProduct,
281-
availableLibraries: availableLibraries,
282274
forceResolution: forceResolution,
283275
constraints: [],
284276
observabilityScope: observabilityScope
@@ -305,13 +297,11 @@ extension Workspace {
305297
func _resolveBasedOnResolvedVersionsFile(
306298
root: PackageGraphRootInput,
307299
explicitProduct: String?,
308-
availableLibraries: [ProvidedLibrary],
309300
observabilityScope: ObservabilityScope
310301
) throws -> DependencyManifests {
311302
let (manifests, precomputationResult) = try self.tryResolveBasedOnResolvedVersionsFile(
312303
root: root,
313304
explicitProduct: explicitProduct,
314-
availableLibraries: availableLibraries,
315305
observabilityScope: observabilityScope
316306
)
317307
switch precomputationResult {
@@ -344,7 +334,6 @@ extension Workspace {
344334
fileprivate func tryResolveBasedOnResolvedVersionsFile(
345335
root: PackageGraphRootInput,
346336
explicitProduct: String?,
347-
availableLibraries: [ProvidedLibrary],
348337
observabilityScope: ObservabilityScope
349338
) throws -> (DependencyManifests, ResolutionPrecomputationResult) {
350339
// Ensure the cache path exists.
@@ -371,7 +360,6 @@ extension Workspace {
371360
return try (
372361
self.loadDependencyManifests(
373362
root: graphRoot,
374-
availableLibraries: availableLibraries,
375363
observabilityScope: observabilityScope
376364
),
377365
.notRequired
@@ -464,7 +452,6 @@ extension Workspace {
464452
let currentManifests = try self.loadDependencyManifests(
465453
root: graphRoot,
466454
automaticallyAddManagedDependencies: true,
467-
availableLibraries: availableLibraries,
468455
observabilityScope: observabilityScope
469456
)
470457

@@ -479,7 +466,6 @@ extension Workspace {
479466
dependencyManifests: currentManifests,
480467
pinsStore: pinsStore,
481468
constraints: [],
482-
availableLibraries: availableLibraries,
483469
observabilityScope: observabilityScope
484470
)
485471

@@ -496,7 +482,6 @@ extension Workspace {
496482
func resolveAndUpdateResolvedFile(
497483
root: PackageGraphRootInput,
498484
explicitProduct: String? = nil,
499-
availableLibraries: [ProvidedLibrary],
500485
forceResolution: Bool,
501486
constraints: [PackageContainerConstraint],
502487
observabilityScope: ObservabilityScope
@@ -524,7 +509,6 @@ extension Workspace {
524509
)
525510
let currentManifests = try self.loadDependencyManifests(
526511
root: graphRoot,
527-
availableLibraries: availableLibraries,
528512
observabilityScope: observabilityScope
529513
)
530514
guard !observabilityScope.errorsReported else {
@@ -561,7 +545,6 @@ extension Workspace {
561545
dependencyManifests: currentManifests,
562546
pinsStore: pinsStore,
563547
constraints: constraints,
564-
availableLibraries: availableLibraries,
565548
observabilityScope: observabilityScope
566549
)
567550

@@ -597,7 +580,6 @@ extension Workspace {
597580
// Perform dependency resolution.
598581
let resolver = try self.createResolver(
599582
pins: pinsStore.pins,
600-
availableLibraries: availableLibraries,
601583
observabilityScope: observabilityScope
602584
)
603585
self.activeResolver = resolver
@@ -628,7 +610,6 @@ extension Workspace {
628610
// Update the pinsStore.
629611
let updatedDependencyManifests = try self.loadDependencyManifests(
630612
root: graphRoot,
631-
availableLibraries: availableLibraries,
632613
observabilityScope: observabilityScope
633614
)
634615
// If we still have missing packages, something is fundamentally wrong with the resolution of the graph
@@ -850,7 +831,6 @@ extension Workspace {
850831
dependencyManifests: DependencyManifests,
851832
pinsStore: PinsStore,
852833
constraints: [PackageContainerConstraint],
853-
availableLibraries: [ProvidedLibrary],
854834
observabilityScope: ObservabilityScope
855835
) throws -> ResolutionPrecomputationResult {
856836
let computedConstraints =
@@ -867,7 +847,7 @@ extension Workspace {
867847
let resolver = PubGrubDependencyResolver(
868848
provider: precomputationProvider,
869849
pins: pinsStore.pins,
870-
availableLibraries: availableLibraries,
850+
availableLibraries: self.providedLibraries,
871851
observabilityScope: observabilityScope
872852
)
873853
let result = resolver.solve(constraints: computedConstraints)
@@ -1145,7 +1125,6 @@ extension Workspace {
11451125
/// Creates resolver for the workspace.
11461126
fileprivate func createResolver(
11471127
pins: PinsStore.Pins,
1148-
availableLibraries: [ProvidedLibrary],
11491128
observabilityScope: ObservabilityScope
11501129
) throws -> PubGrubDependencyResolver {
11511130
var delegate: DependencyResolverDelegate
@@ -1162,7 +1141,7 @@ extension Workspace {
11621141
return PubGrubDependencyResolver(
11631142
provider: packageContainerProvider,
11641143
pins: pins,
1165-
availableLibraries: availableLibraries,
1144+
availableLibraries: self.providedLibraries,
11661145
skipDependenciesUpdates: self.configuration.skipDependenciesUpdates,
11671146
prefetchBasedOnResolvedFile: self.configuration.prefetchBasedOnResolvedFile,
11681147
observabilityScope: observabilityScope,

Sources/Workspace/Workspace+Editing.swift

-2
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ extension Workspace {
173173
dependency: ManagedDependency,
174174
forceRemove: Bool,
175175
root: PackageGraphRootInput? = nil,
176-
availableLibraries: [ProvidedLibrary],
177176
observabilityScope: ObservabilityScope
178177
) throws {
179178
// Compute if we need to force remove.
@@ -238,7 +237,6 @@ extension Workspace {
238237
try self._resolve(
239238
root: root,
240239
explicitProduct: .none,
241-
availableLibraries: availableLibraries,
242240
resolvedFileStrategy: .update(forceResolution: false),
243241
observabilityScope: observabilityScope
244242
)

0 commit comments

Comments
 (0)