Skip to content

Deprecate Full Dashboard + CLI Installer (move to deprecated/, strip from releases) - #1612

Merged
erikdarlingdata merged 3 commits into
devfrom
feature/deprecate-full-cli
Jul 22, 2026
Merged

erikdarlingdata merged 3 commits into
devfrom
feature/deprecate-full-cli

Conversation

@erikdarlingdata

Copy link
Copy Markdown
Owner

Retires the Full Dashboard and the CLI Installer as Darling becomes the flagship.

Move

Dashboard, Dashboard.Tests, Installer, Installer.Core, Installer.Tests -> deprecated/ (a self-contained cluster; Lite/Darling never reference it). .sln + moved-csproj relative paths fixed. install/ + upgrades/ stay at root (path-dependent consumers). Solution builds green; Installer.Tests 190 pass at the new path.

Strip from releases (build.yml)

Dashboard + CLI Installer removed from the release artifacts — publish / upload-for-signing / sign / package / Velopack all gone. Lite + Darling untouched. The Installer tests still build + run (repathed); version source repointed to Lite; path-filter globs -> deprecated/. YAML parses.

Also

  • nightly.yml / check-version-bump.yml: moved-project paths -> deprecated/. (Nightly still builds Dashboard/Installer from the new paths — a compile safety-net for the deprecated code, since build.yml no longer builds them. Say the word to strip them from the nightly pre-release too.)
  • Issue/PR templates reframed to Darling (flagship) / Lite; Full + Installer flagged deprecated.
  • Repo topics refreshed (sql-server, postgresql, timescaledb, mcp) — done directly on the repo.

Validation note

CI's build job + YAML parse validate the code move, the repathed Installer.Tests, and structure. The release-artifact steps only fully exercise on release: published, so the strip's release path was traced by hand, not CI-run — first real proof is the next release cut.

🤖 Generated with Claude Code

erikdarlingdata and others added 3 commits July 21, 2026 21:53
…from releases

