Skip to content

Enhance coverage path resolution and artifact management in Invoke-NovaTest - #267

Merged
stiwicourage merged 3 commits into
mainfrom
develop
Oct 8, 2026
Merged

stiwicourage merged 3 commits into
mainfrom
develop

Conversation

@stiwicourage

Copy link
Copy Markdown
Owner

Summary

  • What changed?
    • Prepared the release view for the current branch diff against origin/develop (the local branch is develop and is ahead of origin/develop by 2 commits). The diff is a patch-level fix for Invoke-NovaTest so coverage discovery, coverage output, and artifact isolation stay rooted in the selected Nova project even after Set-Location between sibling projects.
    • No additional release-file edits were needed during this release-prep pass because the diff already includes matching CHANGELOG.md, RELEASE_NOTE.md, and command-help updates.
    • Proposed stable release target: 3.4.1. Current develop prerelease version 3.4.1-preview is already correct for this branch.
  • Why was this change needed?
    • Without the fix, Invoke-NovaTest could report 0% coverage and write coverage artifacts into the wrong sibling project when PowerShell started in one repository and later navigated into another with Set-Location.
  • Link the issue, discussion, or follow-up work (for example Closes #123).
    • Follow-up: working-directory handling in Invoke-NovaTest.

Affected area

  • nova CLI or command routing
  • Public PowerShell cmdlet behavior
  • Scaffolding or project.json handling
  • Build, test, analyzer, coverage, or CI helper flow
  • Package, raw upload, or package metadata workflow
  • Publish, release, or GitHub Actions automation
  • Self-update or notification preference behavior
  • Contributor documentation (README.md, CONTRIBUTING.md, repository workflow docs)
  • End-user docs (docs/*.html)
  • Command help (docs/NovaModuleTools/en-US/*.md)
  • src/resources/example/
  • Dependency or manifest changes (project.json, workflow dependencies, release tooling)
  • Security-sensitive change
  • Documentation-only change
  • Agentic Copilot Workflow + scaffold mirror + scaffold-sync guardrail test.
  • Other

Review guidance

  • Highlight the main code path or workflow reviewers should start with.
    • Start with src/private/quality/GetNovaTestWorkflowContext.ps1 and src/private/quality/InvokeNovaTestWorkflow.ps1.
  • Call out the primary files or folders changed (for example src/public/, src/private/cli/, scripts/build/ci/, .github/workflows/, docs/, or src/resources/example/).
    • src/private/quality/
    • tests/private/quality/
    • tests/public/InvokeNovaTest.Integration.Tests.ps1
    • docs/NovaModuleTools/en-US/Invoke-NovaTest.md
    • CHANGELOG.md
    • RELEASE_NOTE.md
  • Call out any trade-offs, follow-up work, or known limitations.
    • The release impact is a patch fix only; no release automation changes are required.
    • project.json intentionally remains 3.4.1-preview on develop; the next stable release implied by this diff is 3.4.1.
    • Successful reruns may leave artifacts/coverage.xml byte-identical, so artifact isolation is verified by ensuring the sibling project stays untouched rather than by requiring a changed hash in the selected project.

Validation

  • Invoke-NovaBuild
  • Invoke-NovaTest
  • Test-NovaBuild
  • ./scripts/build/Invoke-ScriptAnalyzerCI.ps1
  • ./scripts/build/ci/Invoke-NovaModuleToolsCI.ps1
  • Targeted Nova workflow validated (% nova build, % nova test, % nova merge, % nova deploy, % nova publish, % nova release, % nova update, % nova notification, or % nova init as relevant)
  • Docs/example only; executable validation not needed

Validation notes:

Executed earlier on this branch and still the relevant evidence for this release-prep review:
- pwsh -NoLogo -NoProfile -File ./run.ps1 -> passed
- Invoke-NovaTest -> passed
- Test-NovaBuild -> passed
- ./scripts/build/ci/Invoke-NovaModuleToolsCI.ps1 -OutputDirectory ./artifacts -> passed
- Gerber direct run -> 1345 passed, 98.37% coverage
- Gerber.AT direct run -> 623 passed, 95.83% coverage
- Gerber -> Set-Location ../Gerber.AT -> Invoke-NovaTest -> 623 passed, 95.83% coverage
- Gerber.AT -> Set-Location ../Gerber -> Invoke-NovaTest -> 1345 passed, 98.37% coverage
- Same-session sequential run (Gerber then Gerber.AT) -> both passed with correct per-project coverage
Release/publish automation was reviewed but not executed because publish/tag/push side effects were not authorized and release logic itself is unchanged in this diff.

Documentation and release follow-up

  • README.md reviewed and updated if contributor workflow, architecture, CI, release, or automation changed
  • CONTRIBUTING.md reviewed and updated if contribution expectations or review guidance changed
  • CHANGELOG.md reviewed and updated if the change matters to users, maintainers, or contributors
  • RELEASE_NOTE.md reviewed and updated if the change affects public cmdlet usage, CLI usage, configuration semantics, or migration expectations
  • docs/NovaModuleTools/en-US/ help updated if a public command or CLI behavior changed
  • docs/*.html updated if end-user workflows or examples changed
  • src/resources/example/ reviewed and updated if the real-world project layout, package model, or upload workflow changed
  • No documentation, changelog, release-note, or example updates were needed

Maintainability, compatibility, and risk

  • Code Health / maintainability impact considered
  • No breaking change
  • Breaking change
  • Security-sensitive change
  • CI, workflow, or release-pipeline impact
  • Dependency-review impact

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gates Passed
6 Quality Gates Passed

See analysis details in CodeScene

Quality Gate Profile: Pay Down Tech Debt
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Coverage Gates Passed
Overall Coverage: 99.9% (required = 95%)
New & Changed Code Coverage: 100% (required = 99%)

Review details by gate
  • Overall Coverage

    • Pass/Fail Reason:
      The overall coverage gate was checked for all code and meets the goal: 99.9% covered >= threshold = 95%
    • Action:
      You have 296 files with a sum of 4314 covered and 6 uncovered lines of code.
  • New & Changed Code Coverage

    • Pass/Fail Reason:
      New or changed code meets coverage goal: 100% covered >= threshold = 99%
    • Action:
      You modified 2 files, and covered 21 added/modified lines of code.

@stiwicourage
stiwicourage merged commit c2f7685 into main Oct 8, 2026
15 checks passed

This branch was successfully deployed

1 active deployment
github-pages — 6a6338df Deployed Oct 8, 2026 by stiwicourage via deploy #294
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.

1 participant