Skip to content

Extensive agent, xUnit, documentation cleanup.#24

Merged
Malcolmnixon merged 5 commits into
mainfrom
category-markdowns
May 6, 2026
Merged

Extensive agent, xUnit, documentation cleanup.#24
Malcolmnixon merged 5 commits into
mainfrom
category-markdowns

Conversation

@Malcolmnixon
Copy link
Copy Markdown
Member

Pull Request

Description

Extensive agent, xUnit, documentation cleanup.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code quality improvement

Related Issues

Closes #

Pre-Submission Checklist

Before submitting this pull request, ensure you have completed the following:

Build and Test

  • Code builds successfully: dotnet build --configuration Release
  • All unit tests pass: dotnet test --configuration Release
  • Self-validation tests pass:
    dotnet run --project src/DemaConsulting.NuGetInstaller --configuration Release --framework net10.0
    --no-build -- --validate
  • Code produces zero warnings

Code Quality

  • Code formatting is correct: dotnet format --verify-no-changes
  • New code has appropriate XML documentation comments
  • Static analyzer warnings have been addressed

Quality Checks

Please run the following checks before submitting:

  • All linters pass: ./lint.sh (Unix/macOS) or cmd /c lint.bat / ./lint.bat (Windows)

Testing

  • Added unit tests for new functionality
  • Updated existing tests if behavior changed
  • All tests follow the AAA (Arrange, Act, Assert) pattern
  • Test coverage is maintained or improved

Documentation

  • Updated README.md (if applicable)
  • Updated ARCHITECTURE.md (if applicable)
  • Added code examples for new features (if applicable)
  • Updated requirements.yaml (if applicable)

Additional Notes

Copilot AI review requested due to automatic review settings May 6, 2026 00:12
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR performs a broad cleanup and restructuring across tests, requirements/design/verification documentation, and repo tooling configuration—most notably migrating the test suite from MSTest to xUnit v3 and introducing a new verification document collection under docs/verification/.

