Skip to content

feat(avalonia): migrate Connect and Deploy from WPF - #274

Draft
mchave3 wants to merge 2 commits into
mainfrom
feat/avalonia-migration
Draft

feat(avalonia): migrate Connect and Deploy from WPF#274
mchave3 wants to merge 2 commits into
mainfrom
feat/avalonia-migration

Conversation

@mchave3

@mchave3 mchave3 commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Migrates Foundry Connect and Foundry Deploy from WPF to Avalonia through sequential, independently reviewed waves. No WPF runtime fallback will be shipped.

This umbrella PR remains a draft until both applications, packaging, WinPE validation, accessibility, localization, and release cutover gates are complete.

Reason

The migration replaces the Windows-only WPF presentation layer while preserving the existing domain behavior, executable identities, configuration contracts, telemetry, logging, deployment orchestration, and WinPE boot-media behavior. The new interface follows the approved modern, focused deployment experience.

Current changes

Wave 1 is integrated and provides:

  • shared Foundry.Avalonia presentation library and headless test project
  • Avalonia packages pinned directly to 12.1.1 in their owning project files
  • semantic light and dark resources
  • Full, Reduced, and None motion policies
  • adaptive compact, standard, and wide layouts
  • UI dispatcher and timer adapters
  • reusable shell, utility, status, information-grid, progress, and read-only dialog controls
  • licensed Fluent UI System Icon vectors with pinned provenance
  • architecture-boundary and headless visual tests, including RTL and 200% scaling

Remaining migration waves

  • make Connect core behavior framework-neutral
  • replace the Connect WPF shell and views with Avalonia
  • make Deploy scheduling, confirmation, and presentation contracts framework-neutral
  • replace the Deploy WPF shell, wizard, progress, success, error, and Tools experiences with Avalonia
  • update WinPE payload provisioning, release automation, validation, and documentation
  • remove every superseded WPF source, resource, package, and runtime dependency in its replacement wave

Current validation

  • dotnet restore src/Foundry.slnx
  • x64 full solution build: 0 errors; 164 existing warnings
  • x64 full solution tests: 1,107 passed; 0 failed
  • ARM64 Foundry.Avalonia cross-build: 0 warnings; 0 errors
  • ARM64 runtime tests were not run because no ARM64 test system is available
  • local planning files and generated visual-review frames are not tracked or included
  • CI was not awaited

Merge gates

This PR must remain draft until:

  • Connect is WPF-free and passes desktop, headless, packaging, real x64 WinPE, and static ARM64 package validation
  • Deploy is WPF-free and passes desktop, headless, packaging, destructive-operation, real x64 WinPE, static ARM64 package, and post-reboot validation
  • release workflows publish the existing application identities as complete multi-file Avalonia payloads
  • repository checks reject production WPF usage in Connect and Deploy
  • accessibility, localization, RTL, scaling, diagnostics redaction, telemetry, and documentation gates pass

Adds the shared Avalonia presentation foundation for the staged Connect and Deploy migrations.
@github-actions github-actions Bot added documentation Documentation updates dependencies Dependency version or package management change tests Test coverage or test infrastructure change labels Aug 9, 2026
@mchave3 mchave3 self-assigned this Aug 9, 2026
@mchave3 mchave3 moved this from New to In Progress in Foundry OSD Development Aug 9, 2026
@github-actions github-actions Bot added ui User interface or XAML changes project: foundry-connect Changes in the Foundry.Connect WinPE network bootstrap application labels Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency version or package management change documentation Documentation updates project: foundry-connect Changes in the Foundry.Connect WinPE network bootstrap application tests Test coverage or test infrastructure change ui User interface or XAML changes

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant