Ubiquity.NET.Versioning
5.0.4
See the version list below for details.
dotnet add package Ubiquity.NET.Versioning --version 5.0.4
NuGet\Install-Package Ubiquity.NET.Versioning -Version 5.0.4
<PackageReference Include="Ubiquity.NET.Versioning" Version="5.0.4" />
<PackageVersion Include="Ubiquity.NET.Versioning" Version="5.0.4" />
<PackageReference Include="Ubiquity.NET.Versioning" />
paket add Ubiquity.NET.Versioning --version 5.0.4
#r "nuget: Ubiquity.NET.Versioning, 5.0.4"
#:package Ubiquity.NET.Versioning@5.0.4
#addin nuget:?package=Ubiquity.NET.Versioning&version=5.0.4
#tool nuget:?package=Ubiquity.NET.Versioning&version=5.0.4
About
The Ubiquity.NET.Versioning library provides types to support use of versioning via
- Semantic Versioning
- Constrained Semantic Versioning
- Including Continuous Integration (CI) via CSemVer-CI
It is viable as a standalone package to allow validation of or comparisons to versions reported at runtime. (Especially from native interop that does not support package dependencies or versioning at runtime.)
Example
var epectedMinimum = new CSemVer(20, 1, 5, "alpha");
var actual = CSemVer.From(SomeAPIToRetrieveAVersionAsUInt64());
if (actual < expectedMinimum)
{
// Uh-OH! "older" version!
}
// Good to go...
Formatting
The library contains support for proper formatting of strings based on the rules of a SemVer, CSemVer, and CSemVer-CI
Parsing
The library contains support for parsing of strings based on the rules of a SemVer, CSemVer, and CSemVer-CI
Ordering
The types all support IComparable<T>
<sup>1</sup> and properly handle correct sort ordering of the
versions according to the rules of SemVer (Which, CSemVer and CSemVer-CI follow)
The formal 'spec' for CSemVer remains mostly silent on the point of the short format. See this known issue. Since, the existence of that form was to support NuGet V2, which is now obsolete, this library does not support the short form at all. (This choice keeps documentation clarity [NOT SUPPORTED] and implementation simplicity)
<sup><a id="footnote_1">1</a></sup> SemVer
does NOT support IComparable<T>
as the spec is
not explicit on case sensitive comparison of AlphaNumeric Identifiers. Unfortunately, major
repositories using SemVer have chosen to use different comparisons. Thus, a consumer is required
to know a-priori if the version is compared insensitive or not. IComparer<SemVer>
instances
are available for both cases via the static class SemVerComparer
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Sprache (>= 2.3.1)
- System.Text.RegularExpressions (>= 4.3.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Ubiquity.NET.Versioning:
Package | Downloads |
---|---|
Ubiquity.NET.Llvm.Interop
.NET Low Level Interop Bindings for Ubiquity.LibLLVM []. Direct use of this low level API is **STRONGLY** discouraged, instead you should use the Ubiquity.NET.Llvm package, which provides a full C# object model projection of the LLVM APIs on top of this library. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
6.0.1 | 165 | 7/15/2025 |
6.0.1-beta | 133 | 7/14/2025 |
6.0.1-alpha | 136 | 7/10/2025 |
5.0.4 | 90 | 6/28/2025 |
5.0.3-alpha | 81 | 6/27/2025 |
5.0.1-alpha | 80 | 6/27/2025 |
5.0.0-rc.1 | 267 | 6/10/2025 |
5.0.0-rc | 201 | 6/4/2025 |
4.0.0-a | 141 | 5/21/2025 |