Skip to content

Commit 58d312b

Browse files
CopilotMalcolmnixon
andcommitted
Update AGENTS.md and sync analyzer package versions
- Update AGENTS.md with comprehensive project structure including test directory, docs, issue templates - Add testing information (MSTest framework, test types, commands) - Document code analyzers and their versions - Update test project analyzer packages to match main project (Microsoft.CodeAnalysis.NetAnalyzers 10.0.101, SonarAnalyzer.CSharp 10.17.0.131074) - Add guidance on keeping analyzer versions consistent across projects Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
1 parent e589c3c commit 58d312b

File tree

2 files changed

+64
-7
lines changed

2 files changed

+64
-7
lines changed

AGENTS.md

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,52 @@ applications packaged as [.NET Tools][dotnet-tools].
1111

1212
```text
1313
DotnetToolWrapper/
14+
├── .config/
15+
│ └── dotnet-tools.json # .NET tools configuration (sbom-tool, spdx-tool)
1416
├── .github/
17+
│ ├── ISSUE_TEMPLATE/ # GitHub issue templates
18+
│ │ ├── bug_report.yml
19+
│ │ ├── feature_request.yml
20+
│ │ └── config.yml
21+
│ ├── dependabot.yml # Dependabot configuration
1522
│ └── workflows/ # GitHub Actions workflows
1623
│ ├── build.yaml # Reusable build workflow
1724
│ ├── build_on_push.yaml # Triggered on push events
1825
│ └── release.yaml # Release workflow
26+
├── docs/
27+
│ └── usage.md # Detailed usage documentation
1928
├── src/
2029
│ └── DemaConsulting.DotnetToolWrapper/
2130
│ ├── Program.cs # Main application logic
2231
│ └── DemaConsulting.DotnetToolWrapper.csproj
32+
├── test/
33+
│ └── DemaConsulting.DotnetToolWrapper.Tests/
34+
│ ├── IntegrationTests.cs
35+
│ ├── ProgramTests.cs
36+
│ ├── Runner.cs
37+
│ └── DemaConsulting.DotnetToolWrapper.Tests.csproj
2338
├── .cspell.json # Spelling check configuration
39+
├── .gitignore # Git ignore patterns
2440
├── .markdownlint.json # Markdown linting configuration
25-
├── README.md # Project documentation
41+
├── AGENTS.md # This file - Agent instructions
42+
├── ARCHITECTURE.md # Architecture documentation
43+
├── CODE_OF_CONDUCT.md # Community code of conduct
44+
├── CONTRIBUTING.md # Contribution guidelines
45+
├── DemaConsulting.DotnetToolWrapper.sln
2646
├── LICENSE # MIT License
47+
├── README.md # Project documentation
48+
├── SECURITY.md # Security policy
2749
└── spdx-workflow.yaml # SBOM enhancement workflow
2850
```
2951

3052
## Key Technologies
3153

3254
- **.NET 8.0, 9.0, 10.0**: Multi-targeted framework versions
3355
- **C# 12**: Programming language
56+
- **MSTest**: Testing framework
3457
- **GitHub Actions**: CI/CD automation
35-
- **SBOM Tools**: Software Bill of Materials generation
58+
- **SBOM Tools**: Software Bill of Materials generation (sbom-tool, spdx-tool)
59+
- **Code Analyzers**: Microsoft.CodeAnalysis.NetAnalyzers 10.0.101, SonarAnalyzer.CSharp 10.17.0.131074
3660

3761
## Development Guidelines
3862

