Tags: shellui-dev/shellui
Tags
chore: release 0.3.0-rc.1 — drop dead refs, ship 2 NuGet packages, ho… …nest install docs (#18) ## Summary Release candidate for `v0.3.0`. Three concerns landed together because they're all about "what does shipping look like now": 1. **Version + release notes** — bumps suffix to `rc.1`, prepends a consolidated changelog covering the five fix branches (1–5) that ran during the alpha series 2. **Drop dead project references** — `ShellUI.Components` had a phantom `ProjectReference` to `ShellUI.Core` and `ShellUI.CLI` had one to `ShellUI.Components`. Both had zero `using` directives anywhere in source — pure dead weight. The Components→Core ghost ref is exactly what shipped the NU1102 dependency error in alpha.2 3. **Honest install docs** — every doc previously advertised "Option 1: CLI, Option 2: NuGet" as equivalent paths. They're not. Tailwind v4 scans source files; component source lives inside the DLL when installed via NuGet, so Tailwind never sees the utility classes and components render without their layout/spacing/typography rules. CLI is the supported path; NuGet alone is documented as a known limitation pending v0.4.x No source code changes. Tests still pass (53/53). ## Changes ### Version bump - `Directory.Build.props` — `<ShellUIVersionSuffix>alpha.3</ShellUIVersionSuffix>` → `rc.1`. Propagates to all four packages via the centralized version system. ### Release notes - `docs/RELEASE_NOTES.md` — prepended `# ShellUI v0.3.0-rc.1 🚦` section covering all five fix branches (template escapes, sidebar/theme runtime, init bootstrap, data-table half-install, chart-tooltip CSS) + the test/CI infrastructure that came with them (53 tests, drift detection, CI smoke that scaffolds + builds a real app) ### Dead project references removed - `src/ShellUI.Components/ShellUI.Components.csproj` — dropped the `ProjectReference` to `ShellUI.Core`. Verified by grep: **zero** `using ShellUI.Core` or `ShellUI.Core.*` references anywhere in `src/ShellUI.Components/`. The ref was a phantom — it propagated to the `.nuspec` as a runtime dependency, which is what blew up alpha.2 with NU1102 when only `Core 0.1.0` existed on NuGet. - `src/ShellUI.CLI/ShellUI.CLI.csproj` — dropped the `ProjectReference` to `ShellUI.Components`. Also zero `using` directives anywhere in `src/ShellUI.CLI/`. The CLI only needs `Core` (for `ComponentMetadata`, `ShellUIConfig`, `NuGetDependency`, `ProjectInfo`) and `Templates` (for `ComponentRegistry`). - `src/ShellUI.Core/ShellUI.Core.csproj` — marked `<IsPackable>false</IsPackable>`. Was emitting an orphan `.nupkg` no one pushed. Now `dotnet pack ShellUI.sln` produces exactly the two packages we actually ship. ### Release workflow - `.github/workflows/release.yml` — dropped the Core push step and removed Core from the GH Release asset list. Now publishes only `ShellUI.CLI` + `ShellUI.Components` to NuGet, mirroring what actually exists. ### Documentation sweep - `README.md` — replaced the misleading "Option 1: CLI / Option 2: NuGet" section with one honest "CLI is the install path" section + a clearly-labeled "advanced manual setup" subsection. The package-overview table now says CLI is required and the Components package is optional with a clear use-case description. - `src/ShellUI.Components/README.md` (ships in the NuGet package, shows on nuget.org) — leads with a "Read this first" warning that the package alone doesn't produce styled components, explains why (Tailwind compiles by scanning source files), points users to the CLI, and notes the v0.4.x roadmap. - `src/ShellUI.CLI/README.md` (also on nuget.org) — expanded the `shellui init` description to list everything it actually does now (theme bootstrap, render mode, shellui.js link, MSBuild integration, idempotency) so users know what they get for free. ## Verification - `dotnet pack ShellUI.sln -c Release` after cleaning the bin folder produces exactly two packages: ``` src/ShellUI.CLI/bin/Release/ShellUI.CLI.0.3.0-rc.1.nupkg src/ShellUI.Components/bin/Release/ShellUI.Components.0.3.0-rc.1.nupkg ``` - Extracted `ShellUI.Components.0.3.0-rc.1.nuspec` confirms the dependency graph is clean — only the three real runtime deps (`Blazor-ApexCharts`, `Microsoft.AspNetCore.Components.Web`, `System.Linq.Dynamic.Core`), no `ShellUI.Core`: ```xml <dependencies> <group targetFramework="net9.0"> <dependency id="Blazor-ApexCharts" version="6.0.2" exclude="Build,Analyzers" /> <dependency id="Microsoft.AspNetCore.Components.Web" version="9.0.6" exclude="Build,Analyzers" /> <dependency id="System.Linq.Dynamic.Core" version="1.7.1" exclude="Build,Analyzers" /> </group> </dependencies> ``` The NU1102 alpha.2-class bug is now structurally impossible. - `dotnet test ShellUI.Tests -c Release` — **53/53 passing** ## Test plan - [ ] Merge to `main` - [ ] Tag `v0.3.0-rc.1` - [ ] Confirm `release.yml` publishes exactly 2 nupkgs (CLI + Components) and a GitHub Release with the new top-of-file notes as the body - [ ] `dotnet tool install -g ShellUI.CLI --version 0.3.0-rc.1` works - [ ] `dotnet add package ShellUI.Components --version 0.3.0-rc.1 --prerelease` resolves *without* trying to fetch `ShellUI.Core` from NuGet (this would have failed in alpha.2) - [ ] Soak for ~3 days against real consumer projects ## Next step If the soak window stays quiet: open `chore/release-0.3.0` — empty version suffix, README/PROJECT_STATUS "stable" wording, `VERSIONING_STRATEGY.md` API-contract doc. Then tag `v0.3.0`. After that, `chore/net10-upgrade` opens the 0.4 cycle.