## What Brings AppKit into conformance with [KofTwentyTwo/standards](https://github.com/KofTwentyTwo/standards). Reviewable commit by commit: | Commit | Change | | --- | --- | | build | Quality gate from `configs/dotnet` (analyzers incl. Meziantou, warnings as errors), `packages.lock.json` per project, locked-mode restore | | style | Kingsrook layout and LF line endings, produced mechanically by `dotnet format` (formatting only) | | docs | SPDX license header on every C# file | | refactor | Real code changes: analyzer findings fixed (one type per file, regex timeouts, async void, …) and header comments on every type and member | | ci | Old workflows replaced by callers of the shared standards workflows (PR gates, security, CodeQL, .NET CI, NuGet release with SBOM + attestation + trusted publishing), Scorecard | | docs | README, CONTRIBUTING (GitHub Flow, DCO, signing), SECURITY, CODEOWNERS, templates, Dependabot, threat model, ADRs, RELEASING | Also includes `dev`'s CI fix, so it supersedes #1; the `dev` branch goes away under GitHub Flow. ## Why AppKit is the first Product repository to adopt the standards. Static conformance before: 16 FAIL; after: 0 FAIL, 0 WARN (the remaining UNKNOWN rows are GitHub settings and rulesets, applied separately). ## How tested Locally with `CI=true` (lock files enforced): locked restore x64 and ARM64; zero-warning x64 build; 115 unit tests with 100% line coverage of `KofTwentyTwo.AppKit` and `KofTwentyTwo.AppKit.Updates`; 12 FlaUI UI tests (WinUI + WPF samples); `dotnet format --verify-no-changes --severity warn` clean; pack produces 4 packages + symbols; actionlint, zizmor (pedantic), gitleaks clean. The UI tests caught a regression introduced while fixing MA0147 (the WPF splash stopped dismissing because no UI context existed yet); fixed by starting the countdown through the dispatcher in both packages. ## Notes - `ci.yml` and `release.yml` are pinned to KofTwentyTwo/standards#3's head commit; they are repinned after that PR merges. - This pull request's new check names become required checks once the repository's rulesets are updated. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Signed-off-by: James Maes <james@kof22.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
2.4 KiB
XML
48 lines
2.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Window
|
|
x:Class="AppKit.Sample.WinUI.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
|
|
|
<Window.SystemBackdrop>
|
|
<MicaBackdrop />
|
|
</Window.SystemBackdrop>
|
|
|
|
<Grid x:Name="RootGrid">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<MenuBar>
|
|
<MenuBarItem Title="File">
|
|
<MenuFlyoutItem Text="Exit" Click="Exit_Click" />
|
|
</MenuBarItem>
|
|
<MenuBarItem Title="View">
|
|
<RadioMenuFlyoutItem x:Name="ThemeSystem" Text="System theme" GroupName="Theme" Tag="System" Click="Theme_Click" />
|
|
<RadioMenuFlyoutItem x:Name="ThemeLight" Text="Light theme" GroupName="Theme" Tag="Light" Click="Theme_Click" />
|
|
<RadioMenuFlyoutItem x:Name="ThemeDark" Text="Dark theme" GroupName="Theme" Tag="Dark" Click="Theme_Click" />
|
|
<MenuFlyoutSeparator />
|
|
<ToggleMenuFlyoutItem x:Name="SplashToggle" Text="Show splash at startup" Click="Splash_Click" />
|
|
</MenuBarItem>
|
|
<MenuBarItem Title="Help">
|
|
<MenuFlyoutItem x:Name="CheckForUpdatesMenuItem" Text="Check for updates" Click="CheckForUpdates_Click" />
|
|
<MenuFlyoutItem x:Name="ActivityLogMenuItem" Text="Activity log" Click="ActivityLog_Click" />
|
|
<MenuFlyoutSeparator />
|
|
<MenuFlyoutItem x:Name="AboutMenuItem" Text="About AppKit Sample" Click="About_Click" />
|
|
</MenuBarItem>
|
|
</MenuBar>
|
|
|
|
<StackPanel Grid.Row="1" Spacing="12" Padding="32" MaxWidth="560" HorizontalAlignment="Left">
|
|
<TextBlock x:Name="GreetingText" Style="{ThemeResource TitleTextBlockStyle}" />
|
|
<TextBlock TextWrapping="Wrap" Text="Each control below exercises one AppKit service. Settings persist to %LOCALAPPDATA%\appkit-sample\settings.json; the log lives beside it." />
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<Button Content="Write a log entry" Click="LogInfo_Click" />
|
|
<Button Content="Log a handled error" Click="LogError_Click" />
|
|
<Button x:Name="ThrowButton" Content="Throw unhandled" Click="Throw_Click" />
|
|
</StackPanel>
|
|
<TextBlock x:Name="StatusText" Foreground="{ThemeResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Window>
|