Skip to content

Commit a4ffb66

Browse files
committed
wip
1 parent d178289 commit a4ffb66

40 files changed

+979
-1072
lines changed

Sources/Commands/Snippets/Cards/SnippetCard.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ struct SnippetCard: Card {
8787

8888
func runExample() throws {
8989
print("Building '\(snippet.path)'\n")
90-
let buildSystem = try swiftTool.createBuildSystem(explicitProduct: snippet.name)
90+
let buildSystem = try swiftTool.createBuildSystem()
9191
try buildSystem.build(subset: .product(snippet.name))
9292
let executablePath = try swiftTool.buildParameters().buildPath.appending(component: snippet.name)
9393
if let exampleTarget = try buildSystem.getPackageGraph().allTargets.first(where: { $0.name == snippet.name }) {

Sources/Commands/SwiftBuildTool.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public struct SwiftBuildTool: SwiftCommand {
104104
guard let subset = options.buildSubset(observabilityScope: swiftTool.observabilityScope) else {
105105
throw ExitCode.failure
106106
}
107-
let buildSystem = try swiftTool.createBuildSystem(explicitProduct: options.product)
107+
let buildSystem = try swiftTool.createBuildSystem()
108108
do {
109109
try buildSystem.build(subset: subset)
110110
} catch _ as Diagnostics {

Sources/Commands/SwiftPackageTool.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ extension SwiftPackageTool {
180180
let builder = PackageBuilder(
181181
identity: .plain(rootManifest.name),
182182
manifest: rootManifest,
183-
productFilter: .everything,
184183
path: try swiftTool.getPackageRoot(),
185184
xcTestMinimumDeploymentTargets: MinimumDeploymentTarget.default.xcTestMinimumDeploymentTargets,
186185
fileSystem: localFileSystem,
@@ -284,7 +283,6 @@ extension SwiftPackageTool {
284283
let builder = PackageBuilder(
285284
identity: .plain(rootManifest.name),
286285
manifest: rootManifest,
287-
productFilter: .everything,
288286
path: try swiftTool.getPackageRoot(),
289287
xcTestMinimumDeploymentTargets: [:], // Minimum deployment target does not matter for this operation.
290288
fileSystem: localFileSystem,

Sources/Commands/SwiftRunTool.swift

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,7 @@ public struct SwiftRunTool: SwiftCommand {
111111
case .repl:
112112
// Load a custom package graph which has a special product for REPL.
113113
let graphLoader = {
114-
try swiftTool.loadPackageGraph(
115-
explicitProduct: self.options.executable,
116-
createREPLProduct: true)
114+
try swiftTool.loadPackageGraph(createREPLProduct: true)
117115
}
118116
let buildParameters = try swiftTool.buildParameters()
119117

@@ -145,7 +143,7 @@ public struct SwiftRunTool: SwiftCommand {
145143

146144
case .debugger:
147145
do {
148-
let buildSystem = try swiftTool.createBuildSystem(explicitProduct: options.executable)
146+
let buildSystem = try swiftTool.createBuildSystem()
149147
let productName = try findProductName(in: buildSystem.getPackageGraph())
150148
if options.shouldBuildTests {
151149
try buildSystem.build(subset: .allIncludingTests)
@@ -189,7 +187,7 @@ public struct SwiftRunTool: SwiftCommand {
189187
swiftTool.redirectStdoutToStderr()
190188

191189
do {
192-
let buildSystem = try swiftTool.createBuildSystem(explicitProduct: options.executable)
190+
let buildSystem = try swiftTool.createBuildSystem()
193191
let productName = try findProductName(in: buildSystem.getPackageGraph())
194192
if options.shouldBuildTests {
195193
try buildSystem.build(subset: .allIncludingTests)

Sources/Commands/SwiftTool.swift

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -694,11 +694,8 @@ public class SwiftTool {
694694

695695
/// Fetch and load the complete package graph.
696696
///
697-
/// - Parameters:
698-
/// - explicitProduct: The product specified on the command line to a “swift run” or “swift build” command. This allows executables from dependencies to be run directly without having to hook them up to any particular target.
699697
@discardableResult
700698
func loadPackageGraph(
701-
explicitProduct: String? = nil,
702699
createMultipleTestProducts: Bool = false,
703700
createREPLProduct: Bool = false
704701
) throws -> PackageGraph {
@@ -708,7 +705,6 @@ public class SwiftTool {
708705
// Fetch and load the package graph.
709706
let graph = try workspace.loadPackageGraph(
710707
rootInput: getWorkspaceRoot(),
711-
explicitProduct: explicitProduct,
712708
createMultipleTestProducts: createMultipleTestProducts,
713709
createREPLProduct: createREPLProduct,
714710
forceResolvedVersions: options.forceResolvedVersions,
@@ -806,9 +802,9 @@ public class SwiftTool {
806802
return true
807803
}
808804

809-
func createBuildOperation(explicitProduct: String? = nil, cacheBuildManifest: Bool = true) throws -> BuildOperation {
805+
func createBuildOperation(cacheBuildManifest: Bool = true) throws -> BuildOperation {
810806
// Load a custom package graph which has a special product for REPL.
811-
let graphLoader = { try self.loadPackageGraph(explicitProduct: explicitProduct) }
807+
let graphLoader = { try self.loadPackageGraph() }
812808

813809
// Construct the build operation.
814810
let buildOp = try BuildOperation(
@@ -827,11 +823,11 @@ public class SwiftTool {
827823
return buildOp
828824
}
829825

830-
func createBuildSystem(explicitProduct: String? = nil, buildParameters: BuildParameters? = nil) throws -> BuildSystem {
826+
func createBuildSystem(buildParameters: BuildParameters? = nil) throws -> BuildSystem {
831827
let buildSystem: BuildSystem
832828
switch options.buildSystem {
833829
case .native:
834-
let graphLoader = { try self.loadPackageGraph(explicitProduct: explicitProduct) }
830+
let graphLoader = { try self.loadPackageGraph() }
835831
let pluginInvoker = { try self.invokePlugins(graph: $0) }
836832
buildSystem = try BuildOperation(
837833
buildParameters: buildParameters ?? self.buildParameters(),
@@ -844,7 +840,7 @@ public class SwiftTool {
844840
observabilityScope: self.observabilityScope
845841
)
846842
case .xcode:
847-
let graphLoader = { try self.loadPackageGraph(explicitProduct: explicitProduct, createMultipleTestProducts: true) }
843+
let graphLoader = { try self.loadPackageGraph(createMultipleTestProducts: true) }
848844
// FIXME: Implement the custom build command provider also.
849845
buildSystem = try XcodeBuildSystem(
850846
buildParameters: buildParameters ?? self.buildParameters(),

Sources/PackageGraph/DependencyResolutionNode.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import TSCBasic
1212
import PackageModel
1313
import struct TSCUtility.Version
1414

15+
/*
1516
/// A node in the dependency resolution graph.
1617
///
1718
/// See the documentation of each case for more detailed descriptions of each kind and how they interact.
@@ -133,3 +134,4 @@ extension DependencyResolutionNode: CustomStringConvertible {
133134
return "\(package.name)\(productFilter)"
134135
}
135136
}
137+
*/

Sources/PackageGraph/DependencyResolver.swift

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import PackageModel
1313
import TSCBasic
1414

1515
public protocol DependencyResolver {
16-
typealias Binding = (package: PackageReference, binding: BoundVersion, products: ProductFilter)
16+
typealias Binding = (package: PackageReference, binding: BoundVersion)
1717
typealias Delegate = DependencyResolverDelegate
1818
}
1919

@@ -55,15 +55,15 @@ public struct TracingDependencyResolverDelegate: DependencyResolverDelegate {
5555
}
5656

5757
public func willResolve(term: Term) {
58-
self.log("resolving: \(term.node.package.identity)")
58+
self.log("resolving: \(term.package.identity)")
5959
}
6060

6161
public func didResolve(term: Term, version: Version, duration: DispatchTimeInterval) {
62-
self.log("resolved: \(term.node.package.identity) @ \(version)")
62+
self.log("resolved: \(term.package.identity) @ \(version)")
6363
}
6464

6565
public func derived(term: Term) {
66-
self.log("derived: \(term.node.package.identity)")
66+
self.log("derived: \(term.package.identity)")
6767
}
6868

6969
public func conflict(conflict: Incompatibility) {
@@ -88,7 +88,7 @@ public struct TracingDependencyResolverDelegate: DependencyResolverDelegate {
8888

8989
public func solved(result: [DependencyResolver.Binding]) {
9090
self.log("solved:")
91-
for (package, binding, _) in result {
91+
for (package, binding) in result {
9292
self.log("\(package) \(binding)")
9393
}
9494
}
@@ -134,8 +134,7 @@ public struct MultiplexResolverDelegate: DependencyResolverDelegate {
134134
underlying.forEach { $0.failedToResolve(incompatibility: incompatibility) }
135135
}
136136

137-
public func solved(result: [(package: PackageReference, binding: BoundVersion, products: ProductFilter)]) {
137+
public func solved(result: [(package: PackageReference, binding: BoundVersion)]) {
138138
underlying.forEach { $0.solved(result: result) }
139139
}
140-
141140
}

Sources/PackageGraph/GraphLoadingNode.swift

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import TSCBasic
1717
/// This node uses the product filter that was already finalized during resolution.
1818
///
1919
/// - SeeAlso: DependencyResolutionNode
20+
// FIXME: tomer deprecate or replace withe some other manifest envelope
2021
public struct GraphLoadingNode: Equatable, Hashable {
2122

2223
/// The package identity.
@@ -25,28 +26,20 @@ public struct GraphLoadingNode: Equatable, Hashable {
2526
/// The package manifest.
2627
public let manifest: Manifest
2728

28-
/// The product filter applied to the package.
29-
public let productFilter: ProductFilter
30-
31-
public init(identity: PackageIdentity, manifest: Manifest, productFilter: ProductFilter) {
29+
public init(identity: PackageIdentity, manifest: Manifest) {
3230
self.identity = identity
3331
self.manifest = manifest
34-
self.productFilter = productFilter
32+
//self.productFilter = productFilter
3533
}
3634

3735
/// Returns the dependencies required by this node.
3836
internal func requiredDependencies() -> [PackageDependency] {
39-
return manifest.dependenciesRequired(for: productFilter)
37+
return self.manifest.requiredDependencies()
4038
}
4139
}
4240

4341
extension GraphLoadingNode: CustomStringConvertible {
4442
public var description: String {
45-
switch productFilter {
46-
case .everything:
47-
return self.manifest.name
48-
case .specific(let set):
49-
return "\(self.manifest.name)[\(set.sorted().joined(separator: ", "))]"
50-
}
43+
return self.identity.description
5144
}
5245
}

Sources/PackageGraph/PackageContainer.swift

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public protocol PackageContainer {
6868
/// - Precondition: `versions.contains(version)`
6969
/// - Throws: If the version could not be resolved; this will abort
7070
/// dependency resolution completely.
71-
func getDependencies(at version: Version, productFilter: ProductFilter) throws -> [PackageContainerConstraint]
71+
func getDependencies(at version: Version) throws -> [PackageContainerConstraint]
7272

7373
/// Fetch the declared dependencies for a particular revision.
7474
///
@@ -77,12 +77,12 @@ public protocol PackageContainer {
7777
///
7878
/// - Throws: If the revision could not be resolved; this will abort
7979
/// dependency resolution completely.
80-
func getDependencies(at revision: String, productFilter: ProductFilter) throws -> [PackageContainerConstraint]
80+
func getDependencies(at revision: String) throws -> [PackageContainerConstraint]
8181

8282
/// Fetch the dependencies of an unversioned package container.
8383
///
8484
/// NOTE: This method should not be called on a versioned container.
85-
func getUnversionedDependencies(productFilter: ProductFilter) throws -> [PackageContainerConstraint]
85+
func getUnversionedDependencies() throws -> [PackageContainerConstraint]
8686

8787
/// Get the updated identifier at a bound version.
8888
///
@@ -113,27 +113,23 @@ public struct PackageContainerConstraint: Equatable, Hashable {
113113
/// The constraint requirement.
114114
public let requirement: PackageRequirement
115115

116-
/// The required products.
117-
public let products: ProductFilter
118-
119116
/// Create a constraint requiring the given `container` satisfying the
120117
/// `requirement`.
121-
public init(package: PackageReference, requirement: PackageRequirement, products: ProductFilter) {
118+
public init(package: PackageReference, requirement: PackageRequirement) {
122119
self.package = package
123120
self.requirement = requirement
124-
self.products = products
125121
}
126122

127123
/// Create a constraint requiring the given `container` satisfying the
128124
/// `versionRequirement`.
129-
public init(package: PackageReference, versionRequirement: VersionSetSpecifier, products: ProductFilter) {
130-
self.init(package: package, requirement: .versionSet(versionRequirement), products: products)
125+
public init(package: PackageReference, versionRequirement: VersionSetSpecifier) {
126+
self.init(package: package, requirement: .versionSet(versionRequirement))
131127
}
132128
}
133129

134130
extension PackageContainerConstraint: CustomStringConvertible {
135131
public var description: String {
136-
return "Constraint(\(self.package), \(requirement), \(products)"
132+
return "Constraint(\(self.package), \(requirement)"
137133
}
138134
}
139135

0 commit comments

Comments
 (0)