@@ -43,6 +67,22 @@ dotnet restore
4367
dotnet build --configuration Release
4468
```
4569

70+
### Testing the Project
71+
72+
```bash
73+
# Run all tests
74+
dotnet test --configuration Release
75+
76+
# Run tests with detailed output
77+
dotnet test --configuration Release --logger "console;verbosity=detailed"
78+
```
79+
80+
The test project uses MSTest and includes:
81+
82+
- **Unit Tests**: `ProgramTests.cs` - Tests for core program logic
83+
- **Integration Tests**: `IntegrationTests.cs` - End-to-end tests with actual execution
84+
- **Test Runner**: `Runner.cs` - Helper for running the tool in tests
85+
4686
### Code Standards
4787

4888
- **Language Version**: C# 12
@@ -72,6 +112,11 @@ Quality checks are automated through GitHub Actions:
72112
1. **Multi-targeting**: Always ensure changes are compatible with .NET 8.0, 9.0, and 10.0
73113
2. **Cross-platform**: The tool must work on Windows, Linux, FreeBSD, and macOS
74114
3. **Architecture Support**: Support x86, x64, ARM, ARM64, WASM, and S390x architectures
115+
4. **Testing**: Always run tests after making changes. The CI runs tests on ubuntu-latest,
116+
windows-latest, and macos-latest
117+
5. **Code Quality**: Maintain `TreatWarningsAsErrors` - all warnings must be fixed
118+
6. **Analyzers**: Keep analyzer packages (Microsoft.CodeAnalysis.NetAnalyzers and
119+
SonarAnalyzer.CSharp) at the same version across all projects
75120

76121
### When Modifying Workflows
77122

@@ -98,7 +143,9 @@ Quality checks are automated through GitHub Actions:
98143

99144
### Adding New Dependencies
100145

101-
Update the `.csproj` file in `src/DemaConsulting.DotnetToolWrapper/`
146+
1. Update the `.csproj` file in `src/DemaConsulting.DotnetToolWrapper/`
147+
2. If adding analyzer packages, ensure test project also gets the same version
148+
3. Dependabot is configured to automatically update NuGet packages in the `nuget-dependencies` group
102149

103150
### Modifying Build Output
104151

@@ -115,8 +162,17 @@ Edit the "Create Drop Folder" step in `.github/workflows/build.yaml`
115162
Before committing:
116163

117164
1. Build locally: `dotnet build --configuration Release`
118-
2. Run spelling checks: `npx cspell "**/*.md"`
119-
3. Run markdown linting: `npx markdownlint "**/*.md"`
165+
2. Run tests: `dotnet test --configuration Release`
166+
3. Run spelling checks: `npx cspell "**/*.md"`
167+
4. Run markdown linting: `npx markdownlint "**/*.md"`
168+
169+
## Issue Templates
170+
171+
The repository includes structured issue templates:
172+
173+
- **Bug Report** (`.github/ISSUE_TEMPLATE/bug_report.yml`) - For reporting bugs with system information
174+
- **Feature Request** (`.github/ISSUE_TEMPLATE/feature_request.yml`) - For suggesting new features
175+
- **Config** (`.github/ISSUE_TEMPLATE/config.yml`) - Links to discussions and other resources
120176

121177
## Related Documentation
122178

@@ -125,6 +181,7 @@ Before committing:
125181
- [CONTRIBUTING.md](CONTRIBUTING.md) - Contribution guidelines and development setup
126182
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) - Community code of conduct
127183
- [SECURITY.md](SECURITY.md) - Security policy and vulnerability reporting
184+
- [docs/usage.md](docs/usage.md) - Comprehensive usage guide with examples
128185
- [LICENSE](LICENSE) - MIT License terms
129186

130187
## Contact

test/DemaConsulting.DotnetToolWrapper.Tests/DemaConsulting.DotnetToolWrapper.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
<PrivateAssets>all</PrivateAssets>
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
</PackageReference>
20-
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0">
20+
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="10.0.101">
2121
<PrivateAssets>all</PrivateAssets>
2222
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2323
</PackageReference>
2424
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
2525
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
2626
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
27-
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.4.0.108396">
27+
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.17.0.131074">
2828
<PrivateAssets>all</PrivateAssets>
2929
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
3030
</PackageReference>

0 commit comments

Comments
 (0)