C# / .NET project template for XeplosionGames. Managed via .forgejo — do not push directly.
Find a file Use this template
XE Games CI c4f1e7904b
Some checks failed
CI / format (push) Failing after 4s
CI / test (push) Failing after 5s
chore: sync scripts/sync-implementers.sh from main.
2026-06-20 14:53:10 -06:00
.forgejo chore: sync SYNCED_CODEOWNERS from main. 2026-06-16 01:38:30 +00:00
ISSUE_TEMPLATE Added lables to issues templates. 2026-05-21 07:38:47 -06:00
scripts chore: sync scripts/sync-implementers.sh from main. 2026-06-20 14:53:10 -06:00
src feat: add template-dotnet initial content. 2026-05-25 04:17:38 -06:00
tests feat: add template-dotnet initial content. 2026-05-25 04:17:38 -06:00
.editorconfig feat: add template-dotnet initial content. 2026-05-25 04:17:38 -06:00
.gitignore feat: add template-dotnet initial content. 2026-05-25 04:17:38 -06:00
pull_request_template.md Update pull_request_template.md 2026-05-24 12:32:32 +00:00
README.md fix: delted main branch README.md and replace with correc template speific READE.md 2026-05-30 03:45:41 -06:00
xegames.config.yml feat: add template-dotnet initial content. 2026-05-25 04:17:38 -06:00

template-dotnet

Template for XeplosionGames .NET / C# projects. Use this for games, tools, libraries, and any C# codebase.


Creating a repo from this template

  1. Click Use this template on Forgejo
  2. Delete the src/ and tests/ placeholder directories
  3. Create your solution: dotnet new sln -n YourProject
  4. Add your projects under the solution
  5. Follow the setup checklist below

Setup checklist

  • Set RELEASE_TOKEN secret in Settings → Secrets
  • Delete src/.gitkeep and tests/.gitkeep
  • Create your .slnx solution file
  • Add your project(s) to the solution
  • Add your test project and reference it in the solution
  • Run create-project.sh from XeplosionGames/.forgejo to seed project board
  • Push to main and verify CI passes

Code style

This repo uses dotnet format for style enforcement, configured via .editorconfig.

To check formatting locally:

dotnet format --verify-no-changes

To fix formatting locally:

dotnet format

Conventions

Rule Value
Indentation 4 spaces
Line endings LF
Braces Allman style (opening brace on new line)
Private fields camelCase
Properties PascalCase (standard .NET)
Braces on single-line blocks Required (csharp_prefer_braces = true)

Testing

Tests live in a dedicated MSTest project. The CI workflow discovers and runs all test projects automatically via dotnet test.

To run tests locally:

dotnet test --configuration Release

Solution structure

Recommended project layout: YourProject.slnx ├── YourProject/ main project ├── YourProject.Common/ shared models, utilities ├── YourProject.Tests.MSTest/ unit tests └── YourProject.DevelopmentTools/ editors, tools (optional)


Workflows

Workflow Trigger Purpose
ci-dotnet.yml Every push / PR Format check + build + MSTest
release.yml Tag push v* Generate release notes + attach build artifacts

Branch structure

Branch Purpose
main Production-ready, triggers release on tag
dev Active development
feature/* Short-lived feature branches, PR to dev
hotfix/* Urgent fixes off main, PR to both main and dev

Commit convention

All commits use Conventional Commits format with a trailing period: : .

Type Use for
feat: New functionality
fix: Bug fixes
chore: Dependencies, tooling, refactors
docs: Documentation only
ci: CI/CD workflow changes
perf: Performance improvements
test: Adding or updating tests
style: Formatting only, no logic change