ShellUI follows a unified versioning approach where all components, CLI, and packages share the same version number. This ensures consistency and simplifies dependency management while providing users with multiple ways to access specific versions.
Current Release: v0.3.0-alpha.2
- ✅ 100 production-ready components
- ✅ CLI tool + NuGet packages
- ✅ Full Blazor WebAssembly + Server support
- ✅ Tailwind CSS v4.1.17 integration
Single Source of Truth:
<!-- Directory.Build.props (root) -->
<ShellUIVersion>0.3.0</ShellUIVersion>
<ShellUIVersionSuffix>alpha.1</ShellUIVersionSuffix> <!-- Empty for stable -->Automatically Applied To:
- ✅ All NuGet packages (
ShellUI.CLI,ShellUI.Components,ShellUI.Core) - ✅ All ~100 component templates
- ✅ Build configurations
- ✅ Component metadata
# 1. Update version in Directory.Build.props
<ShellUIVersion>0.3.0</ShellUIVersion>
# 2. Clean and rebuild
dotnet clean && dotnet build --configuration Release# Always installs latest compatible version
shellui add button input cardWhy? CLI-first approach prioritizes latest features and bug fixes.
# Install specific version via NuGet (current: 0.3.0-alpha.2)
dotnet add package ShellUI.Components --version 0.3.0-alpha.2
dotnet add package ShellUI.CLI --version 0.3.0-alpha.2# Clone specific version (current: v0.3.0-alpha.2)
git clone --branch v0.3.0-alpha.2 https://github.com/shellui-dev/shellui.git
# Or download release archive
# https://github.com/shellui-dev/shellui/releases/tag/v0.3.0-alpha.2docs/
├── v0.2.x/ # v0.2 stable docs
├── v0.3.0-alpha/ # Current alpha (v0.3.0-alpha.2)
└── latest/ # Always points to latest (main)
{
"installedComponents": [
{
"name": "button",
"version": "0.3.0-alpha.2",
"installedAt": "2026-01-11T...",
"isCustomized": false
}
]
}✅ Dynamic, Not Hardcoded: Versions are computed from centralized source, not hardcoded in components.
# 1. Version already set in Directory.Build.props:
# <ShellUIVersion>0.3.0</ShellUIVersion>
# <ShellUIVersionSuffix>alpha.2</ShellUIVersionSuffix>
# 2. Build all packages
dotnet build --configuration Release
# 3. Create git tag
git tag v0.3.0-alpha.2
git push origin v0.3.0-alpha.2
# 4. GitHub release runs via CI (publishes NuGet, creates release)# 1. Update Directory.Build.props: set ShellUIVersionSuffix to empty
<ShellUIVersion>0.3.0</ShellUIVersion>
<ShellUIVersionSuffix></ShellUIVersionSuffix>
# 2. Build, test, tag, release
git tag v0.3.0
git push origin v0.3.0
# 3. Update docs/v0.3.x/- MAJOR.MINOR.PATCH (e.g., 0.3.0)
- Breaking Changes: MAJOR version bump
- New Features: MINOR version bump
- Bug Fixes: PATCH version bump
- Components within same MINOR version are fully compatible
- CLI can upgrade components within same MAJOR version
- Breaking changes require MAJOR version bump
- CLI users: Automatically get latest via
shellui add - NuGet users: Can pin to specific versions
- Custom components: Can be manually updated
- Latest:
shellui.dev/docs(main) - v0.2.x:
shellui.dev/docs/v0.2.x(stable) - v0.3.0-alpha:
shellui.dev/docs(current alpha on main)
- Component templates use dynamic versioning
- CLI computes versions at runtime
- shellui.json stores computed versions (not hardcoded)
- Single file controls all versioning
- Automated propagation to all components
- Easy version management for maintainers
- CLI for latest features
- NuGet for version pinning
- Git for source access
- Docs for version-specific guidance
ShellUI v0.3.0-alpha.2 (current) and v0.3.0 (future stable) with:
- ✅ Unified versioning system
- ✅ No hardcoded component versions
- ✅ Multiple user access methods
- ✅ Professional release management
- ✅ Future-proof architecture
Ready to ship! 🚀