Skip to main content

Contributing

A short, enforced workflow keeps history clean and releasable.

Workflow

  1. Open a labeled issue describing the change. Apply a label from the taxonomy below.
  2. Branch off main: feature/<issue#>_PascalCase or fix/<issue#>_PascalCase. Never commit directly to main.
  3. Open a PR (also labeled) targeting main. The PR body is Summary plus Closes #<issue> — nothing else (no test plans).
  4. Squash-merge and delete the branch.

Commit messages

  • Short, imperative subject (e.g. Add absences endpoint).
  • No noise in the body; keep it focused on the what/why.

Labels

Use a label consistent with the org taxonomy:

LabelUse for
bugA defect / incorrect behavior.
enhancementImprovement to existing behavior.
featureNew functionality.
refactorInternal restructuring, no behavior change.
CI/CDBuild, release, and workflow changes.
dependenciesDependency bumps.
documentationDocs-only changes.

Versioning

application.properties is the single source of truth for the version and is synced from the release tag automatically when a release is published — see Production. Don't bump it by hand in feature PRs.

Code expectations

  • Respect the layering rules: Schuly.Application must not reference Schuly.Infrastructure.
  • Controllers stay thin and delegate to Mediator; handlers hold the logic.
  • Add tests in Schuly.Tests where it makes sense.