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.1.0 - 2026-02-01
- Support for Debian package versions
- Improved Javadoc for a number of version parsing methods.
5.0.0 - 2024-10-25
- The library has been migrated from JSR 305 to JSpecify for
nullchecking
4.5.0 - 2024-06-29
- New
JavaVersionandJavaVersionSchemeclasses to represent and interact with Java language versions (e.g. 11, 1.4, 17.0.11+34-cthing, 8u17) - A
JavaVersionExampleclass 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.isEmptymethod. - The
VersionParsingExceptionconstructor taking a message and a throwable is now public. - The Javadoc for the
VersionConstraintintersect,union, anddifferencemethods 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
checktask now depends on thebuildHealthtask and will fail the build on health violations
- Changed JSR-305 dependency from
implementationtoapi - Use cthing-projectversion library
ProjectVersionobject 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
weakproperty to aVersionConstraintto support Maven's concept of asoftconstraint (i.e. an undecorated dependency version).
4.0.0 - 2023-09-20
- Annotations moved to the
org.cthing.versionparser.internalpackage 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
Versionclass has been removed. Use one of the new versioning classes instead.
- Migrate to Java 17
- Parsing versions of various formats using the
Versionclass.