Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
"version": 1,
"isRoot": true,
"tools": {
"demaconsulting.reqstream": {
"version": "0.1.0",
"commands": [
"reqstream"
]
},
"demaconsulting.spdxtool": {
"version": "2.6.0",
"commands": [
Expand Down
3 changes: 2 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
"weasyprint",
"pagetitle",
"dcterms",
"Blockquotes"
"Blockquotes",
"tracematrix"
],
"ignorePaths": [
"node_modules",
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,15 @@ jobs:
--configuration Release
--verbosity normal
--collect "XPlat Code Coverage;Format=opencover"
--logger "trx;LogFileName=test-results-${{ inputs.os }}.trx"

- name: Upload test results
if: always()
uses: actions/upload-artifact@v6
with:
name: test-results-${{ inputs.os }}
path: |
test/**/TestResults/*.trx

- name: End Sonar Scanner
run: >
Expand Down
50 changes: 48 additions & 2 deletions .github/workflows/build_docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,20 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6

- name: Download test results from Windows
uses: actions/download-artifact@v6
with:
name: test-results-windows-latest
path: test-results
continue-on-error: true

- name: Download test results from Linux
uses: actions/download-artifact@v6
with:
name: test-results-ubuntu-latest
path: test-results
continue-on-error: true

- name: Setup Node.js
uses: actions/setup-node@v4
with:
Expand All @@ -31,6 +45,14 @@ jobs:
- name: Restore dotnet tools
run: dotnet tool restore

- name: Generate Requirements Report and Trace Matrix
run: >
dotnet reqstream
--requirements requirements.yaml
--tests "test-results/**/*.trx"
--report docs/requirements/requirements.md
--matrix docs/tracematrix/tracematrix.md

- name: Generate HTML with Pandoc
run: >
dotnet pandoc
Expand All @@ -42,10 +64,34 @@ jobs:
run: >
dotnet weasyprint
docs/guide/guide.html
docs/guide/guide.pdf
docs/guide.pdf

- name: Generate Requirements HTML with Pandoc
run: >
dotnet pandoc
--defaults docs/requirements/definition.yaml
--output docs/requirements/requirements.html

- name: Generate Requirements PDF with Weasyprint
run: >
dotnet weasyprint
docs/requirements/requirements.html
docs/requirements.pdf

- name: Generate Trace Matrix HTML with Pandoc
run: >
dotnet pandoc
--defaults docs/tracematrix/definition.yaml
--output docs/tracematrix/tracematrix.html

- name: Generate Trace Matrix PDF with Weasyprint
run: >
dotnet weasyprint
docs/tracematrix/tracematrix.html
docs/tracematrix.pdf

- name: Upload documentation
uses: actions/upload-artifact@v6
with:
name: documentation
path: docs/guide/guide.pdf
path: docs/*.pdf
4 changes: 3 additions & 1 deletion .github/workflows/build_on_push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ jobs:

build-docs:
name: Build Documentation
needs: quality-checks
needs:
- build-windows # Needed for test results
- build-linux # Needed for test results
permissions:
contents: read
uses: ./.github/workflows/build_docs.yaml
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,8 @@ node_modules/

# Generated documentation
docs/guide/*.html
docs/guide/*.pdf
docs/requirements/*.html
docs/requirements/requirements.md
docs/tracematrix/*.html
docs/tracematrix/tracematrix.md
docs/*.pdf
11 changes: 11 additions & 0 deletions docs/requirements/definition.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
resource-path:
- docs/requirements
- docs/template
input-files:
- docs/requirements/title.txt
- docs/requirements/introduction.md
- docs/requirements/requirements.md
template: guide_template.html
table-of-contents: true
number-sections: true
32 changes: 32 additions & 0 deletions docs/requirements/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Introduction

This document specifies the requirements for the ReqStream tool, a .NET command-line application designed for
managing software requirements in YAML format.

## Purpose

The purpose of this document is to define the functional and non-functional requirements that the ReqStream tool
must satisfy. These requirements guide the development, testing, and validation of the tool.

## Scope

This document covers:

- Command-line interface requirements
- Requirements file processing capabilities
- Test integration features
- Reporting and export functionality
- Platform and runtime support

## Document Conventions

Throughout this document:

- Requirements are identified with unique identifiers (e.g., CLI-001, REQ-001)
- Each requirement uses the keyword "shall" to indicate mandatory functionality
- Requirements are organized hierarchically by functional area

## References

- ReqStream User Guide: Provides detailed usage instructions and examples
- ReqStream Repository: <https://github.com/demaconsulting/ReqStream>
12 changes: 12 additions & 0 deletions docs/requirements/title.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: ReqStream Requirements
subtitle: Requirements Specification for the ReqStream Tool
lang: en-US
keywords:
- ReqStream
- Requirements
- Specification
- .NET
- YAML
- Command-Line Tool
---
11 changes: 11 additions & 0 deletions docs/tracematrix/definition.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
resource-path:
- docs/tracematrix
- docs/template
input-files:
- docs/tracematrix/title.txt
- docs/tracematrix/introduction.md
- docs/tracematrix/tracematrix.md
template: guide_template.html
table-of-contents: true
number-sections: true
37 changes: 37 additions & 0 deletions docs/tracematrix/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Introduction

This document provides a traceability matrix that maps ReqStream requirements to their associated test cases.
This matrix ensures that each requirement is adequately tested and verified.

## Purpose

The purpose of this trace matrix is to:

- Demonstrate test coverage for all requirements
- Provide traceability between requirements and tests
- Support verification and validation activities
- Facilitate impact analysis when requirements change

## Scope

This document covers the traceability between:

- ReqStream requirements defined in the requirements specification
- Test cases implemented in the ReqStream test suite

## Matrix Organization

The trace matrix is organized by requirement, showing:

- Requirement identifier and title
- Associated test cases that verify the requirement
- Test execution status

## How to Use This Document

Use this trace matrix to:

- Verify that all requirements have associated tests
- Identify which tests verify each requirement
- Assess test coverage across the requirement set
- Plan testing activities when requirements change
12 changes: 12 additions & 0 deletions docs/tracematrix/title.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: ReqStream Trace Matrix
subtitle: Test Traceability Matrix for the ReqStream Tool
lang: en-US
keywords:
- ReqStream
- Trace Matrix
- Traceability
- Testing
- .NET
- Command-Line Tool
---
Loading
Loading