Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
95c66ef
Update workspace and README for improved setup instructions and exten…
ptr727 Jan 15, 2026
e97a8fb
Update branding and documentation consistency (#13)
ptr727 Jan 15, 2026
6212de5
Update merge rules and clarify requirements in README (#14)
ptr727 Jan 15, 2026
8f12848
Improve README for clarity and consistency in setup instructions (#17)
ptr727 Jan 16, 2026
a8c0207
Merge branch 'main' into develop
ptr727 Jan 16, 2026
1c934d0
Mediatools (#19)
ptr727 Jan 28, 2026
d6ac9df
Improve setup instructions and documentation consistency (#21)
ptr727 Jan 28, 2026
36aa95e
Refactor logging framework and enhance documentation (#22)
ptr727 Jan 30, 2026
84a9667
Refactor logging and enhance documentation (#23)
ptr727 Jan 31, 2026
66faf92
Merge branch 'main' into develop
ptr727 Jan 31, 2026
4f5735b
Squash (#25)
ptr727 Feb 13, 2026
658a4c3
Merge branch 'main' into develop
ptr727 Feb 24, 2026
9c1ea66
Refactor GitHub workflows to simplify environment variable usage and …
ptr727 Feb 24, 2026
c73f863
Refactor workflow steps to simplify command syntax in build tasks (#28)
ptr727 Feb 24, 2026
346ceac
Refactor workflow steps to simplify command syntax in build tasks (#29)
ptr727 Feb 24, 2026
967ad12
Merge branch 'main' into develop
ptr727 Mar 11, 2026
6bf9717
Update dependencies and enhance workflow configurations (#33)
ptr727 Apr 5, 2026
f16acb7
Remove unnecessary condition for merging codegen pull requests (#34)
ptr727 Apr 5, 2026
7b24376
Merge branch 'main' into develop
ptr727 Apr 5, 2026
187a9d6
Update auto-merge conditions for codegen pull requests and enhance RE…
ptr727 Apr 5, 2026
dc7d38e
Update auto-merge conditions for codegen pull requests and enhance RE…
ptr727 Apr 5, 2026
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
8 changes: 4 additions & 4 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,25 @@
"isRoot": true,
"tools": {
"csharpier": {
"version": "1.2.5",
"version": "1.2.6",
"commands": [
"csharpier"
],
"rollForward": false
},
"husky": {
"version": "0.8.0",
"version": "0.9.1",
"commands": [
"husky"
],
"rollForward": false
},
"dotnet-outdated-tool": {
"version": "4.6.9",
"version": "4.7.1",
"commands": [
"dotnet-outdated"
],
"rollForward": false
}
}
}
}
3 changes: 2 additions & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Available VS Code tasks (use via `run_task` tool):
- `.Net Format`: Verify formatting and style (must pass)
- `CSharpier Format`: Auto-format code with CSharpier
- `.Net Tool Update`: Update dotnet tools
- `.Net Outdated Upgrade`: Upgrade outdated NuGet dependencies (interactive prompt)
- `Husky.Net Run`: Run pre-commit hooks manually

## Coding Standards and Conventions
Expand Down Expand Up @@ -315,7 +316,7 @@ The project includes comprehensive `.editorconfig` settings that enforce:
3. **Before committing**:
- Run `.Net Format` task to verify compliance
- Husky hooks will run automatically
4. **Dependency updates**: Use `dotnet outdated --upgrade:prompt` regularly
4. **Dependency updates**: Run `.Net Outdated Upgrade` task (`dotnet outdated --upgrade:prompt`) regularly
5. **Testing**: Run tests via VS Code test explorer or `dotnet test`

## Reference Links
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/merge-bot-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
merge-codegen:
name: Merge codegen pull request job
runs-on: ubuntu-latest
if: github.actor == 'github-actions[bot]' && github.event.pull_request.head.ref == 'codegen' && github.event.pull_request.head.repo.full_name == github.repository
if: github.event.pull_request.head.ref == 'codegen' && github.event.pull_request.head.repo.full_name == github.repository && contains(github.event.pull_request.labels.*.name, 'automated-codegen')
Comment thread
ptr727 marked this conversation as resolved.
Outdated
permissions:
contents: write
pull-requests: write
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/run-codegen-pull-request-task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ name: Run codegen and pull request task

on:
workflow_call:
secrets:
WORKFLOW_PAT:
required: true

jobs:

Expand Down Expand Up @@ -34,9 +37,11 @@ jobs:
- name: Create pull request step
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.WORKFLOW_PAT }}
branch: codegen
title: 'Update codegen files'
body: 'This PR updates the codegen files.'
commit-message: 'Update codegen files'
delete-branch: true
sign-commits: true
labels: automated-codegen
16 changes: 16 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,5 +93,21 @@
"clear": false
}
},
{
"label": ".Net Outdated Upgrade",
"type": "process",
"command": "dotnet",
"args": [
"outdated",
"--upgrade:prompt"
],
"problemMatcher": [
"$msCompile"
],
"presentation": {
"showReuseMessage": false,
"clear": false
}
}
]
}
48 changes: 24 additions & 24 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,25 @@

**ProjectTemplate** is a C# .NET template project demonstrating best practices. Developers use this as a baseline to create their own projects.

For comprehensive coding standards and detailed conventions, refer to [`.github/copilot-instructions.md`](./.github/copilot-instructions.md) and [`CODESTYLE.md`](./CODESTYLE.md).
For comprehensive coding standards and detailed conventions, refer to [`.github/copilot-instructions.md`](./.github/copilot-instructions.md) and [`CODESTYLE.md`](./CODESTYLE.md).

## Key Requirements for All Projects Derived from This Template

### Build & Quality Standards

- **Zero Warnings Policy**: All builds must complete without errors or warnings
- Use `CSharpier Format`, `.Net Format`, and `Husky.Net Run` tasks

- **Code Analysis**: Enable all .NET analyzers
- `<EnableNETAnalyzers>true</EnableNETAnalyzers>`
- `<AnalysisLevel>latest-all</AnalysisLevel>`

### Development Environment

- Target latest .NET SDK (currently .NET 10 with C# 14)
- Support Visual Studio Code (`.code-workspace`) and Visual Studio Community (`.slnx`)
- Support Linux, Windows, and macOS with correct line endings and permissions
- Use `.editorconfig` for style enforcement
### Build & Quality Standards
- **Zero Warnings Policy**: All builds must complete without errors or warnings
- Use `CSharpier Format`, `.Net Format`, and `Husky.Net Run` tasks
- **Code Analysis**: Enable all .NET analyzers
- `<EnableNETAnalyzers>true</EnableNETAnalyzers>`
- `<AnalysisLevel>latest-all</AnalysisLevel>`

### Development Environment
- Target latest .NET SDK (currently .NET 10 with C# 14)
- Support Visual Studio Code (`.code-workspace`) and Visual Studio Community (`.slnx`)
- Support Linux, Windows, and macOS with correct line endings and permissions
- Use `.editorconfig` for style enforcement

### Project Structure

Expand All @@ -37,14 +37,14 @@ For comprehensive coding standards and detailed conventions, refer to [`.github/
- Follow Arrange-Act-Assert pattern
- Test naming: `MethodName_Scenario_ExpectedBehavior()`

## Authoritative References

For detailed specifications, see:

- [`.github/copilot-instructions.md`](./.github/copilot-instructions.md) - Complete coding conventions and style guide
- [`CODESTYLE.md`](./CODESTYLE.md) - Code style and formatting rules
- [`.editorconfig`](./.editorconfig) - Automated style enforcement
- Project task definitions - `CSharpier Format`, `.Net Build`, `.Net Format`, `Husky.Net Run`
## Authoritative References
For detailed specifications, see:
- [`.github/copilot-instructions.md`](./.github/copilot-instructions.md) - Complete coding conventions and style guide
- [`CODESTYLE.md`](./CODESTYLE.md) - Code style and formatting rules
- [`.editorconfig`](./.editorconfig) - Automated style enforcement
- Project task definitions - `CSharpier Format`, `.Net Build`, `.Net Format`, `.Net Outdated Upgrade`, `Husky.Net Run`

## Quick Start for Derived Projects

Expand Down
1 change: 1 addition & 0 deletions CODESTYLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Available VS Code tasks (use via `run_task` tool):
- `.Net Format`: Verify formatting and style (must pass)
- `CSharpier Format`: Auto-format code with CSharpier
- `.Net Tool Update`: Update dotnet tools
- `.Net Outdated Upgrade`: Upgrade outdated NuGet dependencies (interactive prompt)
- `Husky.Net Run`: Run pre-commit hooks manually

## Tooling and Editor
Expand Down
6 changes: 3 additions & 3 deletions CodeGen/CodeGen.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
<VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="10.2.0" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="10.4.0" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="System.CommandLine" Version="2.0.2" />
<PackageReference Include="Serilog" Version="4.3.1" />
<PackageReference Include="System.CommandLine" Version="2.0.5" />
</ItemGroup>
</Project>
6 changes: 3 additions & 3 deletions Console/Console.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
<VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.5" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="4.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="10.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="System.CommandLine" Version="2.0.2" />
<PackageReference Include="Serilog" Version="4.3.1" />
<PackageReference Include="System.CommandLine" Version="2.0.5" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Library\Library.csproj" />
Expand Down
4 changes: 2 additions & 2 deletions Library/Library.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@
<VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.5" />
<PackageReference
Include="Microsoft.SourceLink.GitHub"
Version="10.0.102"
Version="10.0.201"
PrivateAssets="all"
/>
</ItemGroup>
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,15 @@ Licensed under the [MIT License][license-link]\
- Save the PAT as `DOCKER_HUB_ACCESS_TOKEN` and `DOCKER_HUB_USERNAME` in:
- GitHub project security Settings / Secrets / Actions.
- GitHub project security Settings / Secrets / Dependabot.
- Create a [GitHub Personal Access Token](https://github.com/settings/personal-access-tokens).
- Save the PAT as `WORKFLOW_PAT`.
- Permissions:
- Contents: Read & write (to push the codegen commit)
- Pull requests: Read & write — to create the PR
- Workflows: Read & write — this is the key permission that allows the token to trigger pull_request events in other workflows
- Metadata: Read-only (auto-required)
- Save the PAT as `WORKFLOW_PAT` in:
- GitHub project security Settings / Secrets / Actions.

**GitHub project settings**:

Expand Down Expand Up @@ -411,6 +420,9 @@ Licensed under the [MIT License][license-link]\
- `Review draft pull requests`
- Actions / General:
- `Allow GitHub Actions to create and approve pull requests`
- Labels:
- `https://github.com/ptr727/[project]/labels`
- Add `automated-codegen` label.

### Template - Branching Workflow

Expand Down
4 changes: 2 additions & 2 deletions Tests/Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AwesomeAssertions" Version="9.3.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="AwesomeAssertions" Version="9.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageReference Include="xunit.v3" Version="3.2.2" />
<PackageReference Include="xunit.analyzers" Version="1.27.0">
<PrivateAssets>all</PrivateAssets>
Expand Down
Loading