Skip to content

Commit 94c67b0

Browse files
CopilotMalcolmnixon
andcommitted
Apply changes from TemplateDotNetLibrary PRs #30, #31, #32
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
1 parent 5aa2fc9 commit 94c67b0

File tree

5 files changed

+114
-8
lines changed

5 files changed

+114
-8
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
name: ❓ Question / Help
3+
description: Ask a usage question or get help with the TemplateDotNetTool
4+
title: "[Question]: "
5+
labels: ["question"]
6+
assignees: []
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Thanks for reaching out! Please fill out the sections below so we can help you as quickly as possible.
12+
For general discussion, you can also use
13+
[GitHub Discussions](https://github.com/demaconsulting/TemplateDotNetTool/discussions).
14+
15+
- type: textarea
16+
id: question
17+
attributes:
18+
label: Question
19+
description: A clear and concise description of what you need help with.
20+
placeholder: What would you like to know or understand?
21+
validations:
22+
required: true
23+
24+
- type: textarea
25+
id: what-tried
26+
attributes:
27+
label: What Have You Tried?
28+
description: Describe what you have already attempted, including any code or configuration you have used.
29+
placeholder: |
30+
```csharp
31+
// Your code here
32+
```
33+
render: csharp
34+
35+
- type: textarea
36+
id: expected
37+
attributes:
38+
label: Expected Outcome
39+
description: A clear and concise description of what you expected to happen or what you are trying to achieve.
40+
placeholder: Describe the outcome you are looking for...
41+
validations:
42+
required: true
43+
44+
- type: input
45+
id: version
46+
attributes:
47+
label: Tool Version
48+
description: What version of the TemplateDotNetTool are you using?
49+
placeholder: e.g., 1.0.0
50+
validations:
51+
required: true
52+
53+
- type: dropdown
54+
id: dotnet-version
55+
attributes:
56+
label: .NET Version
57+
description: What version of .NET are you using?
58+
options:
59+
- ".NET 8"
60+
- ".NET 9"
61+
- ".NET 10"
62+
- Other (please specify in additional context)
63+
validations:
64+
required: true
65+
66+
- type: textarea
67+
id: additional-context
68+
attributes:
69+
label: Additional Context
70+
description: Add any other context, screenshots, or links that may help answer your question.
71+
placeholder: Any additional information...
72+
73+
- type: checkboxes
74+
id: checklist
75+
attributes:
76+
label: Checklist
77+
description: Please confirm the following
78+
options:
79+
- label: I have searched existing issues and discussions to ensure this has not been answered before
80+
required: true
81+
- label: I have provided a clear description of my question
82+
required: true

.github/workflows/build.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ jobs:
8989

9090
strategy:
9191
matrix:
92-
os: [windows-latest, ubuntu-latest]
92+
os: [windows-latest, ubuntu-latest, macos-latest]
9393

9494
runs-on: ${{ matrix.os }}
9595

@@ -125,7 +125,8 @@ jobs:
125125
run: |
126126
mkdir -p artifacts
127127
echo "Capturing tool versions..."
128-
OS_SHORT=$(echo "${{ matrix.os }}" | sed 's/windows-latest/win/;s/ubuntu-latest/ubuntu/')
128+
# Create short job ID: build-windows, build-ubuntu, build-macos
129+
OS_SHORT=$(echo "${{ matrix.os }}" | sed 's/-latest//')
129130
JOB_ID="build-${OS_SHORT}"
130131
dotnet versionmark --capture --job-id "${JOB_ID}" \
131132
--output "artifacts/versionmark-${JOB_ID}.json" -- \
@@ -294,7 +295,7 @@ jobs:
294295

295296
strategy:
296297
matrix:
297-
os: [windows-latest, ubuntu-latest]
298+
os: [windows-latest, ubuntu-latest, macos-latest]
298299
dotnet-version: ['8.x', '9.x', '10.x']
299300

300301
steps:
@@ -342,8 +343,8 @@ jobs:
342343
run: |
343344
mkdir -p artifacts
344345
echo "Capturing tool versions..."
345-
# Create short job ID: int-win-8, int-win-9, int-ubuntu-8, etc.
346-
OS_SHORT=$(echo "${{ matrix.os }}" | sed 's/windows-latest/win/;s/ubuntu-latest/ubuntu/')
346+
# Create short job ID: int-windows-8, int-ubuntu-9, int-macos-10, etc.
347+
OS_SHORT=$(echo "${{ matrix.os }}" | sed 's/-latest//')
347348
DOTNET_SHORT=$(echo "${{ matrix.dotnet-version }}" | sed 's/\.x$//')
348349
JOB_ID="int-${OS_SHORT}-${DOTNET_SHORT}"
349350
dotnet versionmark --capture --job-id "${JOB_ID}" \

AGENTS.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ implementation demonstrating best practices for DEMA Consulting .NET CLI tools.
1212
- **Code Quality Agent** - Enforces linting, static analysis, and security standards
1313
- **Repo Consistency Agent** - Ensures downstream repositories remain consistent with template patterns
1414

15+
## Agent Selection Guide
16+
17+
- Fix a bug → **Software Developer**
18+
- Add a new feature → **Requirements Agent****Software Developer****Test Developer**
19+
- Write a test → **Test Developer**
20+
- Fix linting or static analysis issues → **Code Quality Agent**
21+
- Update documentation → **Technical Writer**
22+
- Add or update requirements → **Requirements Agent**
23+
- Ensure test coverage linkage in `requirements.yaml`**Requirements Agent**
24+
- Run security scanning or address CodeQL alerts → **Code Quality Agent**
25+
- Propagate template changes → **Repo Consistency Agent**
26+
1527
## Tech Stack
1628

1729
- C# (latest), .NET 8.0/9.0/10.0, dotnet CLI, NuGet
@@ -36,6 +48,7 @@ evidence. This is critical for platform and framework requirements - **do not re
3648

3749
- `windows@TestName` - proves the test passed on a Windows platform
3850
- `ubuntu@TestName` - proves the test passed on a Linux (Ubuntu) platform
51+
- `macos@TestName` - proves the test passed on a macOS platform
3952
- `net8.0@TestName` - proves the test passed under the .NET 8 target framework
4053
- `net9.0@TestName` - proves the test passed under the .NET 9 target framework
4154
- `net10.0@TestName` - proves the test passed under the .NET 10 target framework
@@ -102,9 +115,9 @@ build.bat # Windows
102115
## CI/CD
103116

104117
- **Quality Checks**: Markdown lint, spell check, YAML lint
105-
- **Build**: Multi-platform (Windows/Linux)
118+
- **Build**: Multi-platform (Windows/Linux/macOS)
106119
- **CodeQL**: Security scanning
107-
- **Integration Tests**: .NET 8/9/10 on Windows/Linux
120+
- **Integration Tests**: .NET 8/9/10 on Windows/Linux/macOS
108121
- **Documentation**: Auto-generated via Pandoc + Weasyprint
109122

110123
## Common Tasks

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ This template demonstrates:
1818
- **Standardized Command-Line Interface**: Context class handling common arguments
1919
(`--version`, `--help`, `--silent`, `--validate`, `--results`, `--log`)
2020
- **Self-Validation**: Built-in validation tests with TRX/JUnit output
21-
- **Multi-Platform Support**: Builds and runs on Windows and Linux
21+
- **Multi-Platform Support**: Builds and runs on Windows, Linux, and macOS
2222
- **Multi-Runtime Support**: Targets .NET 8, 9, and 10
2323
- **Comprehensive CI/CD**: GitHub Actions workflows with quality checks, builds, and
2424
integration tests

requirements.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
# Source filter prefixes:
2020
# windows@TestName - proves the test passed on a Windows platform
2121
# ubuntu@TestName - proves the test passed on a Linux (Ubuntu) platform
22+
# macos@TestName - proves the test passed on a macOS platform
2223
# net8.0@TestName - proves the test passed under the .NET 8 target framework
2324
# net9.0@TestName - proves the test passed under the .NET 9 target framework
2425
# net10.0@TestName - proves the test passed under the .NET 10 target framework
@@ -156,6 +157,15 @@ sections:
156157
- "ubuntu@TemplateTool_VersionDisplay"
157158
- "ubuntu@TemplateTool_HelpDisplay"
158159

160+
- id: Template-Platform-MacOS
161+
title: The tool shall build and run on macOS platforms.
162+
justification: |
163+
DEMA Consulting tools must support macOS for developers using Apple platforms.
164+
tests:
165+
# Tests link to "macos" to ensure results come from macOS platform
166+
- "macos@TemplateTool_VersionDisplay"
167+
- "macos@TemplateTool_HelpDisplay"
168+
159169
- id: Template-Platform-Net8
160170
title: The tool shall support .NET 8 runtime.
161171
justification: |

0 commit comments

Comments
 (0)