Commit 3ab70d0
authored
chore: release 0.3.0-rc.1 — drop dead refs, ship 2 NuGet packages, honest 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.9 files changed
Lines changed: 184 additions & 180 deletions
File tree
- .github/workflows
- docs
- src
- ShellUI.CLI
- ShellUI.Components
- ShellUI.Core
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
48 | 51 | | |
49 | 52 | | |
50 | 53 | | |
51 | 54 | | |
52 | 55 | | |
53 | 56 | | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | 57 | | |
59 | 58 | | |
60 | 59 | | |
| |||
73 | 72 | | |
74 | 73 | | |
75 | 74 | | |
76 | | - | |
77 | 75 | | |
78 | 76 | | |
79 | 77 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
307 | | - | |
| 307 | + | |
308 | 308 | | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
313 | 313 | | |
314 | | - | |
315 | | - | |
316 | | - | |
| 314 | + | |
317 | 315 | | |
318 | | - | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
319 | 319 | | |
320 | | - | |
321 | 320 | | |
322 | 321 | | |
323 | | - | |
324 | | - | |
325 | | - | |
| 322 | + | |
| 323 | + | |
326 | 324 | | |
327 | 325 | | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
| 326 | + | |
332 | 327 | | |
333 | | - | |
334 | | - | |
| 328 | + | |
335 | 329 | | |
336 | | - | |
| 330 | + | |
337 | 331 | | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
| 332 | + | |
345 | 333 | | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
| 334 | + | |
354 | 335 | | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
360 | 340 | | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
| 341 | + | |
366 | 342 | | |
367 | | - | |
| 343 | + | |
368 | 344 | | |
369 | 345 | | |
370 | 346 | | |
| |||
554 | 530 | | |
555 | 531 | | |
556 | 532 | | |
557 | | - | |
558 | | - | |
| 533 | + | |
| 534 | + | |
559 | 535 | | |
560 | | - | |
561 | | - | |
562 | | - | |
563 | | - | |
564 | 536 | | |
565 | 537 | | |
566 | 538 | | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
571 | | - | |
572 | | - | |
573 | | - | |
574 | | - | |
575 | | - | |
576 | | - | |
577 | | - | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
578 | 542 | | |
579 | 543 | | |
580 | 544 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
1 | 112 | | |
2 | 113 | | |
3 | 114 | | |
| |||
0 commit comments