Contributing
Use this page for the rules and checks specific to the server. For issues, branches, pull requests, and labels, follow the shared workflow.
Code rules
- Respect the layering rules:
Schuly.Applicationmust not referenceSchuly.Infrastructure. - Keep controllers thin. They delegate to Mediator, and handlers hold the logic.
- Add tests to
Schuly.Testswhere it makes sense. - Keep declaration signatures on one line, however long. Don't wrap the parameter list of a
record, a primary-constructorclassorstruct, a method, or a constructor. Leave method chains, LINQ queries, and multi-line conditions wrapped. - Use Bun for frontend tasks, not npm, npx, or node.
- Keep the commit body focused on what changed and why.
Versioning
Don't bump application.properties by hand in feature pull requests. Publishing a release syncs it from the tag. See Images and releases.
Checks
CI runs these on every pull request. To run them yourself:
sh
dotnet restore Schuly.API.slnx
dotnet build Schuly.API.slnx -c Release --no-restore -warnaserror
dotnet test Schuly.API.slnx -c Release --no-buildsh
cd src/Schuly.Frontend
bun install --frozen-lockfile
bun run build
bun run test --watch=falseCI also builds the sandbox image when a pull request changes src/Schuly.Sandbox/**.
