Skip to content

Repository files navigation

Version

CI Status

Version is a Swift Library, which enables to represent and compare semantic version numbers. It follows Semantic Versioning 2.0.0.

The representation is:

  • Comparable
  • Hashable & Equatable
  • String Literal Convertible
  • Printable

Usage

Versions could be either instantiated directly:

letversion=Version(
major:1,
minor:2,
patch:3,
prerelease:"alpha.1",
build:"B001")

Or they can be converted from a string representation:

letversion=tryVersion("1.2.3-alpha.1+B001")letversion:Version="1.2.3-alpha.1+B001"
// The line above is equivalent to:
letversion=try!Version("1.2.3-alpha.1+B001")

Versions can be compared between each other:

letversion=Version(from:ProcessInfo.processInfo.operatingSystemVersion)if version >"8.0.0"{
// do something in a more amazing way
}elseif version >"7.0.0"
// do it an old-fashioned, legacy-style
}else{
// do not care …
}

Besides UIKit's UIDevice the more preferable variant to access the operation system version in Foundation as shown below is supported, too.

letversion=Version(from:ProcessInfo.processInfo.operatingSystemVersion)if version =="8.0.1"{NSLog("Sorry no cellular data for you, my friend!")}

Finally Versions can be directly read from bundles:

ifNSBundle(path:"Alamofire.framework").version! <"1.0.0"{println("Howdy Ho! Such an early-adopter using an unstable version!")println("Beware: “Anything may change at any time.”")
// … or insert an actual meaningful special handling
// for version-specific *implementation details* here.
}

ATTENTION: Take care when you check versions of frameworks. Such checks happen at runtime. They can hurt performance if used at the wrong place. If there are API changes and you want to consume new methods, you have to do that at compile time by checking with precompiler macros (#if) for definitions, which have been passed to the compiler build setting OTHER_SWIFT_FLAGS.

Installation

Swift Package Manager

.package(url:"https://github.com/mrackwitz/Version.git",),

Cocoapods

Version is available through CocoaPods. To install it, simply add the following lines to your Podfile:

use_frameworks!pod'Version'

Carthage

github"mrackwitz/Version"

Author

Marius Rackwitz, git@mariusrackwitz.de
Find me on Twitter as @mrackwitz.

License

Version is available under the MIT license. See the LICENSE file for more info.

About

Represent and compare versions via semantic versioning (SemVer) in Swift

Topics

Resources

Stars

185 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages