`version`
A Scala 3 toolkit for intent-based versioning conforming to Semantic Versioning 2.0.0.
API Structure
This library is organised into multiple modules, each addressing distinct concerns:
-
version(version): Core SemVer model providing:- Opaque types for version components (MajorVersion, MinorVersion, PatchNumber, PreReleaseNumber)
- Pre-release classifiers with precedence ordering (PreReleaseClassifier)
- Structured pre-release information (PreRelease)
- Build metadata handling (Metadata)
- Complete version representation with parsing and operations (Version)
-
version-cli-core(version.cli.core): Git-based version derivation engine providing:- Resolution configuration (CliConfig)
- Commit message keyword parsing (KeywordParser)
- Version resolution (Resolver)
-
version-cli(version.cli): Command-line application for version resolution:- CLI entry point (CLI)
- Option parsing (CliOptions)
-
sbt-version: sbt 2.x plugin for build integration (see VersionPlugin) -
Codec modules: Serialisation support for various formats:
version-codecs-jsoniter(version.codecs.jsoniter) — jsoniter-scala codecsversion-codecs-zio(version.codecs.zio) — ZIO JSON codecsversion-codecs-yaml(version.codecs.yaml) — scala-yaml codecs
-
version-zio-prelude(version.zio.prelude): ZIO Prelude type class instances
Attributes
Members list
In this article