
Handles Semantic Versioning 2.0.0 specification; supports parsing, comparing, and incrementing version numbers. Includes data class structure for major, minor, patch, pre-release, and build metadata components.
Kotlin data class for Semantic Versioning 2.0.0 specification with Kotlin Multiplatform and Kotlin Serialization support.
Support parsing version number string and comparing version numbers using Comparable interface.
Gradle
repositories {
mavenCentral()
}
dependencies {
implementation("net.swiftzer.semver:semver:2.1.0")
}Parsing version number
val version: SemVer = SemVer.parse("1.0.0-beta+exp.sha.5114f85")
version.major // 1
version.minor // 0
version.patch // 0
version.preRelease // "beta"
version.buildMetadata // "exp.sha.5114f85"Comparing version numbers
val semVer1 = SemVer(1, 0, 0)
val semVer2 = SemVer(1, 0, 2)
assertTrue(semVer1 < semVer2)Creating next version numbers
val semVer = SemVer(1, 3, 5)
assertEquals(SemVer(1, 3, 6), semVer.nextPatch())
assertEquals(SemVer(1, 4, 0), semVer.nextMinor())
assertEquals(SemVer(2, 0, 0), semVer.nextMajor())Kotlin data class for Semantic Versioning 2.0.0 specification with Kotlin Multiplatform and Kotlin Serialization support.
Support parsing version number string and comparing version numbers using Comparable interface.
Gradle
repositories {
mavenCentral()
}
dependencies {
implementation("net.swiftzer.semver:semver:2.1.0")
}Parsing version number
val version: SemVer = SemVer.parse("1.0.0-beta+exp.sha.5114f85")
version.major // 1
version.minor // 0
version.patch // 0
version.preRelease // "beta"
version.buildMetadata // "exp.sha.5114f85"Comparing version numbers
val semVer1 = SemVer(1, 0, 0)
val semVer2 = SemVer(1, 0, 2)
assertTrue(semVer1 < semVer2)Creating next version numbers
val semVer = SemVer(1, 3, 5)
assertEquals(SemVer(1, 3, 6), semVer.nextPatch())
assertEquals(SemVer(1, 4, 0), semVer.nextMinor())
assertEquals(SemVer(2, 0, 0), semVer.nextMajor())