74 lines
1.8 KiB
Markdown
74 lines
1.8 KiB
Markdown
# Workflow: Commits, PRs, and Testing
|
|
|
|
> **Git workflow, testing guidelines, and PR conventions.**
|
|
|
|
## Commit Guidelines
|
|
|
|
- Use concise, sentence-style subjects (e.g., `Add custom funding link to FUNDING.yml`)
|
|
- Keep messages short
|
|
- If using prefixes, stick to `type: summary` in the imperative
|
|
- Reference issues with `Fixes #123`
|
|
|
|
### Examples
|
|
|
|
```
|
|
Add resume enrichment wizard component
|
|
Fix PDF generation timeout on large resumes
|
|
Refactor LLM provider configuration
|
|
```
|
|
|
|
## Pull Request Guidelines
|
|
|
|
1. **Reference issues**: `Fixes #123` in the description
|
|
2. **Call out schema or prompt changes** so reviewers can smoke-test downstream agents
|
|
3. **List local verification commands** you ran
|
|
4. **Attach screenshots** for UI or API changes
|
|
|
|
## Testing Guidelines
|
|
|
|
### Frontend Testing
|
|
|
|
- All contributions must pass `npm run lint`
|
|
- Add Jest or Playwright suites beneath `apps/frontend/__tests__/`
|
|
- Name test files `*.test.tsx`
|
|
|
|
```bash
|
|
# Run linter
|
|
npm run lint
|
|
|
|
# Format code
|
|
npm run format
|
|
```
|
|
|
|
### Backend Testing
|
|
|
|
- Tests belong in `apps/backend/tests/`
|
|
- Use `test_*.py` naming convention
|
|
- Seed anonymized resume/job fixtures
|
|
|
|
```bash
|
|
# Run tests
|
|
cd apps/backend
|
|
uv run pytest
|
|
```
|
|
|
|
## Definition of Done
|
|
|
|
Before marking a PR as ready:
|
|
|
|
- [ ] Code compiles without errors
|
|
- [ ] `npm run lint` passes
|
|
- [ ] New features have tests (or documented reason why not)
|
|
- [ ] UI changes follow the [Swiss International Style pack](../portable/swiss-design-system/README.md)
|
|
- [ ] Schema/prompt changes are called out in PR description
|
|
- [ ] Screenshots attached for UI changes
|
|
- [ ] Verified locally with commands listed in PR
|
|
|
|
## Code Review Checklist
|
|
|
|
- [ ] Type hints on all Python functions
|
|
- [ ] Proper error handling (generic to clients, detailed in logs)
|
|
- [ ] No exposed secrets or API keys
|
|
- [ ] Follows existing patterns in the codebase
|
|
- [ ] Documentation updated if needed
|