All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
5.0.0 - 2024-10-25
- The library has been migrated from JSR 305 to JSpecify for
null
checking
4.5.0 - 2024-06-29
- New
JavaVersion
andJavaVersionScheme
classes to represent and interact with Java language versions (e.g. 11, 1.4, 17.0.11+34-cthing, 8u17) - A
JavaVersionExample
class has been added to the examples subproject - New
VersionConstraint.complement()
method to obtain a constraint representing all versions not in a constraint. For example, the complement of the constraint[1.5,2.0)
is(,1.5),[2.0,)
. - New
VersionConstraint.isNotEmpty()
method to indicate that a version constraint contains version ranges. This method complements the existingVersionConstraint.isEmpty
method. - The
VersionParsingException
constructor taking a message and a throwable is now public. - The Javadoc for the
VersionConstraint
intersect
,union
, anddifference
methods now have examples showing the results of the operations on various constraints
4.4.0 - 2024-06-02
- The
SemanticVersion.parse(String coreVersion, String preReleaseIdentifier)
andSemanticVersion.parse(String coreVersion, boolean snapshot)
convenience methods.
4.3.0 - 2024-05-25
- The
SemanticVersion.getCoreVersion()
method to obtain the major, minor and patch version without pre-release and build metadata - Dependency analysis Gradle plugin
- The
check
task now depends on thebuildHealth
task and will fail the build on health violations
- Changed JSR-305 dependency from
implementation
toapi
- Use cthing-projectversion library
ProjectVersion
object for project version
4.2.1 - 2023-12-22
- Dependency on org.cthing:cthing-annotations library
- Migrated from internal annotations to using cthing-annotations library
- The internal package org.cthing.versionparser.internal has been removed
4.2.0 - 2023-11-23
- Added RubyGems versioning
4.1.0 - 2023-10-02
- Added a
weak
property to aVersionConstraint
to support Maven's concept of asoft
constraint (i.e. an undecorated dependency version).
4.0.0 - 2023-09-20
- Annotations moved to the
org.cthing.versionparser.internal
package since they should not be considered part of the public API.
3.0.0 - 2023-09-18
- First version published to Maven Central
- Complete redesign of the library
- Support for parsing Maven versions and version constraints
- Support for parsing Gradle versions and version constraints
- Support for parsing NPM versions and version constraints
- Support for parsing Semantic versions
- Support for parsing Calendar versions
- The original
Version
class has been removed. Use one of the new versioning classes instead.
- Migrate to Java 17
- Parsing versions of various formats using the
Version
class.