Kostiantyn KovalMar 23
Swift Package Manager version Syntax
There is an amazing project called Swift Package Manager. I hope you know about it, if not take a second and have a look on it :)
Overview
Swift Package Manager (short name SwiftPM) is a dependency manger. You can make a Manifest file and declare your dependencies there.
import PackageDescription
let package = Package(
name: "Hello",
dependencies: [
.Package(url: "ssh:[email protected]/Greeter.git",
versions: Version(1,0,0)..<Version(2,0,0)),
]
)
In this example I simply say that my Package with name “Hello” depends on package with:
- Url - ssh:[email protected]/Greeter.git
- Version range - Version(1,0,0)..<Version(2,0,0)
That is the most popular notation to specify your dependency version. Maybe because it’s shown in the documentation.
apple/swift-package-manager
swift-package-manager - The Package Manager for the Swift Programming Languagegithub.com
swift-package-manager - The Package Manager for the Swift Programming Languagegithub.com
But there are also many other formats to specify version dependency in the Manifest file.
Version formats
There are 5 formats to declare version specification for a Package dependency. Here are they:
- Range - Version(0,1,0)..<Version(2,0,0)
- MajorVersion - majorVersion: 0
- majorVersion minor - majorVersion: 0, minor: 1
- Version - Version(0, 1, 0)
- Version String - “0.1.0”
let package = Package(
name: “App”,
dependencies: [
.Package(url: “../Foo”, versions:
Version(0,1,0)..<Version(2,0,0)),
.Package(url: “../Foo”, majorVersion: 0),
.Package(url: “../Foo”, majorVersion: 0, minor: 1),
.Package(url: “../Foo”, Version(0, 1, 0)),
.Package(url: “../Foo”, “0.1.0”),
]
)
That’s it :)
Now you know many ways to specify a version for a dependency Package, choose it wisely :)