## 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>
120 lines
4.3 KiB
JSON
120 lines
4.3 KiB
JSON
{
|
|
"version": 2,
|
|
"dependencies": {
|
|
"net10.0-windows7.0": {
|
|
"coverlet.collector": {
|
|
"type": "Direct",
|
|
"requested": "[10.1.0, )",
|
|
"resolved": "10.1.0",
|
|
"contentHash": "SlYCIHnBYxINSUpR75SiM5JEmnx11pqT+Ac/C/fUqTTA0dLPl9eYzmFXKKuxmQhL3ZdTQl4PBD3YdAxAauaKLQ=="
|
|
},
|
|
"Meziantou.Analyzer": {
|
|
"type": "Direct",
|
|
"requested": "[3.0.296, )",
|
|
"resolved": "3.0.296",
|
|
"contentHash": "1Yp/6OK/Ev66hE2YLe9UvIgtJrKOX/xvoGDe0UbdtuG2ZxUoDoyONdEn+HWCDuy02Mu8SmglHEd/9SGPrM1qYg=="
|
|
},
|
|
"Microsoft.NET.Test.Sdk": {
|
|
"type": "Direct",
|
|
"requested": "[18.10.1, )",
|
|
"resolved": "18.10.1",
|
|
"contentHash": "SxCFvJE/2ltUQgCgv6+Ixagohw4sZc9hM7Wid2foaNM7paBscktoHLoRDz91fW8wbHG87Rg9Ku59/8PXumqUrA==",
|
|
"dependencies": {
|
|
"Microsoft.CodeCoverage": "18.10.1",
|
|
"Microsoft.TestPlatform.TestHost": "18.10.1"
|
|
}
|
|
},
|
|
"xunit": {
|
|
"type": "Direct",
|
|
"requested": "[2.9.3, )",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
|
|
"dependencies": {
|
|
"xunit.analyzers": "1.18.0",
|
|
"xunit.assert": "2.9.3",
|
|
"xunit.core": "[2.9.3]"
|
|
}
|
|
},
|
|
"xunit.runner.visualstudio": {
|
|
"type": "Direct",
|
|
"requested": "[4.0.0, )",
|
|
"resolved": "4.0.0",
|
|
"contentHash": "kzLFyBYUnoidpGOXvpNOfIo8C92gVgVR6X8ncHwhcrDYugiOut5rrhDkr0L3cWHd7J2pKXf6LgaeXoBBDlx1ag=="
|
|
},
|
|
"Microsoft.CodeCoverage": {
|
|
"type": "Transitive",
|
|
"resolved": "18.10.1",
|
|
"contentHash": "tV7tCyp/t+DuwQugLkCeUN7NBFFB4fEGRPr0gkMQ2nQgAvQQjmGlZZi1dsLzbyoe/A0mbnKybmkIh8qhT9p4Zw=="
|
|
},
|
|
"Microsoft.TestPlatform.ObjectModel": {
|
|
"type": "Transitive",
|
|
"resolved": "18.10.1",
|
|
"contentHash": "o+PuLDRVp1iwiVAPBADZItXgm9Ck23XtPhE4kZtZVi0uYnMiiz1Dx9Cjh75kJ+ijfqnORL3VOTOaQVKi0f/ixg=="
|
|
},
|
|
"Microsoft.TestPlatform.TestHost": {
|
|
"type": "Transitive",
|
|
"resolved": "18.10.1",
|
|
"contentHash": "KYz2omqkoz9E2mWa4fdgT+Ycie1wi5968EmyJlusjlp87RxxtA2FvDm8tcBEYIDzLnkWGnsKjE4d13Z7/rxkQA==",
|
|
"dependencies": {
|
|
"Microsoft.TestPlatform.ObjectModel": "18.10.1"
|
|
}
|
|
},
|
|
"xunit.abstractions": {
|
|
"type": "Transitive",
|
|
"resolved": "2.0.3",
|
|
"contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
|
|
},
|
|
"xunit.analyzers": {
|
|
"type": "Transitive",
|
|
"resolved": "1.18.0",
|
|
"contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
|
|
},
|
|
"xunit.assert": {
|
|
"type": "Transitive",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
|
|
},
|
|
"xunit.core": {
|
|
"type": "Transitive",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
|
|
"dependencies": {
|
|
"xunit.extensibility.core": "[2.9.3]",
|
|
"xunit.extensibility.execution": "[2.9.3]"
|
|
}
|
|
},
|
|
"xunit.extensibility.core": {
|
|
"type": "Transitive",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
|
|
"dependencies": {
|
|
"xunit.abstractions": "2.0.3"
|
|
}
|
|
},
|
|
"xunit.extensibility.execution": {
|
|
"type": "Transitive",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
|
|
"dependencies": {
|
|
"xunit.extensibility.core": "[2.9.3]"
|
|
}
|
|
},
|
|
"koftwentytwo.appkit": {
|
|
"type": "Project"
|
|
},
|
|
"koftwentytwo.appkit.updates": {
|
|
"type": "Project",
|
|
"dependencies": {
|
|
"KofTwentyTwo.AppKit": "[0.1.0-dev, )",
|
|
"Velopack": "[1.2.161, )"
|
|
}
|
|
},
|
|
"Velopack": {
|
|
"type": "CentralTransitive",
|
|
"requested": "[1.2.161, )",
|
|
"resolved": "1.2.161",
|
|
"contentHash": "OpHNacIumnkhaaX3ZlQ/TCR4YPOJvud2/PAOoWb6o+mIrLwIVA275I5wAgt4q/1O2VrJeDwR1qFQyqzG4lUArg=="
|
|
}
|
|
}
|
|
}
|
|
} |