Git Workflow

Git Workflow

Branches

  • main — production-ready, auto-deploys on tag
  • develop — integration branch, auto-deploys to staging
  • feature/{slug} — one feature per branch, MR to develop
  • fix/{slug} — bugfix branch, MR to develop
  • hotfix/{slug} — urgent fix, MR directly to main

Commit Convention

feat(module): short description          — new feature
fix(module): short description           — bug fix
refactor(module): short description      — code restructure, no behavior change
test(module): short description          — add or update tests
docs(module): short description          — documentation
chore: short description                 — tooling, CI, dependencies
perf(module): short description          — performance improvement

Examples

feat(groups): add Group aggregate with hierarchy support
fix(events): correct RRULE timezone handling for recurring events
refactor(people): extract MemberProfile to value object
test(news): add integration tests for multi-level feed
docs: update EVENT_CATALOG with group events
chore: upgrade Symfony to 8.0

MR Process

  1. Create feature branch from develop
  2. Implement, test, self-review
  3. Ensure make ci passes locally
  4. Open MR to develop with clear description
  5. Link related issues and ADRs
  6. Wait for CI + human review
  7. Squash merge to develop

Rules

  • Never push directly to main or develop
  • Every MR requires CI pass
  • MRs to main require human approval
  • Keep MRs focused — one feature/fix per MR
  • Commit incrementally (not one giant commit)