Swiftpack.co - taji-taji/SemanticVersioning as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by taji-taji.
taji-taji/SemanticVersioning 1.0.0
This package provides the Swift protocol compatible with Semantic Versioning (2.0.0).
⭐️ 0
🕓 23 weeks ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/taji-taji/SemanticVersioning.git", from: "1.0.0")

SemanticVersioning [x.x.x]

This package provides the Swift protocol compatible with Semantic Versioning (2.0.0).

Test MIT License Latest Version

Features

  • By conforming to the SemanticVersioning protocol, it can be represented as a type that behaves as a version of software compliant with Semantic Versioning (2.0.0).

    import SemanticVersioning
    
    // conforms to SemanticVersioning
    struct MyAppVersion: SemanticVersioning {
      let major: Int
      let minor: Int
      let patch: Int
      let preRelease: PreRelease?
      let buildMetaData: String?
    }
    
  • Can be initialized from String literals.

    let appVersion: MyAppVersion = "1.1.1"
    // String literals can also contain pre-release and build metadata.
    // let appVersion: MyAppVersion = "1.1.1-alpha"
    // let appVersion: MyAppVersion = "1.1.1-alpha+build.1"
    
  • Comparable and Equatable.

    if appVersion > "1.0.0" {
      // Some operation when appVersion is greater than 1.0.0
    } else if appVersion == "0.1.0" {
      // Some operation when appVersion is 0.1.0 
    }
    
  • Increment version number.

    print(appVersion)
    // -> 1.1.1
    print(appVersion.increment(.major))
    // -> 2.0.0
    print(appVersion.increment(.minor))
    // -> 1.2.0
    print(appVersion.increment(.patch))
    // -> 1.1.2
    
  • Validate version format with macro.

    import SemanticVersioningMacro
    
    let validVersionString = #semanticVersioning("1.0.0") // Valid format!
    let invalidVersionString = #semanticVersioning("1.0.a") // Invalid format! Compile error!
    

Requirements

  • Swift 5.9 or later
  • macOS 10.15+ or iOS 12.0+ or watchOS 4.0+ or tvOS 1.0+

Supported Platforms

  • Apple Platforms
  • Linux

Usage

Package.swift

  1. Add SemanticVersioning to your Package.swift dependencies:

    .package(url: "https://github.com/taji-taji/SemanticVersioning.git", from: "1.0.0")
    
  2. Add SemanticVersioning to your dependencies of SemanticVersioning target:

    .product(name: "SemanticVersioning", package: "SemanticVersioning"),
    // If you want to use macro, add `SemanticVersioningMacro`. 
    .product(name: "SemanticVersioningMacro", package: "SemanticVersioning"),
    

GitHub

link
Stars: 0
Last commit: 23 weeks ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Dependencies

Release Notes

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics