From cb5d36c2f863d7dcf9690c31d61e4311dfc88871 Mon Sep 17 00:00:00 2001 From: Shewatipa Tseisi Date: Tue, 13 Oct 2026 16:07:34 +0200 Subject: [PATCH] chore(release): v0.4.0-alpha.2 Release notes for 0.4.0-alpha.2 (the shared Tailwind CLI, update and remove, color-scheme, TimePicker, theme CSS, package icon), plus the 0.3.3 and 0.3.4 notes from release/v0.3. Docs now name 0.3.4 as the latest stable release and 0.4.0-alpha.2 as the prerelease, and the last-resort version fallbacks match. --- Directory.Build.props | 2 +- README.md | 6 +- VERSIONING_STRATEGY.md | 8 +- docs/CLI_INSTALLATION.md | 6 +- docs/CLI_SYNTAX.md | 4 +- docs/FAQ.md | 4 +- docs/QUICKSTART.md | 4 +- docs/RELEASE_NOTES.md | 84 ++++++++++++++++++++ src/ShellUI.Core/Models/ComponentMetadata.cs | 2 +- src/ShellUI.Templates/VersionHelper.cs | 2 +- 10 files changed, 103 insertions(+), 19 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 20539fc..33c9952 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -3,7 +3,7 @@ 0.4.0 - alpha.1 + alpha.2 diff --git a/README.md b/README.md index 5ccefb2..6e02eb1 100644 --- a/README.md +++ b/README.md @@ -24,12 +24,12 @@ | Channel | Version | Notes | |---|---|---| -| Latest stable (recommended) | `0.3.2` | Tailwind CSS `4.3.2` | -| Prerelease | `0.4.0-alpha.1` | This branch; install with `--version 0.4.0-alpha.1` | +| Latest stable (recommended) | `0.3.4` | Tailwind CSS `4.3.2` | +| Prerelease | `0.4.0-alpha.2` | This branch; install with `--version 0.4.0-alpha.2` | The CLI needs the .NET 10 SDK and works in Blazor projects on .NET 8, 9 and 10. The `ShellUI.Components` NuGet package targets .NET 10 only; on .NET 8 or 9, use the CLI. -`main` is the 0.4 line, so this README and `docs/` describe `0.4.0-alpha.1`, including features that are not in a stable release yet, such as `shellui init --dashboard` and the auth blocks. For the stable version, read the [v0.3.2 docs](https://github.com/shellui-dev/shellui/tree/v0.3.2). Prereleases need `--version` to install. +`main` is the 0.4 line, so this README and `docs/` describe `0.4.0-alpha.2`, including features that are not in a stable release yet, such as `shellui init --dashboard` and the auth blocks. For the stable version, read the [v0.3.4 docs](https://github.com/shellui-dev/shellui/tree/v0.3.4). Prereleases need `--version` to install. ShellUI is pre-1.0, so APIs and generated output can still change between minor versions. Validate it in your target Blazor and hosting environments before relying on it. diff --git a/VERSIONING_STRATEGY.md b/VERSIONING_STRATEGY.md index a1f0650..965fd9b 100644 --- a/VERSIONING_STRATEGY.md +++ b/VERSIONING_STRATEGY.md @@ -6,7 +6,7 @@ ShellUI uses one centralized version for the source templates, CLI tool, and pac | Scope | Value | |---|---| -| Version | `0.4.0-alpha.1` (prerelease; latest stable `0.3.2`) | +| Version | `0.4.0-alpha.2` (prerelease; latest stable `0.3.4`) | | Target framework | .NET 10 | | Tailwind version | `4.3.2` | @@ -19,13 +19,13 @@ The root `Directory.Build.props` supplies the version: ```xml 0.4.0 - alpha.1 + alpha.2 ``` `Directory.Build.props` composes the package and assembly metadata: -- `Version` becomes `0.4.0-alpha.1` with the suffix above, and `0.4.0` without one. +- `Version` becomes `0.4.0-alpha.2` with the suffix above, and `0.4.0` without one. - `AssemblyVersion` and `FileVersion` use the numeric base `0.4.0`. - `InformationalVersion` includes the prerelease suffix. - Component metadata reads the centralized properties when running from the repository. `VersionHelper` uses assembly metadata as a fallback when its repository search does not find the solution file. @@ -57,7 +57,7 @@ The CLI writes the computed version into `shellui.json` for each installed entry "InstalledComponents": [ { "Name": "button", - "Version": "0.4.0-alpha.1", + "Version": "0.4.0-alpha.2", "InstalledAt": "2026-01-01T00:00:00Z", "IsCustomized": false } diff --git a/docs/CLI_INSTALLATION.md b/docs/CLI_INSTALLATION.md index 1931dc4..76c2ed6 100644 --- a/docs/CLI_INSTALLATION.md +++ b/docs/CLI_INSTALLATION.md @@ -4,8 +4,8 @@ | Context | Version | |---|---| -| Latest stable (recommended) | `0.3.2`, needs the .NET 10 runtime | -| Prerelease | `0.4.0-alpha.1`, install with `--version 0.4.0-alpha.1` | +| Latest stable (recommended) | `0.3.4`, needs the .NET 10 runtime | +| Prerelease | `0.4.0-alpha.2`, install with `--version 0.4.0-alpha.2` | | Previous stable | `0.2.1` | | Tailwind | `4.3.2` | @@ -44,7 +44,7 @@ The manifest is `.config/dotnet-tools.json` and uses the installed package versi "isRoot": true, "tools": { "shellui.cli": { - "version": "0.3.2", + "version": "0.3.4", "commands": ["shellui"] } } diff --git a/docs/CLI_SYNTAX.md b/docs/CLI_SYNTAX.md index 6778f90..3df2986 100644 --- a/docs/CLI_SYNTAX.md +++ b/docs/CLI_SYNTAX.md @@ -1,6 +1,6 @@ # ShellUI CLI Syntax -This reference covers CLI `0.4.0-alpha.1` (prerelease): it runs on .NET 10, sets up Blazor projects on .NET 8, 9 and 10, uses Tailwind CSS `4.3.2`, and has 93 direct component targets. Some options, such as `--dashboard`, are not in the released 0.3.0; see the [v0.3.0 reference](https://github.com/shellui-dev/shellui/blob/v0.3.0/docs/CLI_SYNTAX.md) for that version. +This reference covers CLI `0.4.0-alpha.2` (prerelease): it runs on .NET 10, sets up Blazor projects on .NET 8, 9 and 10, uses Tailwind CSS `4.3.2`, and has 93 direct component targets. Some options, such as `--dashboard`, are not in the stable 0.3.4; see the [v0.3.4 reference](https://github.com/shellui-dev/shellui/blob/v0.3.4/docs/CLI_SYNTAX.md) for that version. ## Command prefix @@ -257,7 +257,7 @@ Representative fields look like this: "InstalledComponents": [ { "Name": "button", - "Version": "0.4.0-alpha.1", + "Version": "0.4.0-alpha.2", "InstalledAt": "2026-01-01T00:00:00Z", "IsCustomized": false } diff --git a/docs/FAQ.md b/docs/FAQ.md index 7f20e71..6a36012 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -6,7 +6,7 @@ Answers for the current ShellUI source and the currently published packages. ### Which version should I use? -Use the latest stable release, `0.3.2`. It uses Tailwind CSS `4.3.2`. The `0.4.0-alpha.1` prerelease, with 93 direct component targets, needs `--version 0.4.0-alpha.1`: +Use the latest stable release, `0.3.4`. It uses Tailwind CSS `4.3.2`. The `0.4.0-alpha.2` prerelease, with 93 direct component targets, needs `--version 0.4.0-alpha.2`: ```bash dotnet tool install -g ShellUI.CLI @@ -145,7 +145,7 @@ A representative Tailwind and component record is: "InstalledComponents": [ { "Name": "button", - "Version": "0.4.0-alpha.1", + "Version": "0.4.0-alpha.2", "InstalledAt": "2026-01-01T00:00:00Z", "IsCustomized": false } diff --git a/docs/QUICKSTART.md b/docs/QUICKSTART.md index 5812b10..bb4792e 100644 --- a/docs/QUICKSTART.md +++ b/docs/QUICKSTART.md @@ -1,6 +1,6 @@ # ShellUI Quick Start -This quick start uses ShellUI `0.4.0-alpha.1`, a prerelease, with Tailwind CSS `4.3.2`. The CLI needs the .NET 10 SDK and works in Blazor projects on .NET 8, 9 and 10. +This quick start uses ShellUI `0.4.0-alpha.2`, a prerelease, with Tailwind CSS `4.3.2`. The CLI needs the .NET 10 SDK and works in Blazor projects on .NET 8, 9 and 10. ## Prerequisites @@ -20,7 +20,7 @@ dotnet --version A global tool is invoked as `shellui`: ```bash -dotnet tool install -g ShellUI.CLI --version 0.4.0-alpha.1 +dotnet tool install -g ShellUI.CLI --version 0.4.0-alpha.2 shellui --version ``` diff --git a/docs/RELEASE_NOTES.md b/docs/RELEASE_NOTES.md index 74c3a56..2f49109 100644 --- a/docs/RELEASE_NOTES.md +++ b/docs/RELEASE_NOTES.md @@ -1,5 +1,89 @@ # ShellUI Release Notes +# ShellUI v0.4.0-alpha.2 ๐Ÿงช + +> The second 0.4 prerelease. It fixes `shellui update`, which could leave a project upgraded from 0.3 unable to build, and makes `update` keep the files you changed. The Tailwind CLI is now downloaded once per machine instead of into every project, and the download survives slow connections. It also fixes `remove`, the dark theme and the package `TimePicker`. It is a prerelease, so installs need `--version`. Report issues via [GitHub Issues](https://github.com/shellui-dev/shellui/issues). + +## ๐ŸŒฌ๏ธ Tailwind CLI: once per machine + +- **Projects no longer hold the binary.** The standalone Tailwind CLI (about 110 MB) is downloaded once into `~/.shellui/bin` (or `SHELLUI_CACHE_DIR`), and `init` and the build run it from there. A new project went from about 112 MB to 130 KB, and later projects set up offline. A copy in a project's `.shellui/bin` still takes precedence. The binary is a build tool and never shipped with your app. +- **Nothing in `.shellui/` is committed:** it now contains a `.gitignore` of `*`. +- **Slow connections work.** The download streams to a `.partial` file, resumes after a dropped connection, retries, and only gives up after a minute with no data. Before, `init` gave up after five minutes and left the project uninitialised. The build's own download uses the same cache and retries too. +- **A failed download no longer stops `init`.** It finishes the rest of the setup and warns, and the next build tries again; its warning names the URL and where to save the file. + +## ๐Ÿ”ง `shellui update` and `remove` + +- **`update` installs new dependencies.** Components gain parts between versions; in 0.4, `breadcrumb` gained `breadcrumb-list`, `-link`, `-page`, `-separator` and `-ellipsis`, and `tabs` gained `tab-models`. `update` only rewrote existing files, so a project updated from 0.3 failed to build (`BreadcrumbList`, `TabItem` not found). It now installs missing dependencies the way `add` does, with their NuGet packages and `_Imports.razor` usings. +- **`update` keeps your changes.** `shellui.json` now records a hash of each file the CLI writes. `update` skips files you have changed since and says so; `--force` overwrites them. Before, `update` with no names rewrote everything, including `app-sidebar` and the dashboard layouts that apps are meant to edit. +- **`remove` finds files the way install writes them.** It always looked in `Components/UI`, so it ignored a custom `ComponentsPath`, could not remove dashboard or auth layouts, and reported every name as removed. It now removes layouts too, lists files that still use a removed layout (usually `Routes.razor`), and counts what it removed. + +## ๐Ÿ› Fixes + +- **Dark theme:** the browser drew its own controls (the `` calendar, number spinners, scrollbars, autofill, `` calendar, number spinners, scrollbars, autofill and `