This Go package implements parsing and comparison of semantic version (semver) strings, as defined by the Semantic Versioning 2.0.0 specification.
Several semver implementations exist for Go. This implementation was designed for high performance in applications where semver operations may be done frequently, such as in the LaunchDarkly Go SDK. To that end, it does not use regular expressions and it never allocates data on the heap.
It does not include any additional functionality beyond what is defined in the Semantic Versioning 2.0.0 specification, such as comparison against range/wildcard expressions like ">=1.0.0" or "2.5.x".
This package has no external dependencies other than the regular Go runtime.
The library supports the 'latest' and 'penultimate' Go versions defined in this file.
LaunchDarkly intends to keep those versions up-to-date with the Go project's latest two releases, which represents a support period of roughly 1 year. This policy is intended to match Go's official Release Policy: each major Go release is supported until there are two newer major releases.
Additionally, a 'minimum' version is tested in CI but not officially supported. This minimum version is found in go.mod. This version may be bumped from time to time as new Go features become available that are useful to the SDK.
We encourage pull requests and other contributions from the community. Check out our contributing guidelines for instructions on how to contribute to this project.