Skip to content

chore: Upgrade Avalonia to 12.0 and migrate codebase#1673

Draft
yuto-trd wants to merge 18 commits intomainfrom
yuto-trd/migrate-avalonia-12
Draft

chore: Upgrade Avalonia to 12.0 and migrate codebase#1673
yuto-trd wants to merge 18 commits intomainfrom
yuto-trd/migrate-avalonia-12

Conversation

@yuto-trd
Copy link
Copy Markdown
Member

Description

  • Upgrade Avalonia from 11.x to 12.0 and update related dependencies across the solution (Directory.Packages.props, csproj files).
  • Migrate codebase to Avalonia 12 APIs: ReflectionBinding for dynamic bindings, x:DataType for compiled bindings, PlaceholderText, FocusChangedEventArgs, Math.Clamp, Avalonia.Input.Platform namespace, logical-tree traversal, and TopLevel-based scaling.
  • Replace Avalonia.Diagnostics with AvaloniaUI.DiagnosticsSupport (WithDeveloperTools()), remove the custom BcTabItem/BcTabView/DirectoryTreeView controls, and migrate UI to FluentAvalonia (FA) components including the renamed Beutl.FluentIcons.FluentAvalonia package.
  • Drop the obsolete DirectoryViewTest project and adjust several window/editor views (styles, drag handling, IListEditorViewModel.IsEnabled, etc.) for consistency under the new framework.

Breaking changes

  • Extensions depending on the custom BcTabItem/BcTabView or DirectoryTreeView controls must migrate to the FluentAvalonia equivalents, since these controls were removed.
  • Extensions referencing the FluentIcons.FluentAvalonia package must switch to Beutl.FluentIcons.FluentAvalonia.
  • Targeting Avalonia 12 means extensions must be recompiled against the new Avalonia 12 API surface.

Fixed issues

None

yuto-trd added 18 commits April 14, 2026 13:27
@github-actions
Copy link
Copy Markdown
Contributor

The following TODO comments were found:

// TODO: EngineObject.IsEnabledと同期する

@github-actions
Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Branch Rate Complexity Health
Beutl.ProjectSystem 17% 10% 926
Beutl.Utilities 73% 67% 358
Beutl.Language 1% 50% 1148
Beutl.Configuration 40% 20% 314
Beutl.Threading 100% 93% 122
Beutl.NodeGraph 6% 2% 2490
Beutl.Core 39% 35% 3070
Beutl.Engine 20% 18% 16812
Beutl.Extensibility 11% 14% 111
Beutl.Editor 70% 65% 1011
Summary 23% (14513 / 62203) 22% (4086 / 18627) 26362

Minimum allowed line rate is 0%

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