Adapt existing IActivityLog sinks to standard ILogger without adding interface requirements. Store original templates, rendered messages, typed JSON scalar fields, event identity and async scopes. Preserve full exception text, daily retention, failure containment, and thread-safe writes. Migrate update events, framework crash nets and samples to source-generated logging. Pin Microsoft.Extensions.Logging.Abstractions 10.0.12 (MIT) rather than implementing template parsing. Advance the unreleased minor to 0.2.0 and document legacy API compatibility and explicit scalar/JSON value policy. Validation: 146 unit tests, 12 sample UI tests, 100% core/updates coverage, zero-warning build, formatting and hooks passed. Dependency scan reported no known vulnerabilities. Starter migration and public rollout remain #5. Refs: #5, #8 Co-Authored-By: Codex (GPT-6) <noreply@openai.com> Signed-off-by: James Maes <james@kof22.com>
73 lines
3.3 KiB
XML
73 lines
3.3 KiB
XML
<Project>
|
|
|
|
<!-- KofTwentyTwo .NET quality gate (standards: K22-CODE-CS, from
|
|
KofTwentyTwo/standards configs/dotnet). Every rule fails `dotnet build` locally
|
|
exactly as it fails in CI. -->
|
|
<PropertyGroup>
|
|
<Nullable>enable</Nullable>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<LangVersion>latest</LangVersion>
|
|
<IsPackable>false</IsPackable>
|
|
|
|
<!-- Warnings are errors; analyzers and .editorconfig style run in every build. -->
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
<MSBuildTreatWarningsAsErrors>true</MSBuildTreatWarningsAsErrors>
|
|
<AnalysisLevel>latest-recommended</AnalysisLevel>
|
|
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
|
|
<!-- Required for IDE0005 (unused usings) to run during build. CS1591 (missing XML
|
|
doc) stays on for packable projects and is silenced for everything else below. -->
|
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
|
|
|
<!-- Reproducible builds with source-linked symbols. -->
|
|
<Deterministic>true</Deterministic>
|
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
|
<IncludeSymbols>true</IncludeSymbols>
|
|
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
|
|
|
<!-- Supply chain: audit direct AND transitive packages; pin the whole graph. -->
|
|
<NuGetAudit>true</NuGetAudit>
|
|
<NuGetAuditMode>all</NuGetAuditMode>
|
|
<NuGetAuditLevel>low</NuGetAuditLevel>
|
|
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
|
|
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
|
</PropertyGroup>
|
|
|
|
<!-- CI: normalized paths, and restore must match the committed lock files exactly. -->
|
|
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true' or '$(CI)' == 'true'">
|
|
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
|
|
<RestoreLockedMode>true</RestoreLockedMode>
|
|
</PropertyGroup>
|
|
|
|
<!-- Only shipped libraries must document their public API. -->
|
|
<PropertyGroup Condition="'$(IsPackable)' != 'true'">
|
|
<NoWarn>$(NoWarn);CS1591</NoWarn>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Repository-wide analyzers; versions live in Directory.Packages.props. -->
|
|
<PackageReference Include="Meziantou.Analyzer" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers" />
|
|
</ItemGroup>
|
|
|
|
<!-- Single version source for every package in the repo; they always release
|
|
together. Local builds are <prefix>-dev; release builds pass an explicit
|
|
-p:Version=<tag-version>, which overrides both parts. SourceLink appends the
|
|
git commit as "+<sha>" on AssemblyInformationalVersion. -->
|
|
<PropertyGroup>
|
|
<VersionPrefix>0.2.0</VersionPrefix>
|
|
<VersionSuffix>dev</VersionSuffix>
|
|
</PropertyGroup>
|
|
|
|
<!-- Package metadata shared by every packable project. -->
|
|
<PropertyGroup>
|
|
<Authors>James Maes</Authors>
|
|
<Copyright>Copyright (c) 2026 James Maes (KofTwentyTwo)</Copyright>
|
|
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
|
<PackageProjectUrl>https://github.com/KofTwentyTwo/AppKit</PackageProjectUrl>
|
|
<RepositoryUrl>https://github.com/KofTwentyTwo/AppKit</RepositoryUrl>
|
|
<RepositoryType>git</RepositoryType>
|
|
<PackageTags>windows;desktop;winui;wpf;velopack</PackageTags>
|
|
</PropertyGroup>
|
|
|
|
</Project>
|