Skip to content

Commit 11f045c

Browse files
authored
Revert "identity improvements (#3323)"
This reverts commit 953f368.
1 parent 953f368 commit 11f045c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+400
-662
lines changed

Examples/package-info/Sources/package-info/main.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ let packagePath = localFileSystem.currentWorkingDirectory!
3232
// Each takes longer to load than the level above it, but provides more detail.
3333
let diagnostics = DiagnosticsEngine()
3434
let identityResolver = DefaultIdentityResolver()
35-
let manifest = try tsc_await { ManifestLoader.loadRootManifest(at: packagePath, swiftCompiler: swiftCompiler, swiftCompilerFlags: [], identityResolver: identityResolver, on: .global(), completion: $0) }
36-
let loadedPackage = try tsc_await { PackageBuilder.loadRootPackage(at: packagePath, swiftCompiler: swiftCompiler, swiftCompilerFlags: [], identityResolver: identityResolver, diagnostics: diagnostics, on: .global(), completion: $0) }
37-
let graph = try Workspace.loadRootGraph(at: packagePath, swiftCompiler: swiftCompiler, swiftCompilerFlags: [], identityResolver: identityResolver, diagnostics: diagnostics)
35+
let manifest = try tsc_await { ManifestLoader.loadManifest(at: packagePath, kind: .local, swiftCompiler: swiftCompiler, swiftCompilerFlags: [], identityResolver: identityResolver, on: .global(), completion: $0) }
36+
let loadedPackage = try tsc_await { PackageBuilder.loadPackage(at: packagePath, swiftCompiler: swiftCompiler, swiftCompilerFlags: [], identityResolver: identityResolver, diagnostics: diagnostics, on: .global(), completion: $0) }
37+
let graph = try Workspace.loadGraph(packagePath: packagePath, swiftCompiler: swiftCompiler, swiftCompilerFlags: [], identityResolver: identityResolver, diagnostics: diagnostics)
3838

3939
// EXAMPLES
4040
// ========

Sources/Build/BuildOperationBuildSystemDelegateHandler.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,13 @@ public struct BuildDescription: Codable {
215215
self.testDiscoveryCommands = testDiscoveryCommands
216216
self.copyCommands = copyCommands
217217

218-
self.builtTestProducts = plan.buildProducts.filter{ $0.product.type == .test }.map { desc in
218+
self.builtTestProducts = try plan.buildProducts.filter{ $0.product.type == .test }.map { desc in
219+
// FIXME(perf): Provide faster lookups.
220+
guard let package = (plan.graph.packages.first{ $0.products.contains(desc.product) }) else {
221+
throw InternalError("package with product \(desc.product) not found")
222+
}
219223
return BuiltTestProduct(
224+
packageName: package.name,
220225
productName: desc.product.name,
221226
binaryPath: desc.binary
222227
)

Sources/Commands/Describe.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ fileprivate struct DescribedPackage: Encodable {
5555
let swiftLanguagesVersions: [String]?
5656

5757
init(from package: Package) {
58-
self.name = package.manifestName // TODO: rename property to manifestName?
58+
self.name = package.name
5959
self.path = package.path.pathString
6060
self.toolsVersion = "\(package.manifest.toolsVersion.major).\(package.manifest.toolsVersion.minor)"
6161
+ (package.manifest.toolsVersion.patch == 0 ? "" : ".\(package.manifest.toolsVersion.patch)")

Sources/Commands/SwiftPackageTool.swift

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -170,16 +170,13 @@ extension SwiftPackageTool {
170170
let workspace = try swiftTool.getActiveWorkspace()
171171
let root = try swiftTool.getWorkspaceRoot()
172172

173-
let rootManifests = try temp_await {
173+
let manifests = try temp_await {
174174
workspace.loadRootManifests(packages: root.packages, diagnostics: swiftTool.diagnostics, completion: $0)
175175
}
176-
guard let rootManifest = rootManifests.first else {
177-
throw StringError("invalid manifests at \(root.packages)")
178-
}
176+
guard let manifest = manifests.first else { return }
179177

180178
let builder = PackageBuilder(
181-
identity: .root(name: rootManifest.name),
182-
manifest: rootManifest,
179+
manifest: manifest,
183180
productFilter: .everything,
184181
path: try swiftTool.getPackageRoot(),
185182
xcTestMinimumDeploymentTargets: MinimumDeploymentTarget.default.xcTestMinimumDeploymentTargets,
@@ -240,16 +237,12 @@ extension SwiftPackageTool {
240237
// Get the root package.
241238
let workspace = try swiftTool.getActiveWorkspace()
242239
let root = try swiftTool.getWorkspaceRoot()
243-
let rootManifests = try temp_await {
240+
let manifest = try temp_await {
244241
workspace.loadRootManifests(packages: root.packages, diagnostics: swiftTool.diagnostics, completion: $0)
245-
}
246-
guard let rootManifest = rootManifests.first else {
247-
throw StringError("invalid manifests at \(root.packages)")
248-
}
242+
}[0]
249243

250244
let builder = PackageBuilder(
251-
identity: .root(name: rootManifest.name),
252-
manifest: rootManifest,
245+
manifest: manifest,
253246
productFilter: .everything,
254247
path: try swiftTool.getPackageRoot(),
255248
xcTestMinimumDeploymentTargets: [:], // Minimum deployment target does not matter for this operation.
@@ -373,17 +366,15 @@ extension SwiftPackageTool {
373366
let workspace = try swiftTool.getActiveWorkspace()
374367
let root = try swiftTool.getWorkspaceRoot()
375368

376-
let rootManifests = try temp_await {
369+
let manifests = try temp_await {
377370
workspace.loadRootManifests(packages: root.packages, diagnostics: swiftTool.diagnostics, completion: $0)
378371
}
379-
guard let rootManifest = rootManifests.first else {
380-
throw StringError("invalid manifests at \(root.packages)")
381-
}
372+
guard let manifest = manifests.first else { return }
382373

383374
let encoder = JSONEncoder.makeWithDefaults()
384375
encoder.userInfo[Manifest.dumpPackageKey] = true
385376

386-
let jsonData = try encoder.encode(rootManifest)
377+
let jsonData = try encoder.encode(manifest)
387378
let jsonString = String(data: jsonData, encoding: .utf8)!
388379
print(jsonString)
389380
}
@@ -591,7 +582,7 @@ extension SwiftPackageTool {
591582
destination = output
592583
} else {
593584
let graph = try swiftTool.loadPackageGraph()
594-
let packageName = graph.rootPackages[0].manifestName // TODO: use identity instead?
585+
let packageName = graph.rootPackages[0].name
595586
destination = packageRoot.appending(component: "\(packageName).zip")
596587
}
597588

@@ -666,10 +657,10 @@ extension SwiftPackageTool {
666657
dstdir = outpath.parentDirectory
667658
case let outpath?:
668659
dstdir = outpath
669-
projectName = graph.rootPackages[0].manifestName // TODO: use identity instead?
660+
projectName = graph.rootPackages[0].name
670661
case _:
671662
dstdir = try swiftTool.getPackageRoot()
672-
projectName = graph.rootPackages[0].manifestName // TODO: use identity instead?
663+
projectName = graph.rootPackages[0].name
673664
}
674665
let xcodeprojPath = Xcodeproj.buildXcodeprojPath(outputDir: dstdir, projectName: projectName)
675666

Sources/Commands/SwiftTestTool.swift

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -224,12 +224,9 @@ public struct SwiftTestTool: SwiftCommand {
224224
case .codeCovPath:
225225
let workspace = try swiftTool.getActiveWorkspace()
226226
let root = try swiftTool.getWorkspaceRoot()
227-
let rootManifests = try temp_await {
227+
let rootManifest = try temp_await {
228228
workspace.loadRootManifests(packages: root.packages, diagnostics: swiftTool.diagnostics, completion: $0)
229-
}
230-
guard let rootManifest = rootManifests.first else {
231-
throw StringError("invalid manifests at \(root.packages)")
232-
}
229+
}[0]
233230
let buildParameters = try swiftTool.buildParametersForTest()
234231
print(codeCovAsJSONPath(buildParameters: buildParameters, packageName: rootManifest.name))
235232

@@ -355,15 +352,6 @@ public struct SwiftTestTool: SwiftCommand {
355352

356353
/// Processes the code coverage data and emits a json.
357354
private func processCodeCoverage(_ testProducts: [BuiltTestProduct], swiftTool: SwiftTool) throws {
358-
let workspace = try swiftTool.getActiveWorkspace()
359-
let root = try swiftTool.getWorkspaceRoot()
360-
let rootManifests = try temp_await {
361-
workspace.loadRootManifests(packages: root.packages, diagnostics: swiftTool.diagnostics, completion: $0)
362-
}
363-
guard let rootManifest = rootManifests.first else {
364-
throw StringError("invalid manifests at \(root.packages)")
365-
}
366-
367355
// Merge all the profraw files to produce a single profdata file.
368356
try mergeCodeCovRawDataFiles(swiftTool: swiftTool)
369357

@@ -372,7 +360,7 @@ public struct SwiftTestTool: SwiftCommand {
372360
// Export the codecov data as JSON.
373361
let jsonPath = codeCovAsJSONPath(
374362
buildParameters: buildParameters,
375-
packageName: rootManifest.name)
363+
packageName: product.packageName)
376364
try exportCodeCovAsJSON(to: jsonPath, testBinary: product.binaryPath, swiftTool: swiftTool)
377365
}
378366
}

Sources/Commands/show-dependencies.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ private final class PlainTextDumper: DependenciesDumper {
4444

4545
let pkgVersion = package.manifest.version?.description ?? "unspecified"
4646

47-
stream <<< "\(hanger)\(package.identity.description)<\(package.manifest.packageLocation)@\(pkgVersion)>\n"
47+
stream <<< "\(hanger)\(package.name)<\(package.manifest.packageLocation)@\(pkgVersion)>\n"
4848

4949
if !package.dependencies.isEmpty {
5050
let replacement = (index == packages.count - 1) ? " " : ""
@@ -69,7 +69,7 @@ private final class FlatListDumper: DependenciesDumper {
6969
func dump(dependenciesOf rootpkg: ResolvedPackage, on stream: OutputByteStream) {
7070
func recursiveWalk(packages: [ResolvedPackage]) {
7171
for package in packages {
72-
stream <<< package.identity.description <<< "\n"
72+
stream <<< package.name <<< "\n"
7373
if !package.dependencies.isEmpty {
7474
recursiveWalk(packages: package.dependencies)
7575
}
@@ -88,7 +88,7 @@ private final class DotDumper: DependenciesDumper {
8888
let url = package.manifest.packageLocation
8989
if nodesAlreadyPrinted.contains(url) { return }
9090
let pkgVersion = package.manifest.version?.description ?? "unspecified"
91-
stream <<< #""\#(url)" [label="\#(package.identity.description)\n\#(url)\n\#(pkgVersion)"]"# <<< "\n"
91+
stream <<< #""\#(url)" [label="\#(package.name)\n\#(url)\n\#(pkgVersion)"]"# <<< "\n"
9292
nodesAlreadyPrinted.insert(url)
9393
}
9494

@@ -130,7 +130,7 @@ private final class JSONDumper: DependenciesDumper {
130130
func dump(dependenciesOf rootpkg: ResolvedPackage, on stream: OutputByteStream) {
131131
func convert(_ package: ResolvedPackage) -> JSON {
132132
return .orderedDictionary([
133-
"name": .string(package.manifestName), // TODO: remove? add identity?
133+
"name": .string(package.name),
134134
"url": .string(package.manifest.packageLocation),
135135
"version": .string(package.manifest.version?.description ?? "unspecified"),
136136
"path": .string(package.path.pathString),

Sources/PackageGraph/GraphLoadingNode.swift

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,13 @@ import TSCUtility
2020
/// - SeeAlso: DependencyResolutionNode
2121
public struct GraphLoadingNode: Equatable, Hashable {
2222

23-
/// The package identity.
24-
public let identity: PackageIdentity
25-
2623
/// The package manifest.
2724
public let manifest: Manifest
2825

2926
/// The product filter applied to the package.
3027
public let productFilter: ProductFilter
3128

32-
public init(identity: PackageIdentity, manifest: Manifest, productFilter: ProductFilter) {
33-
self.identity = identity
29+
public init(manifest: Manifest, productFilter: ProductFilter) {
3430
self.manifest = manifest
3531
self.productFilter = productFilter
3632
}
@@ -45,9 +41,9 @@ extension GraphLoadingNode: CustomStringConvertible {
4541
public var description: String {
4642
switch productFilter {
4743
case .everything:
48-
return self.manifest.name
44+
return manifest.name
4945
case .specific(let set):
50-
return "\(self.manifest.name)[\(set.sorted().joined(separator: ", "))]"
46+
return "\(manifest.name)[\(set.sorted().joined(separator: ", "))]"
5147
}
5248
}
5349
}

Sources/PackageGraph/LocalPackageContainer.swift

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,22 @@ public final class LocalPackageContainer: PackageContainer {
3939
private func loadManifest() throws -> Manifest {
4040
try manifest.memoize() {
4141
// Load the tools version.
42-
let toolsVersion = try self.toolsVersionLoader.load(at: AbsolutePath(self.package.location), fileSystem: self.fileSystem)
42+
let toolsVersion = try toolsVersionLoader.load(at: AbsolutePath(package.location), fileSystem: fileSystem)
4343

4444
// Validate the tools version.
45-
try toolsVersion.validateToolsVersion(self.currentToolsVersion, packagePath: self.package.location)
45+
try toolsVersion.validateToolsVersion(self.currentToolsVersion, packagePath: package.location)
4646

4747
// Load the manifest.
4848
// FIXME: this should not block
4949
return try temp_await {
50-
manifestLoader.load(at: AbsolutePath(self.package.location),
51-
packageIdentity: self.package.identity,
52-
packageKind: self.package.kind,
53-
packageLocation: self.package.location,
50+
manifestLoader.load(at: AbsolutePath(package.location),
51+
packageKind: package.kind,
52+
packageLocation: package.location,
5453
version: nil,
5554
revision: nil,
5655
toolsVersion: toolsVersion,
57-
identityResolver: self.identityResolver,
58-
fileSystem: self.fileSystem,
56+
identityResolver: identityResolver,
57+
fileSystem: fileSystem,
5958
diagnostics: nil,
6059
on: .global(),
6160
completion: $0)

0 commit comments

Comments
 (0)