@@ -127,6 +127,8 @@ extension Package {
127127 }
128128}
129129
130+ // MARK: - file system
131+
130132extension Package . Dependency {
131133 /// Adds a package dependency to a local package on the filesystem.
132134 ///
@@ -136,11 +138,10 @@ extension Package.Dependency {
136138 /// on multiple tightly coupled packages.
137139 ///
138140 /// - Parameter path: The path of the package.
139- @available ( _PackageDescription, obsoleted: 5.2 )
140141 public static func package (
141142 path: String
142143 ) -> Package . Dependency {
143- return . package ( name: nil , path: path)
144+ return . init ( name: nil , path: path)
144145 }
145146
146147 /// Adds a package dependency to a local package on the filesystem.
@@ -153,9 +154,9 @@ extension Package.Dependency {
153154 /// - Parameters
154155 /// - name: The name of the Swift package or `nil` to deduce the name from path.
155156 /// - path: The local path to the package.
156- @available ( _PackageDescription, introduced: 5.2 )
157+ @available ( _PackageDescription, introduced: 5.2 , deprecated : 5.6 , message : " use package(path:) instead " )
157158 public static func package (
158- name: String ? = nil ,
159+ name: String ,
159160 path: String
160161 ) -> Package . Dependency {
161162 return . init( name: name, path: path)
@@ -184,12 +185,11 @@ extension Package.Dependency {
184185 /// - name: The name of the package, or nil to deduce it from the URL.
185186 /// - url: The valid Git URL of the package.
186187 /// - version: The minimum version requirement.
187- @available ( _PackageDescription, obsoleted: 5.2 )
188188 public static func package (
189189 url: String ,
190190 from version: Version
191191 ) -> Package . Dependency {
192- return . package ( name : nil , url: url, from: version)
192+ return . package ( url: url, . upToNextMajor ( from: version) )
193193 }
194194
195195 /// Adds a package dependency that uses the version requirement, starting with the given minimum version,
@@ -211,26 +211,41 @@ extension Package.Dependency {
211211 /// - name: The name of the package, or nil to deduce it from the URL.
212212 /// - url: The valid Git URL of the package.
213213 /// - version: The minimum version requirement.
214- @available ( _PackageDescription, introduced: 5.2 )
214+ @available ( _PackageDescription, introduced: 5.2 , deprecated : 5.6 , message : " use package(url:from:) instead " )
215215 public static func package (
216- name: String ? = nil ,
216+ name: String ,
217217 url: String ,
218218 from version: Version
219219 ) -> Package . Dependency {
220220 return . package ( name: name, url: url, . upToNextMajor( from: version) )
221221 }
222-
222+
223223 /// Adds a remote package dependency given a branch requirement.
224224 ///
225225 /// .package(url: "https://example.com/example-package.git", branch: "main"),
226226 ///
227227 /// - Parameters:
228- /// - name: The name of the package, or nil to deduce it from the URL.
229228 /// - url: The valid Git URL of the package.
230229 /// - branch: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
231230 @available ( _PackageDescription, introduced: 5.5 )
232231 public static func package (
233- name: String ? = nil ,
232+ url: String ,
233+ branch: String
234+ ) -> Package . Dependency {
235+ return . package ( url: url, requirement: . branch( branch) )
236+ }
237+
238+ /// Adds a remote package dependency given a branch requirement.
239+ ///
240+ /// .package(url: "https://example.com/example-package.git", branch: "main"),
241+ ///
242+ /// - Parameters:
243+ /// - name: The name of the package, or nil to deduce it from the URL.
244+ /// - url: The valid Git URL of the package.
245+ /// - branch: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
246+ @available ( _PackageDescription, introduced: 5.5 , deprecated: 5.6 , message: " use package(url:branch:) instead " )
247+ public static func package (
248+ name: String ,
234249 url: String ,
235250 branch: String
236251 ) -> Package . Dependency {
@@ -242,12 +257,27 @@ extension Package.Dependency {
242257 /// .package(url: "https://example.com/example-package.git", revision: "aa681bd6c61e22df0fd808044a886fc4a7ed3a65"),
243258 ///
244259 /// - Parameters:
245- /// - name: The name of the package, or nil to deduce it from the URL.
246260 /// - url: The valid Git URL of the package.
247261 /// - revision: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
248262 @available ( _PackageDescription, introduced: 5.5 )
249263 public static func package (
250- name: String ? = nil ,
264+ url: String ,
265+ revision: String
266+ ) -> Package . Dependency {
267+ return . package ( url: url, requirement: . revision( revision) )
268+ }
269+
270+ /// Adds a remote package dependency given a revision requirement.
271+ ///
272+ /// .package(url: "https://example.com/example-package.git", revision: "aa681bd6c61e22df0fd808044a886fc4a7ed3a65"),
273+ ///
274+ /// - Parameters:
275+ /// - name: The name of the package, or nil to deduce it from the URL.
276+ /// - url: The valid Git URL of the package.
277+ /// - revision: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
278+ @available ( _PackageDescription, introduced: 5.5 , deprecated: 5.6 , message: " use package(url:revision:) instead " )
279+ public static func package (
280+ name: String ,
251281 url: String ,
252282 revision: String
253283 ) -> Package . Dependency {
@@ -266,12 +296,11 @@ extension Package.Dependency {
266296 /// - name: The name of the package, or nil to deduce it from the URL.
267297 /// - url: The valid Git URL of the package.
268298 /// - range: The custom version range requirement.
269- @available ( _PackageDescription, obsoleted: 5.2 )
270299 public static func package (
271300 url: String ,
272301 _ range: Range < Version >
273302 ) -> Package . Dependency {
274- return . package ( name: nil , url: url, range)
303+ return . package ( name: nil , url: url, requirement : . range( range ) )
275304 }
276305
277306 /// Adds a package dependency starting with a specific minimum version, up to
@@ -286,9 +315,9 @@ extension Package.Dependency {
286315 /// - name: The name of the package, or `nil` to deduce it from the URL.
287316 /// - url: The valid Git URL of the package.
288317 /// - range: The custom version range requirement.
289- @available ( _PackageDescription, introduced: 5.2 )
318+ @available ( _PackageDescription, introduced: 5.2 , deprecated : 5.6 , message : " use package(url:_:) instead " )
290319 public static func package (
291- name: String ? = nil ,
320+ name: String ,
292321 url: String ,
293322 _ range: Range < Version >
294323 ) -> Package . Dependency {
@@ -307,12 +336,11 @@ extension Package.Dependency {
307336 /// - name: The name of the package, or `nil` to deduce it from the URL.
308337 /// - url: The valid Git URL of the package.
309338 /// - range: The closed version range requirement.
310- @available ( _PackageDescription, obsoleted: 5.2 )
311339 public static func package (
312340 url: String ,
313341 _ range: ClosedRange < Version >
314342 ) -> Package . Dependency {
315- return . package ( name: nil , url: url, range)
343+ return . package ( name: nil , url: url, closedRange : range)
316344 }
317345
318346 /// Adds a package dependency starting with a specific minimum version, going
@@ -327,19 +355,27 @@ extension Package.Dependency {
327355 /// - name: The name of the package, or `nil` to deduce it from the URL.
328356 /// - url: The valid Git URL of the package.
329357 /// - range: The closed version range requirement.
330- @available ( _PackageDescription, introduced: 5.2 )
358+ @available ( _PackageDescription, introduced: 5.2 , deprecated : 5.6 , message : " use package(url:_:) instead " )
331359 public static func package (
332- name: String ? = nil ,
360+ name: String ,
333361 url: String ,
334362 _ range: ClosedRange < Version >
363+ ) -> Package . Dependency {
364+ return . package ( name: name, url: url, closedRange: range)
365+ }
366+
367+ private static func package (
368+ name: String ? ,
369+ url: String ,
370+ closedRange: ClosedRange < Version >
335371 ) -> Package . Dependency {
336372 // Increase upperbound's patch version by one.
337- let upper = range . upperBound
373+ let upper = closedRange . upperBound
338374 let upperBound = Version (
339375 upper. major, upper. minor, upper. patch + 1 ,
340376 prereleaseIdentifiers: upper. prereleaseIdentifiers,
341377 buildMetadataIdentifiers: upper. buildMetadataIdentifiers)
342- return . package ( name: name, url: url, range. lowerBound ..< upperBound)
378+ return . package ( name: name, url: url, requirement : . range( closedRange . lowerBound ..< upperBound) )
343379 }
344380
345381 /// Adds a package dependency that uses the exact version requirement.
@@ -363,33 +399,7 @@ extension Package.Dependency {
363399 url: String ,
364400 exact version: Version
365401 ) -> Package . Dependency {
366- return . package ( name: nil , url: url, exact: version)
367- }
368-
369- /// Adds a package dependency that uses the exact version requirement.
370- ///
371- /// This is the recommended way to specify a remote package dependency.
372- /// It allows you to specify the minimum version you require, allows updates that include bug fixes
373- /// and backward-compatible feature updates, but requires you to explicitly update to a new major version of the dependency.
374- /// This approach provides the maximum flexibility on which version to use,
375- /// while making sure you don't update to a version with breaking changes,
376- /// and helps to prevent conflicts in your dependency graph.
377- ///
378- /// The following example instruct the Swift Package Manager to use version `1.2.3`.
379- ///
380- /// .package(url: "https://example.com/example-package.git", exact: "1.2.3"),
381- ///
382- /// - Parameters:
383- /// - name: The name of the package, or `nil` to deduce it from the URL.
384- /// - url: The valid Git URL of the package.
385- /// - version: The minimum version requirement.
386- @available ( _PackageDescription, introduced: 5.6 )
387- public static func package (
388- name: String ? = nil ,
389- url: String ,
390- exact version: Version
391- ) -> Package . Dependency {
392- return . init( name: name, location: url, requirement: . exact( version) )
402+ return . package ( url: url, requirement: . exact( version) )
393403 }
394404
395405 /// Adds a remote package dependency given a version requirement.
@@ -398,13 +408,12 @@ extension Package.Dependency {
398408 /// - name: The name of the package, or nil to deduce it from the URL.
399409 /// - url: The valid Git URL of the package.
400410 /// - requirement: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
401- @available ( _PackageDescription, obsoleted : 5.2 , deprecated : 5.6 )
411+ @available ( _PackageDescription, deprecated : 5.6 , message : " use specific requirement APIs instead " )
402412 public static func package (
403413 url: String ,
404414 _ requirement: Package . Dependency . Requirement
405415 ) -> Package . Dependency {
406- precondition ( !requirement. isLocalPackage, " Use `.package(path:)` API to declare a local package dependency " )
407- return . init( name: nil , url: url, requirement: requirement)
416+ return . package ( name: nil , url: url, requirement)
408417 }
409418
410419 /// Adds a remote package dependency with a given version requirement.
@@ -413,9 +422,9 @@ extension Package.Dependency {
413422 /// - name: The name of the package, or `nil` to deduce it from the URL.
414423 /// - url: The valid Git URL of the package.
415424 /// - requirement: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
416- @available ( _PackageDescription, introduced: 5.2 , deprecated: 5.6 )
425+ @available ( _PackageDescription, introduced: 5.2 , deprecated: 5.6 , message : " use specific requirement APIs instead " )
417426 public static func package (
418- name: String ? = nil ,
427+ name: String ? ,
419428 url: String ,
420429 _ requirement: Package . Dependency . Requirement
421430 ) -> Package . Dependency {
@@ -424,7 +433,6 @@ extension Package.Dependency {
424433 }
425434
426435 // intentionally private to hide enum detail
427- @available ( _PackageDescription, introduced: 5.6 )
428436 private static func package (
429437 name: String ? = nil ,
430438 url: String ,
@@ -541,16 +549,15 @@ extension Package.Dependency {
541549 }
542550}
543551
544-
545552// MARK: - common APIs used by mistake as unavailable to provide better error messages.
546553
547554extension Package . Dependency {
548- @available ( * , unavailable, message: " use package(url:_:) with the .exact(Version) initializer instead " )
555+ @available ( * , unavailable, message: " use package(url:exact:) instead " )
549556 public static func package ( url: String , version: Version ) -> Package . Dependency {
550557 fatalError ( )
551558 }
552559
553- @available ( * , unavailable, message: " use package(url:_:) without the range label instead " )
560+ @available ( * , unavailable, message: " use package(url:_:) instead " )
554561 public static func package ( url: String , range: Range < Version > ) -> Package . Dependency {
555562 fatalError ( )
556563 }
0 commit comments