tetri.net.SemanticVersioning
0.2.1
dotnet add package tetri.net.SemanticVersioning --version 0.2.1
NuGet\Install-Package tetri.net.SemanticVersioning -Version 0.2.1
<PackageReference Include="tetri.net.SemanticVersioning" Version="0.2.1" />
<PackageVersion Include="tetri.net.SemanticVersioning" Version="0.2.1" />
<PackageReference Include="tetri.net.SemanticVersioning" />
paket add tetri.net.SemanticVersioning --version 0.2.1
#r "nuget: tetri.net.SemanticVersioning, 0.2.1"
#:package tetri.net.SemanticVersioning@0.2.1
#addin nuget:?package=tetri.net.SemanticVersioning&version=0.2.1
#tool nuget:?package=tetri.net.SemanticVersioning&version=0.2.1
SemanticVersioning
A robust Semantic Versioning 2.0.0 implementation for .NET with full support for parsing, comparison, and version operations.
📦 Installation
Install via NuGet Package Manager:
dotnet add package tetri.net.SemanticVersioning
Or add directly to your .csproj
:
<PackageReference Include="tetri.net.SemanticVersioning" Version="1.0.0" />
🚀 Quick Start
Creating versions
// From string
var version = new SemanticVersion("1.2.3-alpha.1+20240301");
// Using constructor
var version = new SemanticVersion(major: 1, minor: 2, patch: 3, prerelease: "alpha.1", build: "20240301");
Comparing versions
var v1 = new SemanticVersion("1.2.3");
var v2 = new SemanticVersion("1.3.0");
if (v1 < v2)
{
Console.WriteLine($"{v1} is less than {v2}");
}
Supported operations
// Equality
bool equal = v1 == v2;
// Comparison
bool greater = v1 > v2;
// Comparison methods
int result = v1.CompareTo(v2);
✨ Features
✅ Strict SemVer 2.0.0 string parsing
✅ Full version comparison support
✅ Pre-release support (alpha, beta, rc)
✅ Build metadata support
✅ Overloaded operators (==, !=, <, >, ⇐, >=)
✅ Immutable and thread-safe
✅ JSON/XML serialization ready
📚 Advanced Examples
Pre-releases
var stable = new SemanticVersion("1.0.0");
var beta = new SemanticVersion("1.0.0-beta.2");
Console.WriteLine(stable > beta); // True - stable versions have precedence
Build metadata
var v1 = new SemanticVersion("1.0.0+build.1");
var v2 = new SemanticVersion("1.0.0+build.2");
Console.WriteLine(v1 == v2); // True - build metadata doesn't affect equality
🤝 Contributing
We welcome contributions! Please follow these steps:
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Crafted with 🧠 by Tetri Mesquita
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
- System.Text.Json (>= 9.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.