2026-04-05 08:23:42 +02:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
|
|
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
|
|
|
|
|
## [1.0.0] - 2026-05-21
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
|
|
- This is the initial release of the library.
|
|
|
|
|
|
|
|
|
|
## [Unreleased]
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
2026-07-11 22:05:15 +02:00
|
|
|
- `SemanticVersion` and `SemanticVersionRange` can now be used as `System.Text.Json`
|
|
|
|
|
dictionary keys. The custom converters override `ReadAsPropertyName`/`WriteAsPropertyName`
|
|
|
|
|
so `Dictionary<TKey, TValue>` round-trips correctly.
|
2026-07-12 23:02:24 +02:00
|
|
|
- New `IdentifierList` value type for prerelease/build-metadata identifiers.
|
2026-07-11 22:05:15 +02:00
|
|
|
|
2026-04-05 08:23:42 +02:00
|
|
|
### Changed
|
|
|
|
|
|
2026-07-12 23:02:24 +02:00
|
|
|
- **Breaking:** `SemanticVersion.Prerelease` and `SemanticVersion.Metadata` are now `IdentifierList`
|
|
|
|
|
instead of `string?`. Implicit `string` conversions keep most call sites compiling, but the property
|
|
|
|
|
type change is breaking and requires a recompile. Constructors additionally accept `IdentifierList`.
|
2026-07-11 21:57:45 +02:00
|
|
|
- `SemanticVersion` `==`/`Equals`/`GetHashCode` now ignore build metadata, matching precedence comparison rules.
|
2026-07-11 22:04:15 +02:00
|
|
|
- `SemanticVersionRange` equality (`==`, `Equals`, `GetHashCode`) is now structural and based
|
|
|
|
|
on the constraint sets, so ranges that parse to the same comparators compare as equal
|
|
|
|
|
(previously it was reference-sensitive on the backing array).
|
2026-07-12 23:02:24 +02:00
|
|
|
- `SemanticVersionComparer` now enumerates the `IdentifierList` segments directly instead of
|
|
|
|
|
re-splitting the joined identifier strings.
|
2026-07-11 21:57:45 +02:00
|
|
|
|
2026-07-11 21:56:56 +02:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
|
|
- Reject invalid SemVer identifiers when parsing versions.
|
2026-07-11 21:57:12 +02:00
|
|
|
- Range exact and non-equal comparators ignore build metadata when matching versions.
|
2026-07-11 21:57:23 +02:00
|
|
|
- Avoid infinite recursion when formatting ranges in the short npm (`ns`) form.
|
2026-07-11 21:56:56 +02:00
|
|
|
|
2026-04-05 08:23:42 +02:00
|
|
|
### Removed
|
|
|
|
|
|
|
|
|
|
[1.0.0]: https://code.geekeey.de/geekeey/semver/releases/tag/1.0.0
|
|
|
|
|
[Unreleased]: https://code.geekeey.de/geekeey/semver/compare/1.0.0...HEAD
|