This project follows Semantic Versioning (SemVer) principles.
MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
Example: 1.2.3, 2.0.0-beta, 1.0.0-rc.1
Increment when you make incompatible API changes:
- Remove public methods or types
- Change method signatures in breaking ways
- Change return types
- Modify enum values
- Remove support for a platform/framework
Example: 1.0.0 → 2.0.0
Increment when you add new functionality in a backwards-compatible way:
- Add new public methods
- Add new types
- Add optional parameters (with defaults)
- Extend enums with new values
- Improve performance without API changes
Example: 1.0.0 → 1.1.0
Increment for backwards-compatible bug fixes:
- Fix bugs in existing functionality
- Internal refactoring
- Documentation updates
- Performance improvements
Example: 1.0.0 → 1.0.1
Use for alpha/beta releases:
1.0.0-alpha- early development1.0.0-beta- feature-complete, testing phase1.0.0-rc.1- release candidate
Optional build metadata (not part of version precedence):
1.0.0+build.20240107
Edit src/MultiGpuHelper/MultiGpuHelper.csproj:
<Version>1.2.3</Version>Document changes in a CHANGELOG.md file:
## [1.2.3] - 2024-01-07
### Added
- New GPU refresh API
- Support for async work item prioritization
### Fixed
- VRAM budget calculation edge case
- Memory leak in GpuDispatcher
### Changed
- Improved error messages for GPU selectiongit add src/MultiGpuHelper/MultiGpuHelper.csproj CHANGELOG.md
git commit -m "Bump version to 1.2.3"git tag -a v1.2.3 -m "Release version 1.2.3"git push origin v1.2.3dotnet build -c Release
dotnet pack src/MultiGpuHelper/MultiGpuHelper.csproj -c Release -o ./artifactsThe NuGet package will be generated as:
MultiGpuHelper.1.2.3.nupkgMultiGpuHelper.1.2.3.snupkg(symbols)
# For internal testing/local nuget server
dotnet nuget push ./artifacts/MultiGpuHelper.1.2.3.nupkg -s https://your-nuget-serverOr via GitHub Actions:
- Tag on
mainbranch triggers CI - CI builds and uploads package as artifact
- Maintainers publish manually to nuget.org
Before releasing a MAJOR version:
- Deprecation Period: If possible, deprecate old APIs first (MINOR release)
- Documentation: Clearly document breaking changes in README and CHANGELOG
- Migration Guide: Provide examples showing how to update code
- Communication: Announce breaking changes in advance (if applicable)
Current version is defined in: src/MultiGpuHelper/MultiGpuHelper.csproj
View version:
dotnet nuget locals all --list
# or
cat src/MultiGpuHelper/MultiGpuHelper.csproj | grep -i "<Version>"- 1.0.0 (2024-01-07): Initial release
- GPU device management
- Multi-GPU work dispatching
- VRAM budgeting
- Device selection policies (RoundRobin, MostFreeVram, SpecificDevice)
- Concurrency control via semaphores
- NVIDIA GPU detection via nvidia-smi