Contributing¶
Development Workflow¶
┌─────────────────────────────────────────────────────────────────┐
│ Development Workflow │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Create feature branch from main │
│ git checkout -b feat/my-feature │
│ │
│ 2. Make changes and commit │
│ git commit -m "feat: add new feature" │
│ │
│ 3. Push and create PR │
│ git push -u origin feat/my-feature │
│ │
│ 4. PR triggers quality checks: │
│ ├── npm ci │
│ ├── npm run lint │
│ ├── npm run type-check │
│ ├── npm run test │
│ ├── npm run build │
│ └── Terraform plan (posted as PR comment) │
│ │
│ 5. After approval and merge to main: │
│ ├── Quality checks run again │
│ ├── Docker image built and pushed to ECR │
│ ├── Terraform apply (infrastructure updates) │
│ ├── App Runner deployment │
│ └── Health check verification │
│ │
└─────────────────────────────────────────────────────────────────┘
Branch Protection¶
The main branch is protected:
- Pull request required before merging
- Status checks must pass (test job)
- Conversations must be resolved
Commit Messages¶
Use Conventional Commits:
| Type | When to Use |
|---|---|
feat: | New feature |
fix: | Bug fix |
refactor: | Code change that neither fixes a bug nor adds a feature |
docs: | Documentation only |
chore: | Maintenance tasks |
test: | Adding or updating tests |
Examples:
feat: add user authentication
fix: resolve database connection timeout
refactor: extract validation logic to separate module
docs: update API documentation
chore: update dependencies
Before Submitting a PR¶
Run these checks locally:
npm run lint # No ESLint errors
npm run type-check # No TypeScript errors
npm run build # Build succeeds
PR Description¶
Include:
- Summary - What does this PR do?
- Changes - List key changes
- Testing - How was this tested?
Code Review¶
PRs are reviewed by CodeRabbit (automated) and team members.
What reviewers look for:
- Code follows coding standards
- Tests cover new functionality
- No security vulnerabilities
- Documentation updated if needed
What Not to Modify¶
These files are managed by infrastructure owners:
| Path | Owner |
|---|---|
infra/ | Paul |
.github/workflows/ | Paul |
Dockerfile | Paul |
src/middleware.ts | Paul |
Contact Paul before making changes to these files.
Getting Help¶
- Questions: Open a GitHub issue
- Infrastructure: Contact Paul
- Stuck on a PR: Ask for help in the PR comments