Skip to content
musk edited this page Aug 12, 2021 · 3 revisions

Kotlin-Semver-Tools

DRAFT

A library used for managing semantic versions according to Semantic Versioning 2.0.0 published under the MIT License written in Kotlin

Using Kotlin Semver Tools

The library is available from Maven Central To use it simply add a dependency to your project

Maven

<dependency>
    <groupId>io.github.musk.semver</groupId>
    <artifactId>semver-library</artifactId>
    <version>1.0.0</version>
</dependency>

Gradle

Using Groovy DSL

implementation 'io.github.musk.semver:semver-library:1.0.0'

Using Kotlin DSL

implementation("io.github.musk.semver:semver-library:1.0.0")

Usage Example

Kotlin

val version = "1.2.3-BETA+421a234fdef"
if (Semver.validate()) {
    val semver = Semver(version)
    println(semver.major) // prints 1
    println(semver.minor) // prints 2
    println(semver.patch) // prints 3
    println(semver.prerel) // prints "BETA"
    println(semver.build) // prints "421a234fdef"
    println(semver.patch()) // prints 1.2.4
    println(semver.minor()) // prints 1.3.0
    println(semver.major()) // prints 2.0.0
    println(semver.prerel("TEST")) // prints 1.2.3-TEST
    println(semver.build("12345AB")) // prints 1.2.3-BETS+12345AB
    println(semver.release()) // prints 1.2.3

    val otherVersion = Semver(semver.major, semver.minor, 10, "A-LABEL", "76abfe42af")
    val equalVersion = otherVersion.clone()
}
// convenience methods for String
val string2Semver: Semver = "1.2.3-SNAPSHOT".toSemver()

if ("1.2.3".isSemver())
    println("This is a semantic version")

fun ifPossibleCreateRelease(version: String): Semver? = version.ifSemver {
    it.release()
} 

Development

See Development

Clone this wiki locally