Skip to content

feat: apply TemplateDotNetTool PR#52 patterns (section comments, artifact consolidation, OTS self-validation, OTS requirements)#162

Merged
Malcolmnixon merged 3 commits intomainfrom
copilot/update-template-project-changes
Mar 4, 2026
Merged

feat: apply TemplateDotNetTool PR#52 patterns (section comments, artifact consolidation, OTS self-validation, OTS requirements)#162
Malcolmnixon merged 3 commits intomainfrom
copilot/update-template-project-changes

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 4, 2026

Pull Request

Description

Propagates TemplateDotNetTool PR#52 improvements to SpdxTool: consistent workflow section comments, consolidated artifacts-* artifact naming, OTS self-validation steps, and OTS Software requirements with test evidence linkage.

Build Workflow — Section Comments

Added # === SECTION NAME === comment blocks to all jobs that were missing them (quality-checks, build, codeql, integration-test, targets-integration-test), matching the template pattern with INSTALL DEPENDENCIES, CAPTURE TOOL VERSIONS, BUILD AND TEST, UPLOAD ARTIFACTS, etc.

Artifact Naming Convention

All jobs now write outputs to a local artifacts/ directory and upload under artifacts-{job} names:

Before After
version-capture-quality + no upload for quality artifacts-quality (path: artifacts/)
version-capture-{os} + test-results-{os} artifacts-build-{os}
codeql-sarif (path: sarif-results/csharp.sarif) artifacts-codeql (path: artifacts/)
version-capture-* + validation-test-results-* artifacts-validation-{os}-dotnet{ver}
targets-test-results-{os} artifacts-targets-{os}
3 separate downloads in build-docs Single pattern: 'artifacts-*' + merge-multiple: true

Downstream paths for reqstream --tests, sarifmark --sarif, and versionmark --publish updated accordingly.

OTS Self-Validation Steps

  • quality-checks and build jobs: added Run VersionMark self-validation
  • build-docs job: added 5 self-validation steps (ReqStream, BuildMark, VersionMark, SarifMark, SonarMark) under a new # === CAPTURE OTS SELF-VALIDATION RESULTS === section

OTS Software Requirements

Added OTS Software section to requirements.yaml with 6 requirements (SpdxTool-OTS-MSTest, -ReqStream, -BuildMark, -VersionMark, -SarifMark, -SonarMark), each linked to test evidence from the corresponding tool's --validate TRX output.

Bumped demaconsulting.reqstream 1.3.01.4.0 to gain ReqStream_EnforcementMode test evidence for SpdxTool-OTS-ReqStream.

Bug Fix — Integration Test Self-Validation Flag

Fixed a typo where spdx-tool --validate was invoked with --results (plural) instead of the correct --result (singular) flag. This caused no validation TRX files to be generated, leaving all integration-test requirements (SPDX operations, workflow, and platform requirements) unsatisfied in the reqstream enforcement check.

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

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.SpdxTool --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:

  • Spell checker passes: cspell "**/*.{md,cs}"
  • Markdown linter passes: markdownlint "**/*.md"
  • YAML linter passes: yamllint .

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

versionmark --capture calls updated in all jobs to write output files under artifacts/ (e.g., --output "artifacts/versionmark-quality.json") so they are included in the consolidated artifact upload.

Note: spdx-tool uses --result (singular) for the self-validation results flag, unlike the OTS tools (reqstream, buildmark, versionmark, etc.) which use --results (plural).


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

…fact naming, OTS self-validation, OTS requirements)

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copilot AI changed the title [WIP] Update repo with changes from template project feat: apply TemplateDotNetTool PR#52 patterns (section comments, artifact consolidation, OTS self-validation, OTS requirements) Mar 4, 2026
@Malcolmnixon
Copy link
Copy Markdown
Member

@copilot Something very bad happened to the requirements evidence - there are now a massive number of requirements lacking testing evidence. What broke?

Run dotnet reqstream --requirements requirements.yaml --tests "artifacts/**/*.trx" --report docs/requirements/requirements.md --justifications docs/justifications/justifications.md --matrix docs/tracematrix/tracematrix.md --enforce
  dotnet reqstream --requirements requirements.yaml --tests "artifacts/**/*.trx" --report docs/requirements/requirements.md --justifications docs/justifications/justifications.md --matrix docs/tracematrix/tracematrix.md --enforce
  shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
  env:
    DOTNET_ROOT: C:\Program Files\dotnet
ReqStream version 1.4.0+3f7e80be33245a31b5af7c9014ce94adbd816336
Copyright (c) 2026 DEMA Consulting

Reading 1 requirements file(s)...
Requirements loaded successfully.
Exporting requirements to docs/requirements/requirements.md...
Requirements report generated successfully.
Exporting justifications to docs/justifications/justifications.md...
Justifications report generated successfully.
Processing 16 test result file(s)...
Trace matrix created successfully.
Exporting trace matrix to docs/tracematrix/tracematrix.md...
Trace matrix report generated successfully.
Error: Only 19 of 41 requirements are satisfied with tests.
Unsatisfied requirements:
  - SpdxTool-Val-Validate
  - SpdxTool-Val-NtiaMinimum
  - SpdxTool-Pkg-AddPackage
  - SpdxTool-Pkg-CopyPackage
  - SpdxTool-Pkg-UpdatePackage
  - SpdxTool-Pkg-FindPackage
  - SpdxTool-Pkg-GetVersion
  - SpdxTool-Rel-AddRelationship
  - SpdxTool-Xfm-ToMarkdown
  - SpdxTool-Xfm-Diagram
  - SpdxTool-Man-RenameId
  - SpdxTool-Hsh-Hash
  - SpdxTool-Wkf-RunWorkflow
  - SpdxTool-Wkf-SetVariable
  - SpdxTool-Wkf-Print
  - SpdxTool-Wkf-Query
  - SpdxTool-Wkf-NuGetWorkflow
  - SpdxTool-Plt-Windows
  - SpdxTool-Plt-Linux
  - SpdxTool-Plt-Net8
  - SpdxTool-Plt-Net9
  - SpdxTool-Plt-Net10
Error: Process completed with exit code 1.

…tion-test job

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 4, 2026

@copilot Something very bad happened to the requirements evidence - there are now a massive number of requirements lacking testing evidence. What broke?

...

The root cause was a typo introduced in the workflow: spdx-tool only supports --result (singular), but I mistakenly changed it to --results (plural) in the integration-test job's self-validation step. This caused the validation TRX files to not be generated, so reqstream couldn't find test evidence for SpdxTool_Validate, SpdxTool_AddPackage, and all other integration-test requirements.

Fixed in dc8b9f4 by reverting --results back to --result for the spdx-tool command.

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