## 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>
246 lines
9.6 KiB
JSON
246 lines
9.6 KiB
JSON
{
|
|
"version": 2,
|
|
"dependencies": {
|
|
"net10.0-windows10.0.19041": {
|
|
"Meziantou.Analyzer": {
|
|
"type": "Direct",
|
|
"requested": "[3.0.296, )",
|
|
"resolved": "3.0.296",
|
|
"contentHash": "1Yp/6OK/Ev66hE2YLe9UvIgtJrKOX/xvoGDe0UbdtuG2ZxUoDoyONdEn+HWCDuy02Mu8SmglHEd/9SGPrM1qYg=="
|
|
},
|
|
"Microsoft.Windows.SDK.BuildTools": {
|
|
"type": "Direct",
|
|
"requested": "[10.0.28000.2705, )",
|
|
"resolved": "10.0.28000.2705",
|
|
"contentHash": "TZQ96xtu7+fyFsyJCgj6Hazru0H8G1kiE1CeZLGpsqT4xKQmkxWu9yRuxYLeHJECjqEHN7duZUTcdbt8zlQ8OQ=="
|
|
},
|
|
"Microsoft.WindowsAppSDK": {
|
|
"type": "Direct",
|
|
"requested": "[2.5.1, )",
|
|
"resolved": "2.5.1",
|
|
"contentHash": "WgKPzT1H2s17azODD1jNZje69z1hGz8VSh3bIylTtXHVg7hLyrn8Y+rswFqF41UX8ea7ELeoyqN80zZ6EHwCFA==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.AI": "2.5.5",
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.DWrite": "2.1.0",
|
|
"Microsoft.WindowsAppSDK.Foundation": "2.3.12",
|
|
"Microsoft.WindowsAppSDK.InteractiveExperiences": "2.1.9",
|
|
"Microsoft.WindowsAppSDK.ML": "2.1.94",
|
|
"Microsoft.WindowsAppSDK.Runtime": "[2.5.1]",
|
|
"Microsoft.WindowsAppSDK.Search": "2.5.5",
|
|
"Microsoft.WindowsAppSDK.Widgets": "2.0.5",
|
|
"Microsoft.WindowsAppSDK.WinUI": "2.3.9"
|
|
}
|
|
},
|
|
"Microsoft.Web.WebView2": {
|
|
"type": "Transitive",
|
|
"resolved": "1.0.3719.77",
|
|
"contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA=="
|
|
},
|
|
"Microsoft.Windows.AI.MachineLearning": {
|
|
"type": "Transitive",
|
|
"resolved": "2.1.74",
|
|
"contentHash": "/Z1yAQ0J53eD1RrOl5anTDS0UQOgneERY//hLljwGcWeUX9ynCvOl5qUxAsfWvwsZZGcvV4WKjAvnAtA6N5i+w==",
|
|
"dependencies": {
|
|
"System.Numerics.Tensors": "9.0.0"
|
|
}
|
|
},
|
|
"Microsoft.Windows.SDK.BuildTools.MSIX": {
|
|
"type": "Transitive",
|
|
"resolved": "1.7.251221100",
|
|
"contentHash": "f4aIZJ0NUth2403oxrpR+9rxVzZVI6dabqB21u8ncnk8eJAKCs9m77E4iYAnvP1YwrRe4axz3f8+yUcttNSfEA=="
|
|
},
|
|
"Microsoft.WindowsAppSDK.AI": {
|
|
"type": "Transitive",
|
|
"resolved": "2.5.5",
|
|
"contentHash": "f6XA05BsTAmDDsWGiFQdcAujNlbET5QbqxhBo7iHPJJix+RJajXKv1XlO19M78GtEpi2AYGEv08dPxER8ESYAw==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.Foundation": "2.3.12"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.Base": {
|
|
"type": "Transitive",
|
|
"resolved": "2.0.4",
|
|
"contentHash": "QXSy2llX2/Bx9dYWGUEsb10F40q94ZiDnPMzqa2/qRmTG4y9EXxGp6uHITb7c0b4FCa+6KFBlgh6D53M0QEMEg==",
|
|
"dependencies": {
|
|
"Microsoft.Windows.SDK.BuildTools": "10.0.26100.4654",
|
|
"Microsoft.Windows.SDK.BuildTools.MSIX": "1.7.251221100"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.DWrite": {
|
|
"type": "Transitive",
|
|
"resolved": "2.1.0",
|
|
"contentHash": "dgix7NSeo7Z8SZPyrsOqYm/6OUvBveHCiVyorYecmtDYoZW26dJ6/i9yveIxgWvmFpgfKXPeIuQBCvhbetHiYg==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.3"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.Foundation": {
|
|
"type": "Transitive",
|
|
"resolved": "2.3.12",
|
|
"contentHash": "UflrNbXoZmHPt8lLGDk4gQ+yoGfQlCHd3TVTy7YwCMZ/aVGWAiLDqGCEjtWmNsI8ySy6imx3ZlenKfd2/VMPEg==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.InteractiveExperiences": "2.1.8"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.InteractiveExperiences": {
|
|
"type": "Transitive",
|
|
"resolved": "2.1.9",
|
|
"contentHash": "59nvb3pQYsBTTGrobeHkB4bkxASHtpaORJl7r6Zvg8PSIDCupEZTPKrIhnUknHDGfAtuBsnORjgvRi2WXGaRhA==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.ML": {
|
|
"type": "Transitive",
|
|
"resolved": "2.1.94",
|
|
"contentHash": "b21CWVubc3WqWNJ9+fy7n+s83LgwBpIzYrOuSUmHAqPB0pH+ttjgiknnDA/oF7wCbjiaUb4KDXVV7Mya3f18Ug==",
|
|
"dependencies": {
|
|
"Microsoft.Windows.AI.MachineLearning": "[2.1.74, 3.0.0)",
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.Foundation": "2.3.12"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.Runtime": {
|
|
"type": "Transitive",
|
|
"resolved": "2.5.1",
|
|
"contentHash": "EDzGf6Tq9njNfNsTfqKdiwmSzFF/caHItuDa99UTQiOvLXwOjCL1k75/PMLSoHbCo1cSlHh/sSqZVssJ/Z0NzA==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.Search": {
|
|
"type": "Transitive",
|
|
"resolved": "2.5.5",
|
|
"contentHash": "uvYkXi9TB4rk/kgWn5XHEkMNMU+xhjY+S0QWsxEs8wYT/dXAjfHvW30+JVoW/THZ/9jIMinEn4gliCSVRFV0Sw==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.AI": "[2.5.5]",
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.Foundation": "2.3.12"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.Widgets": {
|
|
"type": "Transitive",
|
|
"resolved": "2.0.5",
|
|
"contentHash": "lRz+8+QU65gV8hRzLVE+GRsPKZ42lnzqkmsw96HzQd/DuFYfr4JYpUU7ZZ5YrkV2EfQe4BCmoRKAeZ3WwalMcg==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.3"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.WinUI": {
|
|
"type": "Transitive",
|
|
"resolved": "2.3.9",
|
|
"contentHash": "GiuYUQqMYD5lycT+X2AGX1rlbHU/zf8xoPeZNXZbJj4mZcSr4STsxeRUMxnTUQLAmmjjQaPrTIRjn78vbPhAvg==",
|
|
"dependencies": {
|
|
"Microsoft.Web.WebView2": "1.0.3719.77",
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.Foundation": "2.3.12",
|
|
"Microsoft.WindowsAppSDK.InteractiveExperiences": "2.1.8"
|
|
}
|
|
},
|
|
"System.Numerics.Tensors": {
|
|
"type": "Transitive",
|
|
"resolved": "9.0.0",
|
|
"contentHash": "hyJB4UlpAi19Xr9AXzu2NuagKC4lPfHObNMEAA0HmqFz2rX7wKgzeYzO/jM/eBHDhnUGFFEjk5cOoJaxqg5J4A=="
|
|
},
|
|
"koftwentytwo.appkit": {
|
|
"type": "Project"
|
|
},
|
|
"koftwentytwo.appkit.updates": {
|
|
"type": "Project",
|
|
"dependencies": {
|
|
"KofTwentyTwo.AppKit": "[0.1.0-dev, )",
|
|
"Velopack": "[1.2.161, )"
|
|
}
|
|
},
|
|
"koftwentytwo.appkit.winui": {
|
|
"type": "Project",
|
|
"dependencies": {
|
|
"KofTwentyTwo.AppKit": "[0.1.0-dev, )",
|
|
"KofTwentyTwo.AppKit.Updates": "[0.1.0-dev, )",
|
|
"Microsoft.WindowsAppSDK": "[2.5.1, )"
|
|
}
|
|
},
|
|
"Velopack": {
|
|
"type": "CentralTransitive",
|
|
"requested": "[1.2.161, )",
|
|
"resolved": "1.2.161",
|
|
"contentHash": "OpHNacIumnkhaaX3ZlQ/TCR4YPOJvud2/PAOoWb6o+mIrLwIVA275I5wAgt4q/1O2VrJeDwR1qFQyqzG4lUArg=="
|
|
}
|
|
},
|
|
"net10.0-windows10.0.19041/win-arm64": {
|
|
"Microsoft.Web.WebView2": {
|
|
"type": "Transitive",
|
|
"resolved": "1.0.3719.77",
|
|
"contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA=="
|
|
},
|
|
"Microsoft.Windows.AI.MachineLearning": {
|
|
"type": "Transitive",
|
|
"resolved": "2.1.74",
|
|
"contentHash": "/Z1yAQ0J53eD1RrOl5anTDS0UQOgneERY//hLljwGcWeUX9ynCvOl5qUxAsfWvwsZZGcvV4WKjAvnAtA6N5i+w==",
|
|
"dependencies": {
|
|
"System.Numerics.Tensors": "9.0.0"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.Foundation": {
|
|
"type": "Transitive",
|
|
"resolved": "2.3.12",
|
|
"contentHash": "UflrNbXoZmHPt8lLGDk4gQ+yoGfQlCHd3TVTy7YwCMZ/aVGWAiLDqGCEjtWmNsI8ySy6imx3ZlenKfd2/VMPEg==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.InteractiveExperiences": "2.1.8"
|
|
}
|
|
}
|
|
},
|
|
"net10.0-windows10.0.19041/win-x64": {
|
|
"Microsoft.Web.WebView2": {
|
|
"type": "Transitive",
|
|
"resolved": "1.0.3719.77",
|
|
"contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA=="
|
|
},
|
|
"Microsoft.Windows.AI.MachineLearning": {
|
|
"type": "Transitive",
|
|
"resolved": "2.1.74",
|
|
"contentHash": "/Z1yAQ0J53eD1RrOl5anTDS0UQOgneERY//hLljwGcWeUX9ynCvOl5qUxAsfWvwsZZGcvV4WKjAvnAtA6N5i+w==",
|
|
"dependencies": {
|
|
"System.Numerics.Tensors": "9.0.0"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.Foundation": {
|
|
"type": "Transitive",
|
|
"resolved": "2.3.12",
|
|
"contentHash": "UflrNbXoZmHPt8lLGDk4gQ+yoGfQlCHd3TVTy7YwCMZ/aVGWAiLDqGCEjtWmNsI8ySy6imx3ZlenKfd2/VMPEg==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.InteractiveExperiences": "2.1.8"
|
|
}
|
|
}
|
|
},
|
|
"net10.0-windows10.0.19041/win-x86": {
|
|
"Microsoft.Web.WebView2": {
|
|
"type": "Transitive",
|
|
"resolved": "1.0.3719.77",
|
|
"contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA=="
|
|
},
|
|
"Microsoft.Windows.AI.MachineLearning": {
|
|
"type": "Transitive",
|
|
"resolved": "2.1.74",
|
|
"contentHash": "/Z1yAQ0J53eD1RrOl5anTDS0UQOgneERY//hLljwGcWeUX9ynCvOl5qUxAsfWvwsZZGcvV4WKjAvnAtA6N5i+w==",
|
|
"dependencies": {
|
|
"System.Numerics.Tensors": "9.0.0"
|
|
}
|
|
},
|
|
"Microsoft.WindowsAppSDK.Foundation": {
|
|
"type": "Transitive",
|
|
"resolved": "2.3.12",
|
|
"contentHash": "UflrNbXoZmHPt8lLGDk4gQ+yoGfQlCHd3TVTy7YwCMZ/aVGWAiLDqGCEjtWmNsI8ySy6imx3ZlenKfd2/VMPEg==",
|
|
"dependencies": {
|
|
"Microsoft.WindowsAppSDK.Base": "2.0.4",
|
|
"Microsoft.WindowsAppSDK.InteractiveExperiences": "2.1.8"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |