Skip to content

Commit ec680ec

Browse files
committed
NFC: Remove .providedLibrary from PackageReference and its package container
Dependency resolution is switched to use `BoundVersion` to carry provided library information, `.providedLibrary` is fully obsolete.
1 parent 0486f94 commit ec680ec

19 files changed

+4
-191
lines changed

Sources/Build/BuildPlan/BuildPlan.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,7 @@ extension ResolvedPackage {
740740
switch self.underlying.manifest.packageKind {
741741
case .registry, .remoteSourceControl, .localSourceControl:
742742
return true
743-
case .root, .fileSystem, .providedLibrary:
743+
case .root, .fileSystem:
744744
return false
745745
}
746746
}

Sources/PackageGraph/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ add_library(PackageGraph
2020
PackageModel+Extensions.swift
2121
PackageRequirement.swift
2222
PinsStore.swift
23-
ProvidedLibraryPackageContainer.swift
2423
Resolution/PubGrub/Assignment.swift
2524
Resolution/PubGrub/ContainerProvider.swift
2625
Resolution/PubGrub/DiagnosticReportBuilder.swift

Sources/PackageGraph/ModulesGraph.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,6 @@ extension PackageGraphError: CustomStringConvertible {
362362
description += " (at '\(path)')"
363363
case .remoteSourceControl(let url):
364364
description += " (from '\(url)')"
365-
case .providedLibrary(let url, let path):
366-
description += " (from \(url) at \(path))"
367365
case .registry:
368366
break
369367
}

Sources/PackageGraph/ProvidedLibraryPackageContainer.swift

Lines changed: 0 additions & 75 deletions
This file was deleted.

Sources/PackageGraph/Resolution/PubGrub/ContainerProvider.swift

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,6 @@ final class ContainerProvider {
9898
let result = result.tryMap { container -> PubGrubPackageContainer in
9999
let pubGrubContainer = PubGrubPackageContainer(underlying: container, pins: self.pins)
100100

101-
// This container is not cached because it's intended to be transparent
102-
// and requested only when forming final assignments. Caching it would
103-
// mean that subsequent calls to `solve` would pick it up.
104-
if case .providedLibrary = package.kind {
105-
return pubGrubContainer
106-
}
107-
108101
// only cache positive results
109102
self.containersCache[package] = pubGrubContainer
110103
return pubGrubContainer

Sources/PackageGraph/Resolution/PubGrub/PubGrubDependencyResolver.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ extension PackageRequirement {
895895
extension PackageReference {
896896
public func matchingPrebuiltLibrary(in availableLibraries: [ProvidedLibrary]) -> ProvidedLibrary? {
897897
switch self.kind {
898-
case .fileSystem, .localSourceControl, .root, .providedLibrary:
898+
case .fileSystem, .localSourceControl, .root:
899899
return nil // can never match a prebuilt library
900900
case .registry(let identity):
901901
if let registryIdentity = identity.registry {

Sources/PackageLoading/ManifestJSONParser.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ enum ManifestJSONParser {
8383
case .localSourceControl(let _packagePath):
8484
// we have a more accurate path than the virtual one
8585
packagePath = _packagePath
86-
case .root(let _packagePath), .fileSystem(let _packagePath), .providedLibrary(_, let _packagePath):
86+
case .root(let _packagePath), .fileSystem(let _packagePath):
8787
// we dont have a more accurate path, and they should be the same
8888
// asserting (debug only) to make sure refactoring is correct 11/2023
8989
assert(packagePath == _packagePath, "expecting package path '\(packagePath)' to be the same as '\(_packagePath)'")

Sources/PackageModel/IdentityResolver.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ public struct DefaultIdentityResolver: IdentityResolver {
4646
return try self.resolveIdentity(for: url)
4747
case .registry(let identity):
4848
return identity
49-
case .providedLibrary(let url, _):
50-
return try self.resolveIdentity(for: url)
5149
}
5250
}
5351

Sources/PackageModel/PackageReference.swift

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ public struct PackageReference {
3434
/// A package from a registry.
3535
case registry(PackageIdentity)
3636

37-
/// A prebuilt library provided by a toolchain for a package identified by the given "origin" URL.
38-
case providedLibrary(SourceControlURL, AbsolutePath)
39-
4037
// FIXME: we should not need this once we migrate off URLs
4138
//@available(*, deprecated)
4239
public var locationString: String {
@@ -52,8 +49,6 @@ public struct PackageReference {
5249
case .registry(let identity):
5350
// FIXME: this is a placeholder
5451
return identity.description
55-
case .providedLibrary(let url, _):
56-
return url.absoluteString
5752
}
5853
}
5954

@@ -75,8 +70,6 @@ public struct PackageReference {
7570
return "remoteSourceControl \(url)"
7671
case .registry(let identity):
7772
return "registry \(identity)"
78-
case .providedLibrary(let url, let path):
79-
return "provided library for \(url) @ \(path)"
8073
}
8174
}
8275

@@ -131,8 +124,6 @@ public struct PackageReference {
131124
case .registry(let identity):
132125
// FIXME: this is a placeholder
133126
self.deprecatedName = name ?? identity.description
134-
case .providedLibrary(let url, _):
135-
self.deprecatedName = name ?? PackageIdentityParser.computeDefaultName(fromURL: url)
136127
}
137128
}
138129

@@ -160,14 +151,6 @@ public struct PackageReference {
160151
public static func registry(identity: PackageIdentity) -> PackageReference {
161152
PackageReference(identity: identity, kind: .registry(identity))
162153
}
163-
164-
public static func providedLibrary(
165-
identity: PackageIdentity,
166-
origin: SourceControlURL,
167-
path: AbsolutePath
168-
) -> PackageReference {
169-
PackageReference(identity: identity, kind: .providedLibrary(origin, path))
170-
}
171154
}
172155

173156
extension PackageReference: Equatable {
@@ -187,11 +170,6 @@ extension PackageReference: Equatable {
187170
switch (self.kind, other.kind) {
188171
case (.remoteSourceControl(let lurl), .remoteSourceControl(let rurl)):
189172
return lurl.canonicalURL == rurl.canonicalURL
190-
case (.remoteSourceControl(let lurl), .providedLibrary(let rurl, _)),
191-
(.providedLibrary(let lurl, _), .remoteSourceControl(let rurl)):
192-
return lurl.canonicalURL == rurl.canonicalURL
193-
case (.providedLibrary(_, let lpath), .providedLibrary(_, let rpath)):
194-
return lpath == rpath
195173
default:
196174
return true
197175
}
@@ -246,10 +224,6 @@ extension PackageReference.Kind: Encodable {
246224
case .registry:
247225
var unkeyedContainer = container.nestedUnkeyedContainer(forKey: .registry)
248226
try unkeyedContainer.encode(self.isRoot)
249-
case .providedLibrary(let url, let path):
250-
var unkeyedContainer = container.nestedUnkeyedContainer(forKey: .providedLibrary)
251-
try unkeyedContainer.encode(url)
252-
try unkeyedContainer.encode(path)
253227
}
254228
}
255229
}

Sources/SPMBuildCore/Plugins/PluginContextSerializer.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,6 @@ internal struct PluginContextSerializer {
240240
return .repository(url: url.absoluteString, displayVersion: String(describing: package.manifest.version), scmRevision: String(describing: package.manifest.revision))
241241
case .registry(let identity):
242242
return .registry(identity: identity.description, displayVersion: String(describing: package.manifest.version))
243-
case .providedLibrary(_, _):
244-
throw InternalError("provided libraries are not supported in plugin context")
245243
}
246244
}
247245

Sources/SPMTestSupport/MockManifestLoader.swift

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,6 @@ extension ManifestLoader {
109109
packageIdentity = identity
110110
// FIXME: placeholder
111111
packageLocation = identity.description
112-
case .providedLibrary(let url, let path):
113-
packageIdentity = try identityResolver.resolveIdentity(for: url)
114-
packageLocation = path.pathString
115112
}
116113
return try await self.load(
117114
manifestPath: manifestPath,
@@ -159,9 +156,6 @@ extension ManifestLoader {
159156
packageIdentity = identity
160157
// FIXME: placeholder
161158
packageLocation = identity.description
162-
case .providedLibrary(let url, let path):
163-
packageIdentity = try identityResolver.resolveIdentity(for: url)
164-
packageLocation = path.pathString
165159
}
166160
return try await self.load(
167161
packagePath: packagePath,

Sources/SPMTestSupport/MockWorkspace.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,8 +1035,6 @@ extension PackageReference.Kind {
10351035
return "remoteSourceControl"
10361036
case .registry:
10371037
return "registry"
1038-
case .providedLibrary:
1039-
return "library"
10401038
}
10411039
}
10421040
}

Sources/Workspace/Diagnostics.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ extension Basics.Diagnostic {
183183
switch $0.kind {
184184
case .registry(let identity):
185185
return "'\(identity.description)'"
186-
case .remoteSourceControl(let url), .providedLibrary(let url, _):
186+
case .remoteSourceControl(let url):
187187
return "'\($0.identity)' from \(url)"
188188
case .localSourceControl(let path), .fileSystem(let path), .root(let path):
189189
return "'\($0.identity)' at \(path)"

Sources/Workspace/Workspace+Dependencies.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import struct PackageGraph.ObservabilityDependencyResolverDelegate
3333
import struct PackageGraph.PackageContainerConstraint
3434
import struct PackageGraph.PackageGraphRoot
3535
import struct PackageGraph.PackageGraphRootInput
36-
import struct PackageGraph.ProvidedLibraryPackageContainer
3736
import class PackageGraph.PinsStore
3837
import struct PackageGraph.PubGrubDependencyResolver
3938
import struct PackageGraph.Term

Sources/Workspace/Workspace+PackageContainer.swift

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import enum PackageFingerprint.FingerprintCheckingMode
1717
import enum PackageGraph.ContainerUpdateStrategy
1818
import protocol PackageGraph.PackageContainer
1919
import protocol PackageGraph.PackageContainerProvider
20-
import struct PackageGraph.ProvidedLibraryPackageContainer
2120
import struct PackageModel.PackageReference
2221

2322
// MARK: - Package container provider
@@ -94,14 +93,6 @@ extension Workspace: PackageContainerProvider {
9493
queue.async {
9594
completion(.success(container))
9695
}
97-
98-
case .providedLibrary:
99-
let container = try ProvidedLibraryPackageContainer(
100-
package: package,
101-
observabilityScope: observabilityScope)
102-
queue.async {
103-
completion(.success(container))
104-
}
10596
}
10697
} catch {
10798
queue.async {

0 commit comments

Comments
 (0)