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
3 changes: 2 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@
"triaging",
"trx",
"vbproj",
"vcxproj"
"vcxproj",
"yamllint"
],
"ignorePaths": [
"node_modules",
Expand Down
9 changes: 5 additions & 4 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report a bug! Please fill out the sections below to help us understand and fix the issue.
Thanks for taking the time to report a bug! Please fill out the sections below to help us understand and
fix the issue.

- type: textarea
id: description
Expand All @@ -28,9 +29,9 @@ body:
2. Call method '...'
3. Observe error...
value: |
1.
2.
3.
1.
2.
3.
validations:
required: true

Expand Down
6 changes: 6 additions & 0 deletions .github/agents/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ These agents have specialized roles and expertise to help maintain and improve t
**Role**: Expert technical writer for documentation maintenance

**Specialties**:

- Maintaining README, ARCHITECTURE, and other markdown files
- Writing XML documentation comments for C# APIs
- Ensuring documentation accuracy and clarity
- Following markdown and spelling standards

**When to Use**:

- Adding or updating documentation
- Improving code comments
- Creating usage examples
Expand All @@ -28,12 +30,14 @@ These agents have specialized roles and expertise to help maintain and improve t
**Role**: Code quality specialist ensuring high standards

**Specialties**:

- Enforcing testing standards and code coverage
- Running static analysis and linting
- Code review and quality gates
- Ensuring zero-warning builds

**When to Use**:

- Reviewing code changes
- Improving test coverage
- Fixing quality issues
Expand All @@ -46,13 +50,15 @@ These agents have specialized roles and expertise to help maintain and improve t
**Role**: Project maintenance and improvement specialist

**Specialties**:

- Managing dependencies and Dependabot PRs
- Triaging and organizing issues
- Identifying improvement opportunities
- Planning enhancements and releases
- Weekly maintenance tasks

**When to Use**:

- Weekly project health checks
- Issue triage and prioritization
- Planning enhancements
Expand Down
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ updates:
nuget-dependencies:
patterns:
- "*"

# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
Expand Down
22 changes: 10 additions & 12 deletions .github/workflows/build_on_push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,20 @@ jobs:
- name: Checkout
uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v6
- name: Run markdown linter
uses: DavidAnson/markdownlint-cli2-action@v22
with:
node-version: '20'

- name: Install cspell
run: npm install -g cspell

- name: Install markdownlint-cli
run: npm install -g markdownlint-cli
globs: '**/*.md'

- name: Run spell checker
run: cspell "**/*.{md,cs}" --no-progress
uses: streetsidesoftware/cspell-action@v8
with:
files: '**/*.{md,cs}'

- name: Run markdown linter
run: markdownlint "**/*.md" --ignore node_modules
- name: Run YAML linter
uses: ibiqlik/action-yamllint@v3
with:
config_file: .yamllint.yaml

build-windows:
name: Build Windows
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/weekly-maintenance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ permissions:
jobs:
maintenance:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v6
Expand Down
13 changes: 3 additions & 10 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
{
"default": true,
"MD013": {
"line_length": 120,
"heading_line_length": 120,
"code_block_line_length": 120,
"code_blocks": true,
"tables": false,
"headings": true,
"strict": false,
"stern": false
},
"MD003": { "style": "atx" },
"MD007": { "indent": 2 },
"MD013": { "line_length": 120 },
"MD033": false,
"MD041": false
}
25 changes: 25 additions & 0 deletions .yamllint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
# yamllint configuration for TestResults
# This configuration defines the rules for YAML file linting

extends: default

rules:
# Allow 'on:' in GitHub Actions workflows (not a boolean value)
truthy:
allowed-values: ['true', 'false', 'on', 'off']
check-keys: true

# Allow longer lines for URLs and complex expressions
line-length:
max: 120
level: error

# Ensure proper indentation
indentation:
spaces: 2
indent-sequences: true

# Ensure proper comment formatting
comments:
min-spaces-from-content: 2
175 changes: 88 additions & 87 deletions spdx-workflow.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
# This workflow annotates the SBOM for the DemaConsulting.TestResults with
# build tools, and generates a summary markdown.

Expand All @@ -14,116 +15,116 @@ parameters:
steps:

# Get the version of the TestResults package
- command: get-version
inputs:
output: version
spdx: ${{ test-results-spdx }}
name: DemaConsulting.TestResults
- command: get-version
inputs:
output: version
spdx: ${{ test-results-spdx }}
name: DemaConsulting.TestResults

# Rename the package ID for TestResults
- command: rename-id
displayName: Rename TestResults Package ID
inputs:
spdx: ${{ test-results-spdx }}
old: SPDXRef-RootPackage
new: SPDXRef-Package-DemaConsulting-TestResults-${{ version }}
- command: rename-id
displayName: Rename TestResults Package ID
inputs:
spdx: ${{ test-results-spdx }}
old: SPDXRef-RootPackage
new: SPDXRef-Package-DemaConsulting-TestResults-${{ version }}

# Query for DotNet version
- command: run-workflow
displayName: Query DotNet Version
inputs:
url: https://raw.githubusercontent.com/demaconsulting/SpdxWorkflows/main/GetDotNetVersion.yaml
outputs:
version: dotnet-version
- command: run-workflow
displayName: Query DotNet Version
inputs:
url: https://raw.githubusercontent.com/demaconsulting/SpdxWorkflows/main/GetDotNetVersion.yaml
outputs:
version: dotnet-version

# Add DotNet package
- command: run-workflow
displayName: Add DotNet Package ${{ dotnet-version }}
inputs:
url: https://raw.githubusercontent.com/demaconsulting/SpdxWorkflows/main/AddDotNetPackage.yaml
parameters:
spdx: ${{ test-results-spdx }}
id: SPDXRef-Package-DotNet-${{ dotnet-version }}
version: ${{ dotnet-version }}
- command: run-workflow
displayName: Add DotNet Package ${{ dotnet-version }}
inputs:
url: https://raw.githubusercontent.com/demaconsulting/SpdxWorkflows/main/AddDotNetPackage.yaml
parameters:
spdx: ${{ test-results-spdx }}
id: SPDXRef-Package-DotNet-${{ dotnet-version }}
version: ${{ dotnet-version }}

# Add DotNet relationships
- command: add-relationship
displayName: Add DotNet Relationships
inputs:
spdx: ${{ test-results-spdx }}
id: SPDXRef-Package-DotNet-${{ dotnet-version }}
relationships:
- type: BUILD_TOOL_OF
element: SPDXRef-Package-DemaConsulting-TestResults-${{ version }}
comment: DemaConsulting.TestResults compiled by DotNet ${{ dotnet-version }}
- command: add-relationship
displayName: Add DotNet Relationships
inputs:
spdx: ${{ test-results-spdx }}
id: SPDXRef-Package-DotNet-${{ dotnet-version }}
relationships:
- type: BUILD_TOOL_OF
element: SPDXRef-Package-DemaConsulting-TestResults-${{ version }}
comment: DemaConsulting.TestResults compiled by DotNet ${{ dotnet-version }}

# Update the Sha256 digest on the TestResults SBOM
- command: hash
displayName: Update TestResults SBOM Sha256
inputs:
operation: generate
algorithm: sha256
file: ${{ test-results-spdx }}
- command: hash
displayName: Update TestResults SBOM Sha256
inputs:
operation: generate
algorithm: sha256
file: ${{ test-results-spdx }}

# Validate the TestResults SBOM
- command: validate
displayName: Validate TestResults SBOM Sha256
inputs:
spdx: ${{ test-results-spdx }}
- command: validate
displayName: Validate TestResults SBOM Sha256
inputs:
spdx: ${{ test-results-spdx }}

# Generate the TestResults summary
- command: to-markdown
displayName: Generate TestResults SBOM summary
inputs:
spdx: ${{ test-results-spdx }}
markdown: ${{ test-results-md }}
- command: to-markdown
displayName: Generate TestResults SBOM summary
inputs:
spdx: ${{ test-results-spdx }}
markdown: ${{ test-results-md }}

# Rename the package ID for TestResults.Tests
- command: rename-id
displayName: Rename TestResults.Tests Package ID
inputs:
spdx: ${{ test-results-tests-spdx }}
old: SPDXRef-RootPackage
new: SPDXRef-Package-DemaConsulting-TestResults-Tests-${{ version }}
- command: rename-id
displayName: Rename TestResults.Tests Package ID
inputs:
spdx: ${{ test-results-tests-spdx }}
old: SPDXRef-RootPackage
new: SPDXRef-Package-DemaConsulting-TestResults-Tests-${{ version }}

# Add DotNet package
- command: run-workflow
displayName: Add DotNet Package ${{ dotnet-version }}
inputs:
url: https://raw.githubusercontent.com/demaconsulting/SpdxWorkflows/main/AddDotNetPackage.yaml
parameters:
spdx: ${{ test-results-tests-spdx }}
id: SPDXRef-Package-DotNet-${{ dotnet-version }}
version: ${{ dotnet-version }}
- command: run-workflow
displayName: Add DotNet Package ${{ dotnet-version }}
inputs:
url: https://raw.githubusercontent.com/demaconsulting/SpdxWorkflows/main/AddDotNetPackage.yaml
parameters:
spdx: ${{ test-results-tests-spdx }}
id: SPDXRef-Package-DotNet-${{ dotnet-version }}
version: ${{ dotnet-version }}

# Add DotNet relationships
- command: add-relationship
displayName: Add DotNet Relationships
inputs:
spdx: ${{ test-results-tests-spdx }}
id: SPDXRef-Package-DotNet-${{ dotnet-version }}
relationships:
- type: BUILD_TOOL_OF
element: SPDXRef-Package-DemaConsulting-TestResults-Tests-${{ version }}
comment: DemaConsulting.TestResults.Tests compiled by DotNet ${{ dotnet-version }}
- command: add-relationship
displayName: Add DotNet Relationships
inputs:
spdx: ${{ test-results-tests-spdx }}
id: SPDXRef-Package-DotNet-${{ dotnet-version }}
relationships:
- type: BUILD_TOOL_OF
element: SPDXRef-Package-DemaConsulting-TestResults-Tests-${{ version }}
comment: DemaConsulting.TestResults.Tests compiled by DotNet ${{ dotnet-version }}

# Update the Sha256 digest on the TestResults.Tests SBOM
- command: hash
displayName: Update TestResults.Tests SBOM Sha256
inputs:
operation: generate
algorithm: sha256
file: ${{ test-results-tests-spdx }}
- command: hash
displayName: Update TestResults.Tests SBOM Sha256
inputs:
operation: generate
algorithm: sha256
file: ${{ test-results-tests-spdx }}

# Validate the TestResults.Tests SBOM
- command: validate
displayName: Validate TestResults.Tests SBOM Sha256
inputs:
spdx: ${{ test-results-tests-spdx }}
- command: validate
displayName: Validate TestResults.Tests SBOM Sha256
inputs:
spdx: ${{ test-results-tests-spdx }}

# Generate the TestResults.Tests summary
- command: to-markdown
displayName: Generate TestResults.Tests SBOM summary
inputs:
spdx: ${{ test-results-tests-spdx }}
markdown: ${{ test-results-tests-md }}
- command: to-markdown
displayName: Generate TestResults.Tests SBOM summary
inputs:
spdx: ${{ test-results-tests-spdx }}
markdown: ${{ test-results-tests-md }}