Stable1.0.2 and dev1.0.2-beta.1 EXEs/ZIPs are public and their actual downloaded signatures, timestamps, payloads, hashes, SBOM/provenance and updater feeds verify. Complete the owner's renewed MSI request by pinning standards1.2.0 at0ef3d319, enabling signed per-user MSI alongside EXE/ZIP, preparing1.0.3 channel links and next development prefix1.0.4. Stop duplicate release validation: a tag must be on main, have a verified source signature, match the entire genuinely merged PR Git tree, and reuse that head's latest successful required technical checks under their configured provider identities. Missing, failed, stale, pending or different-tree proof fails publication. All branch technical gates remain required; fresh release build/core coverage, signing, exact MSI payload/native lifecycle and distribution/SBOM/provenance checks remain required. Application behavior/dependencies/Azure trust are unchanged. Validation: all8 script tests pass (including10 release-proof boundary cases), live source proof verifies all17 genuine checks on the actual published18d8ae9 tree, five actual documents pass canonical lint, actionlint/zizmor and signed commit hooks pass. Exact-head full CI starts with this PR; production signed MSI lifecycle is still required before delivery. No claim of published MSI yet. Owner explicitly authorized release without further human-review requests. Record a truthful release-specific waiver; never fabricate personal-read acknowledgement; restore original rules immediately after the bounded merge. Substantial AI assistance: Codex GPT-6. Refs #33,#36,#38 and KofTwentyTwo/standards#47. --------- Signed-off-by: James Maes <james@kof22.com> Co-authored-by: Codex GPT-6 <noreply@openai.com>
71 lines
3.2 KiB
XML
71 lines
3.2 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. Local builds are <prefix>-dev; the release workflow passes
|
|
-p:Version=<tag-version>, which overrides both parts. SourceLink appends the git
|
|
commit as "+<sha>" on AssemblyInformationalVersion, which the About dialog and the
|
|
CLI's version output show as a short hash. -->
|
|
<PropertyGroup>
|
|
<VersionPrefix>1.0.4</VersionPrefix>
|
|
<VersionSuffix>dev</VersionSuffix>
|
|
</PropertyGroup>
|
|
|
|
<!-- Product metadata stamped into every assembly. -->
|
|
<PropertyGroup>
|
|
<Authors>James Maes</Authors>
|
|
<Product>MarkdownViewr</Product>
|
|
<Copyright>Copyright (c) 2026 James Maes</Copyright>
|
|
<RepositoryUrl>https://github.com/KofTwentyTwo/MarkdownViewr.Windows</RepositoryUrl>
|
|
<RepositoryType>git</RepositoryType>
|
|
</PropertyGroup>
|
|
|
|
</Project>
|