- Move Dashboard, Dashboard.Tests, Installer, Installer.Core, Installer.Tests -> deprecated/ (Lite/Darling never reference them). Fix .sln + moved-csproj relative paths (shared-lib refs +1 ../, install/upgrades globs +1 ../). Solution builds green; Installer.Tests 190 pass at the new path.
- build.yml: remove Dashboard + CLI Installer from the RELEASE artifacts (publish/sign/upload/package/velopack). Keep Lite + Darling. Installer.Tests still built/tested (repathed). Version source -> Lite. Path-filter globs -> deprecated/.
- nightly.yml / check-version-bump.yml: repath the moved projects to deprecated/.
- README + issue/PR templates: reframe to Darling (flagship) / Lite; Full Dashboard + CLI Installer flagged deprecated.
- install/ + upgrades/ stay at repo root (many path-dependent consumers).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…e-release too

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@erikdarlingdata
erikdarlingdata merged commit 3e71c7a into dev Jul 22, 2026
3 checks passed
@erikdarlingdata
erikdarlingdata deleted the feature/deprecate-full-cli branch July 22, 2026 02:16
argpna pushed a commit to argpna/PerformanceMonitor that referenced this pull request Jul 26, 2026
…hygiene (erikdarlingdata#1643)

Dependencies (all patch/minor; zero vulnerable and zero deprecated across all
20 projects, verified with --vulnerable --include-transitive):

  Microsoft.Data.SqlClient                 7.0.1  -> 7.0.2
  Microsoft.Data.SqlClient.Extensions.Azure 1.0.0 -> 7.0.2
  Microsoft.Extensions.*                   10.0.9 -> 10.0.10
  System.Security.Cryptography.ProtectedData 10.0.0 -> 10.0.10
  ModelContextProtocol(+AspNetCore)         1.4.0 -> 1.4.1
  ScottPlot.WPF                            5.1.58 -> 5.1.59
  Microsoft.NET.Test.Sdk                   18.6.0 -> 18.8.1
  DuckDB.NET (Bindings.Full + Data)         1.5.2 -> 1.5.3

Extensions.Azure 1.0.0 -> 7.0.2 is not a real major: Microsoft re-versioned the
companion package onto the SqlClient 7.x line. DuckDB 1.5.3 was validated by
running tools/CompactionRepro --synthetic (the real ParquetCompaction merge
code) against the new engine: SUCCESS, 30k rows exact, peak WS 364 MB, no spill.
Lock files regenerated with --force-evaluate.

Zero-warning build restored (~280 accumulated warnings -> 0 across the whole
solution). The dominant one was CS8629 at ~100 MCP tool call sites in all three
apps: ServerResolver.ResolveOrError returned a nullable tuple, so the "error is
null implies resolved is non-null" invariant was invisible to the compiler and
every call site dereferenced .Value. All three resolvers now return a
non-nullable resolved that is default when error is set, and the call sites
drop .Value. Also: CA1834 single-char Append via char alias consts, CA1859
concrete return types (including the four parallel BrushFromHex/MakeFrozen
copies), CA1863 cached CompositeFormats, CA1416 platform-guard restructuring so
the DPAPI and Event Log calls are provably Windows-only, CA1310/CA2249/CA1865
ordinal comparisons, CA1716 Get -> Find, CS0108 redundant HasReportXml, a CS8602
null guard in the Dashboard actual-plan path, and xUnit assertion forms. Two
documented suppressions rather than silences: CA1720 on the collector type
enums (naming SQL types is their purpose) and xUnit1051 in the test projects.

CI ran neither the build nor the tests for the deprecated Dashboard: erikdarlingdata#1612
defined a 'dashboard' path filter but no step ever consumed it. That is why the
warnings above accumulated unseen, and why all three ThemeParityTests had been
hard-failing since the move (FindRepoRoot still looked for Dashboard\Themes
instead of deprecated\Dashboard\Themes, so each run died on the repo-root assert
without comparing anything). The test now resolves the deprecated path from one
constant and genuinely compares the palettes again, and the workflow gains the
missing restore/build/test steps. Dashboard.Tests gets a packages.lock.json so
it restores --locked-mode like every other CI root. This matters beyond the
deprecated app: the palettes that guard checks are Lite's too.

Test results: Lite 1444/1444, Darling 2995/2995 (147 gated-live skipped),
Installer 190/190 (CI filter), Dashboard 768/768.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pull Bot pushed a commit to ehtick/PerformanceMonitor that referenced this pull request Jul 29, 2026
…hat executes

Scheduled workflows always execute the DEFAULT branch's copy of the
workflow file, while nightly artifacts deliberately build from dev's
tree. That skew is exactly how the 2026-07-26 scheduled nightly failed
(run 30194606068): main's stale copy still read Dashboard/Dashboard.csproj,
a path erikdarlingdata#1612 moved to deprecated/ on dev, so 'Set nightly version' died
on a file missing from the tree it had just checked out. Same trap as
before (erikdarlingdata#1550/erikdarlingdata#1551) - syncing the file again would fix tonight and
re-break at the next pre-release layout drift.

Structural fix instead: on schedule the workflow does nothing but
re-dispatch itself onto the dev ref (GITHUB_TOKEN can create
workflow_dispatch runs; the Actions recursion guard exempts
workflow_dispatch, and the dispatched run cannot loop back because it
arrives as workflow_dispatch, not schedule). A workflow_dispatch run
executes the DISPATCHED ref's copy of the file - dev's, current by
definition - so after a one-time sync of this file to main, main's copy
has exactly one tree-independent job that must keep working, and nightly
logic changes take effect the night they merge to dev.

Semantics preserved: manual dispatches (from_schedule defaults false)
always build, exactly as before; the scheduled path keeps the 24h
new-commit check via from_schedule=true; the artifact-publishing build
job stays pinned to ref dev so a branch dispatch still cannot ship
branch binaries.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant