Skip to content

Migrate template to .NET 8 / Essentials v3 RC19 and fix badge parsing - #40

Draft
jonnyarndt with Copilot wants to merge 2 commits into
feat/v3-migrationfrom
copilot/featv3-migration
Draft

jonnyarndt with Copilot wants to merge 2 commits into
feat/v3-migrationfrom
copilot/featv3-migration

Conversation

Copilot AI commented Oct 27, 2026 •

Copy link
Copy Markdown

Prepares the initial Essentials v3 migration and fixes badge parsing for literal net8. Targets feat/v3-migration, not main; the target branch remains unchanged until merge.

  • Framework and compatibility

    • Use upstream-supported net8; pin the verified NuGet package to 3.0.0-rc.19.
    • Set factory minima and examples to numeric 3.0.0, matching the loader’s System.Version comparison.
    • Define SERIES4 in Debug and Release; preserve packaging and host-runtime exclusions.
  • Badge parsing

    • Anchor the modern pattern while retaining legacy precedence:
      ^net(\d+(?:\.\d+)?)$
    • Regenerate badges and add isolated PowerShell coverage for legacy, modern, malformed, idempotence, warning, and staging cases.
    • Retain and document the expected RC dependency versus numeric-minimum warning.
  • Validation and follow-up

    • Add SDK 8 selection and non-publishing Debug/Release validation independent of semantic-release.
    • Document prerequisites, build/pack/check commands, and the manual RC-to-GA upgrade checklist.
    • Local builds, packing, badge tests, and archive checks pass; secret scan and CodeQL are clean. Windows CI and hardware/plugin loading remain unverified.

No automatic merge or upstream shared-workflow changes.

Co-authored-by: jonnyarndt <21110580+jonnyarndt@users.noreply.github.com>

Copy link
Copy Markdown
Contributor

Prepared migration commit b66abb0 (one implementation commit after the agent's initial planning commit).

Verified migration choices

  • Literal net8 matches the RC19 application project; SDK 8.0.425 successfully evaluates/builds it. NuGet normalizes assets to net8.0. No dedicated release-tagged v3 migration guide was located, so the tagged projects and actual SDK behavior were used as evidence.
  • PepperDashEssentials is pinned to 3.0.0-rc.19. Its actual NuGet package downloaded and restored successfully without feed credentials; availability was not inferred from the CPZ release. No newer official v3 release was found.
  • All factory minima/examples use 3.0.0: the tagged runtime gate parses System.Version and compares three numeric components. This excludes v2, accepts RC19's numeric version, and cannot enforce an individual RC. The existing badge mismatch warning for the RC dependency versus numeric minimum is retained and documented, not suppressed.
  • Existing release automation and packaging targets are unchanged. Independent validation uses read-only permissions, .NET 8 SDK selection, Debug/Release builds and packing, badge tests/checks, and package assertions without publishing or secrets.

Commands/results

Run from the repository root with .NET SDK 8.0.425, PowerShell 7.6.6, and HUSKY=0 for restore/build/pack:

dotnet restore epi-make-model.4Series.sln
dotnet build epi-make-model.4Series.sln --no-restore --configuration Debug
dotnet pack src/epi-make-model.4Series.csproj --no-build --configuration Debug
dotnet build epi-make-model.4Series.sln --no-restore --configuration Release
dotnet pack src/epi-make-model.4Series.csproj --no-build --configuration Release
pwsh -NoProfile -File .github/scripts/Test-ReadmeBadges.ps1
pwsh -NoProfile -File .github/scripts/Update-ReadmeBadges.ps1 -Check
git diff --check

All passed. Both builds reported 0 warnings / 0 errors. Badge tests cover 13 framework/fallback cases, update/check idempotence, warnings and staging protections; -Check passes with the expected RC-versus-numeric warning. The real badges were regenerated using the update script.

Inspected Debug and Release archives: CPLZ has only the plugin DLL, PDB and dependency manifest; NuGet includes lib/net8.0/epi-make-model.4Series.dll, README/license and the byte-identical current CPLZ. The nuspec retains exclude="Runtime,Build,Analyzers". The workflow's package-content assertions also passed locally. Secret scan found no secrets; CodeQL found 0 C# / Actions alerts.

Not verified / review boundary

No hardware, firmware, live Essentials runtime/plugin loading, or new Windows validation run is claimed as tested. No feed/authentication blocker occurred locally. GA publication remains a manual follow-up documented in the README.

This review PR targets feat/v3-migration, not main. The target branch is still at 79b421e771f68a13e23f6cc735172f3073cb3093 and remains unchanged until this PR is merged. Nothing was merged automatically; no upstream dependency/shared-workflow repositories were modified.

Copilot AI changed the title [WIP] Prepare initial .NET 8 Essentials v3 migration for EssentialsPluginTemplate Migrate template to .NET 8 / Essentials v3 RC19 and fix badge parsing Oct 27, 2026
Copilot AI requested a review from jonnyarndt October 27, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants