Skip to content

Commit 66153c2

Browse files
authored
un-deprecate name argument on file-system (aka local) dependencies (#3680)
motivation: when using path based dependencies it could be useful to set a name (for target based package lookup), as the path may change depending on context changes: * remove recently added deprecation flag from .package(name:, path:) API * update package describe command to include dependecy identity which is useful to know how the dependency can be address in target based package lookup
1 parent a468072 commit 66153c2

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

Sources/Commands/Describe.swift

Lines changed: 8 additions & 6 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(path: AbsolutePath)
104-
case sourceControl(location: String, requirement: PackageDependency.SourceControl.Requirement)
103+
case fileSystem(identity: PackageIdentity, path: AbsolutePath)
104+
case sourceControl(identity: PackageIdentity, 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(path: settings.path)
110+
self = .fileSystem(identity: settings.identity, path: settings.path)
111111
case .sourceControl(let settings):
112-
self = .sourceControl(location: settings.location, requirement: settings.requirement)
112+
self = .sourceControl(identity: settings.identity, location: settings.location, requirement: settings.requirement)
113113
case .registry(let settings):
114114
self = .registry(identity: settings.identity, requirement: settings.requirement)
115115
}
@@ -132,11 +132,13 @@ fileprivate struct DescribedPackage: Encodable {
132132
public func encode(to encoder: Encoder) throws {
133133
var container = encoder.container(keyedBy: CodingKeys.self)
134134
switch self {
135-
case .fileSystem(let path):
135+
case .fileSystem(let identity, let path):
136136
try container.encode(Kind.fileSystem, forKey: .type)
137+
try container.encode(identity, forKey: .identity)
137138
try container.encode(path, forKey: .path)
138-
case .sourceControl(let location, let requirement):
139+
case .sourceControl(let identity, let location, let requirement):
139140
try container.encode(Kind.sourceControl, forKey: .type)
141+
try container.encode(identity, forKey: .identity)
140142
try container.encode(location, forKey: .url)
141143
try container.encode(requirement, forKey: .requirement)
142144
case .registry(let identity, let requirement):

Sources/PackageDescription/PackageDependency.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ extension Package.Dependency {
137137
/// are especially useful during development of a new package or when working
138138
/// on multiple tightly coupled packages.
139139
///
140-
/// - Parameter path: The path of the package.
140+
/// - Parameters
141+
/// - path: The file system path to the package.
141142
public static func package(
142143
path: String
143144
) -> Package.Dependency {
@@ -152,9 +153,9 @@ extension Package.Dependency {
152153
/// on multiple tightly coupled packages.
153154
///
154155
/// - Parameters
155-
/// - name: The name of the Swift package or `nil` to deduce the name from path.
156-
/// - path: The local path to the package.
157-
@available(_PackageDescription, introduced: 5.2, deprecated: 5.6, message: "use package(path:) instead")
156+
/// - name: The name of the Swift package, used only for target dependencies lookup.
157+
/// - path: The file system path to the package.
158+
@available(_PackageDescription, introduced: 5.2)
158159
public static func package(
159160
name: String,
160161
path: String

0 commit comments

Comments
 (0)