Changes:

  • Migrate test suite from MSTest to xUnit v3 (attributes + assertion updates, async test modernization, disable parallelization via xUnit config).
  • Introduce and wire up a new “Software Verification Design” document collection (docs/verification/**) plus supporting standards and ReviewMark coverage.
  • Consolidate “generated output” handling across docs/config (move inputs to generated/ paths, update ignores in lint/spell/yamllint/gitignore/fileassert configs).

Reviewed changes

Copilot reviewed 87 out of 95 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test/DemaConsulting.NuGetInstaller.Tests/Utilities/UtilitiesSubsystemTests.cs Convert subsystem tests from MSTest to xUnit [Fact] + xUnit assertions.
test/DemaConsulting.NuGetInstaller.Tests/Utilities/PathHelpersTests.cs Convert unit tests to xUnit; adjust Windows-only behavior handling.
test/DemaConsulting.NuGetInstaller.Tests/SelfTest/ValidationTests.cs Convert Validation unit tests to xUnit assertions/attributes.
test/DemaConsulting.NuGetInstaller.Tests/SelfTest/SelfTestSubsystemTests.cs Convert subsystem tests to xUnit and update assertions.
test/DemaConsulting.NuGetInstaller.Tests/ProgramTests.cs Convert Program unit tests to xUnit.
test/DemaConsulting.NuGetInstaller.Tests/NuGet/PackagesConfigReaderTests.cs Convert PackagesConfigReader unit tests to xUnit.
test/DemaConsulting.NuGetInstaller.Tests/NuGet/PackageInstallerTests.cs Convert to xUnit; modernize async usage and async file writes.
test/DemaConsulting.NuGetInstaller.Tests/NuGet/PackageExtractorTests.cs Convert PackageExtractor unit tests to xUnit.
test/DemaConsulting.NuGetInstaller.Tests/NuGet/NuGetSubsystemTests.cs Convert subsystem tests to xUnit; modernize async patterns.
test/DemaConsulting.NuGetInstaller.Tests/NuGet/Models/ModelsSubsystemTests.cs Convert model tests to xUnit assertions/attributes.
test/DemaConsulting.NuGetInstaller.Tests/IntegrationTests.cs Convert integration tests to xUnit and move init to constructor.
test/DemaConsulting.NuGetInstaller.Tests/DemaConsulting.NuGetInstaller.Tests.csproj Switch test dependencies from MSTest to xUnit v3; add implicit using.
test/DemaConsulting.NuGetInstaller.Tests/AssemblyInfo.cs Disable test parallelization using xUnit assembly-level configuration.
requirements.yaml Update requirements include paths to new consolidated reqstream structure.
docs/verification/title.txt Add verification document metadata for Pandoc build.
docs/verification/ots/weasyprint.md Add verification evidence narrative for WeasyPrint OTS item.
docs/verification/ots/versionmark.md Add verification evidence narrative for VersionMark OTS item.
docs/verification/ots/sonarmark.md Add verification evidence narrative for SonarMark OTS item.
docs/verification/ots/sarifmark.md Add verification evidence narrative for SarifMark OTS item.
docs/verification/ots/reviewmark.md Add verification evidence narrative for ReviewMark OTS item.
docs/verification/ots/reqstream.md Add verification evidence narrative for ReqStream OTS item.
docs/verification/ots/pandoc.md Add verification evidence narrative for Pandoc OTS item.
docs/verification/ots/mstest.md Add verification evidence narrative for MSTest OTS item.
docs/verification/ots/fileassert.md Add verification evidence narrative for FileAssert OTS item.
docs/verification/ots/buildmark.md Add verification evidence narrative for BuildMark OTS item.
docs/verification/ots.md Add top-level OTS verification overview section.
docs/verification/nuget-installer/utilities/path-helpers.md Add unit-level verification design for PathHelpers.
docs/verification/nuget-installer/utilities.md Add subsystem verification design for Utilities.
docs/verification/nuget-installer/self-test/validation.md Add unit-level verification design for Validation.
docs/verification/nuget-installer/self-test.md Add subsystem verification design for SelfTest.
docs/verification/nuget-installer/program.md Add unit-level verification design for Program.
docs/verification/nuget-installer/nuget/packages-config-reader.md Add unit-level verification design for PackagesConfigReader.
docs/verification/nuget-installer/nuget/package-installer.md Add unit-level verification design for PackageInstaller.
docs/verification/nuget-installer/nuget/package-extractor.md Add unit-level verification design for PackageExtractor.
docs/verification/nuget-installer/nuget/models/package-entry.md Add unit-level verification design for PackageEntry.
docs/verification/nuget-installer/nuget/models.md Add subsystem verification design for NuGet Models.
docs/verification/nuget-installer/nuget.md Add subsystem verification design for NuGet.
docs/verification/nuget-installer/cli/context.md Add unit-level verification design for Context.
docs/verification/nuget-installer/cli.md Add subsystem verification design for Cli.
docs/verification/nuget-installer.md Add system-level verification design for NuGet Installer.
docs/verification/introduction.md Add verification document introduction and companion artifact mapping.
docs/verification/definition.yaml Add Pandoc definition for building verification document output.
docs/requirements_report/definition.yaml Point requirements report build at generated/trace_matrix.md.
docs/requirements_doc/definition.yaml Point requirements doc build at generated/ outputs.
docs/reqstream/nuget-installer/utilities.yaml Add subsystem requirements file for Utilities.
docs/reqstream/nuget-installer/self-test.yaml Add subsystem requirements file for SelfTest.
docs/reqstream/nuget-installer/nuget/models.yaml Add subsystem requirements file for NuGet Models.
docs/reqstream/nuget-installer/nuget.yaml Add subsystem requirements file for NuGet.
docs/reqstream/nuget-installer/cli.yaml Add subsystem requirements file for Cli.
docs/reqstream/nuget-installer.yaml Add system-level requirements file for NuGet Installer.
docs/design/nuget-installer/utilities/path-helpers.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/utilities.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/self-test/validation.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/self-test.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/program.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/nuget/packages-config-reader.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/nuget/package-installer.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/nuget/package-extractor.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/nuget/models/package-entry.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/nuget/models.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/nuget.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/cli/context.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer/cli.md Adjust headings to meet documentation heading-depth rules.
docs/design/nuget-installer.md Add system-level design document in new consolidated location.
docs/design/introduction.md Replace markdown reference links with inline/verbal references.
docs/design/definition.yaml Update Pandoc input paths to new consolidated design structure.
docs/code_review_report/definition.yaml Point code review report build at generated report path.
docs/code_review_plan/definition.yaml Point code review plan build at generated plan path.
docs/code_quality/definition.yaml Point code quality build at generated report paths.
docs/build_notes/definition.yaml Point build notes build at generated build notes/version paths.
AGENTS.md Update project overview, standards matrix, and generated-file guidance.
.yamllint.yaml Update ignore patterns and exclude generated/ outputs.
.reviewmark.yaml Expand review sets to include verification docs + new req/design paths.
.markdownlint-cli2.yaml Disable MD013 enforcement for tables; ignore generated outputs.
.gitignore Simplify generated-doc ignore rules to **/generated/.
.github/standards/verification-documentation.md Add new standard defining verification doc structure and rules.
.github/standards/technical-documentation.md Update globs and add explicit generated/ handling + heading depth rule.
.github/standards/software-items.md Extend artifact model to include verification design + OTS artifact locations.
.github/standards/reviewmark-usage.md Update ReviewMark paths and include verification/OTS review-set guidance.
.github/standards/requirements-principles.md Clarify “WHAT vs HOW” guidance for unit naming.
.github/standards/reqstream-usage.md Update hierarchy documentation and generated output locations.
.github/standards/design-documentation.md Align design doc structure with heading-depth/folder-depth rules.
.github/standards/csharp-testing.md Update testing standard content to xUnit v3 conventions.
.github/standards/csharp-language.md Expand XmlDoc/literate coding guidance.
.github/standards/coding-principles.md Expand API documentation expectations for “full symbol documentation”.
.github/pull_request_template.md Update build/lint commands to pwsh ./build.ps1 and pwsh ./lint.ps1.
.github/agents/repo-consistency.agent.md Remove repo-consistency agent definition.
.github/agents/lint-fix.agent.md Update markdownlint guidance re: wide tables.
.github/agents/formal-review.agent.md Ensure formal reviews include verification-documentation standard.
.github/agents/developer.agent.md Minor formatting adjustments in workflow guidance.
.fileassert.yaml Update expected output paths to generated/ and add verification doc checks.
.cspell.yaml Add/ignore terms and exclude generated outputs from spellchecking.
Comments suppressed due to low confidence (1)

requirements.yaml:20

  • requirements.yaml still includes the MSTest OTS requirements (docs/reqstream/ots/mstest.yaml), but the test project has been migrated to xUnit (MSTest packages/attributes removed). This makes the requirements set inaccurate and can break traceability/audit assumptions. Update the included OTS requirement to reflect the actual test framework/tooling being used (or rename/replace the MSTest OTS requirement accordingly).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/DemaConsulting.NuGetInstaller.Tests/Utilities/PathHelpersTests.cs Outdated
Comment thread docs/verification/nuget-installer/program.md Outdated
Comment thread docs/verification/ots/mstest.md Outdated
Comment thread docs/verification/nuget-installer.md
@Malcolmnixon
Copy link
Copy Markdown
Member Author

@copilot apply changes based on the comments in this thread

Also the build failed with:

File 'D:\a\NuGetInstaller\NuGetInstaller\docs/generated/NuGetInstaller Software Verification Design.pdf' PDF metadata 'Subject' does not contain 'Verification design document'

Copy link
Copy Markdown
Contributor

Copilot AI commented May 6, 2026

@copilot apply changes based on the comments in this thread

Also the build failed with:
...

Fixed in 253b0f0. The PDF Subject metadata CI failure was caused by the description field in docs/verification/title.txt using lowercase "verification" — updated to "Verification design document for the NuGet Installer" so the fileassert check passes. All MSTest→xUnit documentation updates from the review thread are also included in this commit.

Copilot AI review requested due to automatic review settings May 6, 2026 01:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 97 out of 101 changed files in this pull request and generated 7 comments.

Comments suppressed due to low confidence (2)

docs/reqstream/nuget-installer.yaml:112

  • This requirement is about reporting an error when the config file is not found, but the linked evidence is a “valid config install” test. That test doesn’t exercise the missing-file path, so it can’t prove this requirement. Add/point to a system-level integration test that invokes the tool with a missing config file and asserts non-zero exit + error output.
    docs/reqstream/nuget-installer.yaml:121
  • This requirement is about reporting an error for malformed XML, but the linked evidence is a “valid config install” test. That test won’t fail if malformed XML handling is broken, so it can’t prove this requirement. Add/point to an integration test that runs the tool against malformed packages.config and asserts non-zero exit + error output.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md Outdated
Comment thread test/DemaConsulting.NuGetInstaller.Tests/Utilities/PathHelpersTests.cs Outdated
Comment thread docs/user_guide/introduction.md Outdated
Comment thread test/DemaConsulting.NuGetInstaller.Tests/ProgramTests.cs
Comment thread test/DemaConsulting.NuGetInstaller.Tests/ProgramTests.cs
Comment thread test/DemaConsulting.NuGetInstaller.Tests/IntegrationTests.cs
@Malcolmnixon
Copy link
Copy Markdown
Member Author

@copilot apply changes based on the comments in this thread

Copy link
Copy Markdown
Contributor

Copilot AI commented May 6, 2026

@copilot apply changes based on the comments in this thread

Done in 5a5e1c5:

  • PathHelpersTests.cs: replaced early return with Assert.SkipUnless(OperatingSystem.IsWindows(), ...) so the test is reported as Skipped on non-Windows
  • SelfTestSubsystemTests.cs, ProgramTests.cs, IntegrationTests.cs: all Assert.True(exitCode == 0/1/!= 0, ...) replaced with Assert.Equal/Assert.NotEqual
  • README.md and docs/user_guide/introduction.md: --results now shows --results <file>, --result <file> in the options table

@Malcolmnixon
Copy link
Copy Markdown
Member Author

@copilot please use lint-fix to fix the issues

Copilot AI review requested due to automatic review settings May 6, 2026 03:12
@Malcolmnixon Malcolmnixon review requested due to automatic review settings May 6, 2026 03:12
Copy link
Copy Markdown
Contributor

Copilot AI commented May 6, 2026

@copilot please use lint-fix to fix the issues

Done in 3ad9311. The lint-fix agent fixed:

  • docs/reqstream/nuget-installer/cli.yaml: yamllint line-length violation (line was 122 chars, limit is 120)
  • README.md and docs/user_guide/introduction.md: markdown table column misalignment caused by the new --results <file> row (7 chars wider than column 1 width — header, separator, and all data rows adjusted)

@Malcolmnixon Malcolmnixon merged commit 75b3c2f into main May 6, 2026
15 checks passed
@Malcolmnixon Malcolmnixon deleted the category-markdowns branch May 6, 2026 10:37
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.

3 participants