@@ -127,6 +127,8 @@ extension Package {
127
127
}
128
128
}
129
129
130
+ // MARK: - file system
131
+
130
132
extension Package . Dependency {
131
133
/// Adds a package dependency to a local package on the filesystem.
132
134
///
@@ -136,11 +138,10 @@ extension Package.Dependency {
136
138
/// on multiple tightly coupled packages.
137
139
///
138
140
/// - Parameter path: The path of the package.
139
- @available ( _PackageDescription, obsoleted: 5.2 )
140
141
public static func package (
141
142
path: String
142
143
) -> Package . Dependency {
143
- return . package ( name: nil , path: path)
144
+ return . init ( name: nil , path: path)
144
145
}
145
146
146
147
/// Adds a package dependency to a local package on the filesystem.
@@ -153,9 +154,9 @@ extension Package.Dependency {
153
154
/// - Parameters
154
155
/// - name: The name of the Swift package or `nil` to deduce the name from path.
155
156
/// - 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 " )
157
158
public static func package (
158
- name: String ? = nil ,
159
+ name: String ,
159
160
path: String
160
161
) -> Package . Dependency {
161
162
return . init( name: name, path: path)
@@ -184,12 +185,11 @@ extension Package.Dependency {
184
185
/// - name: The name of the package, or nil to deduce it from the URL.
185
186
/// - url: The valid Git URL of the package.
186
187
/// - version: The minimum version requirement.
187
- @available ( _PackageDescription, obsoleted: 5.2 )
188
188
public static func package (
189
189
url: String ,
190
190
from version: Version
191
191
) -> Package . Dependency {
192
- return . package ( name : nil , url: url, from: version)
192
+ return . package ( url: url, . upToNextMajor ( from: version) )
193
193
}
194
194
195
195
/// Adds a package dependency that uses the version requirement, starting with the given minimum version,
@@ -211,26 +211,41 @@ extension Package.Dependency {
211
211
/// - name: The name of the package, or nil to deduce it from the URL.
212
212
/// - url: The valid Git URL of the package.
213
213
/// - 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 " )
215
215
public static func package (
216
- name: String ? = nil ,
216
+ name: String ,
217
217
url: String ,
218
218
from version: Version
219
219
) -> Package . Dependency {
220
220
return . package ( name: name, url: url, . upToNextMajor( from: version) )
221
221
}
222
-
222
+
223
223
/// Adds a remote package dependency given a branch requirement.
224
224
///
225
225
/// .package(url: "https://example.com/example-package.git", branch: "main"),
226
226
///
227
227
/// - Parameters:
228
- /// - name: The name of the package, or nil to deduce it from the URL.
229
228
/// - url: The valid Git URL of the package.
230
229
/// - branch: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
231
230
@available ( _PackageDescription, introduced: 5.5 )
232
231
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 ,
234
249
url: String ,
235
250
branch: String
236
251
) -> Package . Dependency {
@@ -242,12 +257,27 @@ extension Package.Dependency {
242
257
/// .package(url: "https://example.com/example-package.git", revision: "aa681bd6c61e22df0fd808044a886fc4a7ed3a65"),
243
258
///
244
259
/// - Parameters:
245
- /// - name: The name of the package, or nil to deduce it from the URL.
246
260
/// - url: The valid Git URL of the package.
247
261
/// - revision: A dependency requirement. See static methods on `Package.Dependency.Requirement` for available options.
248
262
@available ( _PackageDescription, introduced: 5.5 )
249
263
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 ,
251
281
url: String ,
252
282
revision: String
253
283
) -> Package . Dependency {
@@ -266,12 +296,11 @@ extension Package.Dependency {
266
296
/// - name: The name of the package, or nil to deduce it from the URL.
267
297
/// - url: The valid Git URL of the package.
268
298
/// - range: The custom version range requirement.
269
- @available ( _PackageDescription, obsoleted: 5.2 )
270
299
public static func package (
271
300
url: String ,
272
301
_ range: Range < Version >
273
302
) -> Package . Dependency {
274
- return . package ( name: nil , url: url, range)
303
+ return . package ( name: nil , url: url, requirement : . range( range ) )
275
304
}
276
305
277
306
/// Adds a package dependency starting with a specific minimum version, up to
@@ -286,9 +315,9 @@ extension Package.Dependency {
286
315
/// - name: The name of the package, or `nil` to deduce it from the URL.
287
316
/// - url: The valid Git URL of the package.
288
317
/// - 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 " )
290
319
public static func package (
291
- name: String ? = nil ,
320
+ name: String ,
292
321
url: String ,
293
322
_ range: Range < Version >
294
323
) -> Package . Dependency {
@@ -307,12 +336,11 @@ extension Package.Dependency {
307
336
/// - name: The name of the package, or `nil` to deduce it from the URL.
308
337
/// - url: The valid Git URL of the package.
309
338
/// - range: The closed version range requirement.
310
- @available ( _PackageDescription, obsoleted: 5.2 )
311
339
public static func package (
312
340
url: String ,
313
341
_ range: ClosedRange < Version >
314
342
) -> Package . Dependency {
315
- return . package ( name: nil , url: url, range)
343
+ return . package ( name: nil , url: url, closedRange : range)
316
344
}
317
345
318
346
/// Adds a package dependency starting with a specific minimum version, going
@@ -327,19 +355,27 @@ extension Package.Dependency {
327
355
/// - name: The name of the package, or `nil` to deduce it from the URL.
328
356
/// - url: The valid Git URL of the package.
329
357
/// - 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 " )
331
359
public static func package (
332
- name: String ? = nil ,
360
+ name: String ,
333
361
url: String ,
334
362
_ 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 >
335
371
) -> Package . Dependency {
336
372
// Increase upperbound's patch version by one.
337
- let upper = range . upperBound
373
+ let upper = closedRange . upperBound
338
374
let upperBound = Version (
339
375
upper. major, upper. minor, upper. patch + 1 ,
340
376
prereleaseIdentifiers: upper. prereleaseIdentifiers,
341
377
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) )
343
379
}
344
380
345
381
/// Adds a package dependency that uses the exact version requirement.
@@ -363,33 +399,7 @@ extension Package.Dependency {
363
399
url: String ,
364
400
exact version: Version
365
401
) -> 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) )
393
403
}
394
404
395
405
/// Adds a remote package dependency given a version requirement.
@@ -398,13 +408,12 @@ extension Package.Dependency {
398
408
/// - name: The name of the package, or nil to deduce it from the URL.
399
409
/// - url: The valid Git URL of the package.
400
410
/// - 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 " )
402
412
public static func package (
403
413
url: String ,
404
414
_ requirement: Package . Dependency . Requirement
405
415
) -> 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)
408
417
}
409
418
410
419
/// Adds a remote package dependency with a given version requirement.
@@ -413,9 +422,9 @@ extension Package.Dependency {
413
422
/// - name: The name of the package, or `nil` to deduce it from the URL.
414
423
/// - url: The valid Git URL of the package.
415
424
/// - 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 " )
417
426
public static func package (
418
- name: String ? = nil ,
427
+ name: String ? ,
419
428
url: String ,
420
429
_ requirement: Package . Dependency . Requirement
421
430
) -> Package . Dependency {
@@ -424,7 +433,6 @@ extension Package.Dependency {
424
433
}
425
434
426
435
// intentionally private to hide enum detail
427
- @available ( _PackageDescription, introduced: 5.6 )
428
436
private static func package (
429
437
name: String ? = nil ,
430
438
url: String ,
@@ -541,16 +549,15 @@ extension Package.Dependency {
541
549
}
542
550
}
543
551
544
-
545
552
// MARK: - common APIs used by mistake as unavailable to provide better error messages.
546
553
547
554
extension Package . Dependency {
548
- @available ( * , unavailable, message: " use package(url:_:) with the .exact(Version) initializer instead " )
555
+ @available ( * , unavailable, message: " use package(url:exact:) instead " )
549
556
public static func package ( url: String , version: Version ) -> Package . Dependency {
550
557
fatalError ( )
551
558
}
552
559
553
- @available ( * , unavailable, message: " use package(url:_:) without the range label instead " )
560
+ @available ( * , unavailable, message: " use package(url:_:) instead " )
554
561
public static func package ( url: String , range: Range < Version > ) -> Package . Dependency {
555
562
fatalError ( )
556
563
}
0 commit comments