Skip to content

Commit 4f81d4b

Browse files
committed
[PackageGraph] Ensure container is of the RepositoryContainer type
... when diagnosing unavailable versions. <rdar://problem/51183216>
1 parent a465d93 commit 4f81d4b

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

Sources/PackageGraph/DependencyResolver.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,13 @@ public protocol PackageContainer {
316316
/// after the container is available. The updated identifier is returned in result of the
317317
/// dependency resolution.
318318
func getUpdatedIdentifier(at boundVersion: BoundVersion) throws -> PackageReference
319+
320+
/// Hack for the old resolver. Don't use.
321+
var _isRemoteContainer: Bool? { get }
322+
}
323+
324+
extension PackageContainer {
325+
public var _isRemoteContainer: Bool? { return nil }
319326
}
320327

321328
/// An interface for resolving package containers.
@@ -1006,6 +1013,8 @@ public class DependencyResolver {
10061013
let constraintsWithNoAvailableVersions = constraints.filter { constraint in
10071014
if case .versionSet(let versions) = constraint.requirement,
10081015
let container = try? getContainer(for: constraint.identifier),
1016+
// FIXME: This is hacky but we should be moving away from this resolver anyway.
1017+
container._isRemoteContainer == true,
10091018
!container.versions(filter: versions.contains).contains(where: { _ in true }) {
10101019
return true
10111020
}

Sources/PackageGraph/RepositoryPackageContainerProvider.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,10 @@ public class RepositoryPackageContainer: BasePackageContainer, CustomStringConve
324324
return "RepositoryPackageContainer(\(identifier.repository.url.debugDescription))"
325325
}
326326

327+
public var _isRemoteContainer: Bool {
328+
return true
329+
}
330+
327331
public func getTag(for version: Version) -> String? {
328332
return knownVersions[version]
329333
}

Sources/TestSupport/MockDependencyResolver.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@ public class MockPackageContainer: PackageContainer {
149149
self._versions = versions.sorted().reversed()
150150
self.dependencies = dependencies
151151
}
152+
153+
public var _isRemoteContainer: Bool? {
154+
return true
155+
}
152156
}
153157

154158
public class MockPackageContainer2: MockPackageContainer {

0 commit comments

Comments
 (0)