Context
The Linux frontend currently uses Avalonia 11.x. A vulnerable transitive dependency warning for Tmds.DBus.Protocol 0.21.2 was mitigated short-term by pinning Tmds.DBus.Protocol to 0.21.3, but the larger dependency graph is still on Avalonia 11. A full Avalonia 12 upgrade should be handled separately because it can affect rendering, themes, platform integrations, packaging, and runtime behavior.
Proposed upgrade plan
- Update all Avalonia packages together to the same Avalonia 12 version:
Avalonia
Avalonia.Desktop
Avalonia.Themes.Fluent
Avalonia.Fonts.Inter
Avalonia.Diagnostics
- Remove the explicit
Tmds.DBus.Protocol override if Avalonia 12 resolves to a non-vulnerable version on its own.
- Restore and build the Linux project with warnings treated as signals, especially NuGet vulnerability warnings and obsolete API warnings.
- Fix any Avalonia 12 API/theme/binding changes in:
BabySmash.Linux/App.axaml.cs
BabySmash.Linux/MainWindow.axaml.cs
BabySmash.Linux/Views/OptionsWindow.axaml*
BabySmash.Linux/Shapes/*
BabySmash.Linux/Core/Animation/*
- Validate packaging outputs:
- self-contained publish
- tarball layout
.deb package
.rpm package
- Manual smoke test on Linux:
- app launches fullscreen
- shapes render and animate
- keyboard smashing creates expected shapes/letters
- sounds and TTS still work with
paplay/espeak
- options dialog opens and persists settings
- multi-monitor behavior still matches current expectations
- cursor/topmost/fullscreen behavior is not regressed
Acceptance criteria
- Linux Release build succeeds without vulnerability warnings.
- Linux publish/package jobs pass in CI.
- No explicit
Tmds.DBus.Protocol pin is needed unless documented as intentional.
- Manual Linux smoke test passes for rendering, input, audio/TTS, settings, and window behavior.
Notes
This should be a dedicated PR, not folded into routine dependency patch updates, because Avalonia 12 pulls a broader rendering/platform dependency graph including SkiaSharp, FreeDesktop, X11/native packages, and theme components.
Context
The Linux frontend currently uses Avalonia 11.x. A vulnerable transitive dependency warning for
Tmds.DBus.Protocol 0.21.2was mitigated short-term by pinningTmds.DBus.Protocolto0.21.3, but the larger dependency graph is still on Avalonia 11. A full Avalonia 12 upgrade should be handled separately because it can affect rendering, themes, platform integrations, packaging, and runtime behavior.Proposed upgrade plan
AvaloniaAvalonia.DesktopAvalonia.Themes.FluentAvalonia.Fonts.InterAvalonia.DiagnosticsTmds.DBus.Protocoloverride if Avalonia 12 resolves to a non-vulnerable version on its own.BabySmash.Linux/App.axaml.csBabySmash.Linux/MainWindow.axaml.csBabySmash.Linux/Views/OptionsWindow.axaml*BabySmash.Linux/Shapes/*BabySmash.Linux/Core/Animation/*.debpackage.rpmpackagepaplay/espeakAcceptance criteria
Tmds.DBus.Protocolpin is needed unless documented as intentional.Notes
This should be a dedicated PR, not folded into routine dependency patch updates, because Avalonia 12 pulls a broader rendering/platform dependency graph including SkiaSharp, FreeDesktop, X11/native packages, and theme components.