Skip to content

Commit 0b67b56

Browse files
committed
deprecate name attrobute on package dependencies
motivation: follow on work to the change in 5.5 that _allows_ users to not specify a name on the dependency, this soft-deprecates the ability to do so changes: * emit a deprecation warning when using the name attribute on a dependency (in the manifest) * refactor the depedency::name attribute to "deprecatedName" to reflect the fact it was deprecated and prevert too much downstream logic * cleanup the internal API * cleanup and add tests
1 parent 09ce38d commit 0b67b56

22 files changed

+513
-490
lines changed

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import class Foundation.ProcessInfo
1515

1616

1717
/** SwiftPMDataModel is the subset of SwiftPM product that includes just its data model.
18-
This allowis some clients (such as IDEs) that use SwiftPM's data model but not its build system
18+
This allows some clients (such as IDEs) that use SwiftPM's data model but not its build system
1919
to not have to depend on SwiftDriver, SwiftLLBuild, etc. We should probably have better names here,
2020
though that could break some clients.
2121
*/
@@ -33,7 +33,7 @@ let swiftPMDataModelProduct = (
3333
]
3434
)
3535

36-
/** The `libSwiftPM` set of interfaces to programatically work with Swift
36+
/** The `libSwiftPM` set of interfaces to programmatically work with Swift
3737
packages. `libSwiftPM` includes all of the SwiftPM code except the
3838
command line tools, while `libSwiftPMDataModel` includes only the data model.
3939

Sources/Commands/Describe.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,16 @@ fileprivate struct DescribedPackage: Encodable {
100100

101101
/// Represents a package dependency for the sole purpose of generating a description.
102102
enum DescribedPackageDependency: Encodable {
103-
case fileSystem(name: String?, path: AbsolutePath)
104-
case sourceControl(name: String?, location: String, requirement: PackageDependency.SourceControl.Requirement)
103+
case fileSystem(path: AbsolutePath)
104+
case sourceControl(location: String, requirement: PackageDependency.SourceControl.Requirement)
105105
case registry(identity: PackageIdentity, requirement: PackageDependency.Registry.Requirement)
106106

107107
init(from dependency: PackageDependency) {
108108
switch dependency {
109109
case .fileSystem(let settings):
110-
self = .fileSystem(name: dependency.explicitNameForTargetDependencyResolutionOnly, path: settings.path)
110+
self = .fileSystem(path: settings.path)
111111
case .sourceControl(let settings):
112-
self = .sourceControl(name: dependency.explicitNameForTargetDependencyResolutionOnly, location: settings.location, requirement: settings.requirement)
112+
self = .sourceControl(location: settings.location, requirement: settings.requirement)
113113
case .registry(let settings):
114114
self = .registry(identity: settings.identity, requirement: settings.requirement)
115115
}

Sources/PackageDescription/PackageDependency.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ extension Package.Dependency {
225225
/// - Parameters:
226226
/// - url: The valid Git URL of the package.
227227
/// - branch: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
228-
@available(_PackageDescription, introduced: 999)
228+
@available(_PackageDescription, introduced: 5.5)
229229
public static func package(
230230
url: String,
231231
branch: String
@@ -257,7 +257,7 @@ extension Package.Dependency {
257257
/// - Parameters:
258258
/// - url: The valid Git URL of the package.
259259
/// - revision: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
260-
@available(_PackageDescription, introduced: 999)
260+
@available(_PackageDescription, introduced: 5.5)
261261
public static func package(
262262
url: String,
263263
revision: String

Sources/PackageGraph/PackageGraph+Loading.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ private func createResolvedPackages(
423423
// explicitly reference the package containing the product, or for the product, package and
424424
// dependency to share the same name. We don't check this in manifest loading for root-packages so
425425
// we can provide a more detailed diagnostic here.
426-
if packageBuilder.package.manifest.toolsVersion >= .v5_2 && productRef.package == nil{
426+
if packageBuilder.package.manifest.toolsVersion >= .v5_2 && productRef.package == nil {
427427
let referencedPackageIdentity = product.packageBuilder.package.identity
428428
guard let referencedPackageDependency = (packageBuilder.package.manifest.dependencies.first { package in
429429
return package.identity == referencedPackageIdentity
@@ -435,7 +435,7 @@ private func createResolvedPackages(
435435
let error = PackageGraphError.productDependencyMissingPackage(
436436
productName: productRef.name,
437437
targetName: targetBuilder.target.name,
438-
packageDependency: referencedPackageDependency
438+
packageIdentifier: referencedPackageName
439439
)
440440
diagnostics.emit(error, location: package.diagnosticLocation)
441441
}

Sources/PackageGraph/PackageGraph.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ enum PackageGraphError: Swift.Error {
3434
case productDependencyMissingPackage(
3535
productName: String,
3636
targetName: String,
37-
packageDependency: PackageDependency
37+
packageIdentifier: String
3838
)
3939

4040
/// A product was found in multiple packages.
@@ -213,12 +213,12 @@ extension PackageGraphError: CustomStringConvertible {
213213
case .productDependencyMissingPackage(
214214
let productName,
215215
let targetName,
216-
let packageDependency
216+
let packageIdentifier
217217
):
218218

219219
let solution = """
220220
reference the package in the target dependency with '.product(name: "\(productName)", package: \
221-
"\(packageDependency.nameForTargetDependencyResolutionOnly)")'
221+
"\(packageIdentifier)")'
222222
"""
223223

224224
return "dependency '\(productName)' in target '\(targetName)' requires explicit declaration; \(solution)"
@@ -229,6 +229,7 @@ extension PackageGraphError: CustomStringConvertible {
229229
}
230230
}
231231

232+
/*
232233
fileprivate extension PackageDependency {
233234
func swiftRepresentation(overridingName: String? = nil) -> String {
234235
var parameters: [String] = []
@@ -278,3 +279,4 @@ fileprivate extension PackageDependency {
278279
return swiftRepresentation
279280
}
280281
}
282+
*/

0 commit comments

Comments
 (0)