If you already know the project, use this checklist:
- Fork and clone
uv sync- Initialize test DB
- Create branch
- Implement change + tests
- Run checks:
uv run poe check- full test suite (coverage command below)
- Update docs/README/
whatsnew.mdif user-facing behavior changed - Open PR with clear description
git clone https://github.com/YOUR_USERNAME/ezrules.git
cd ezrules
git remote add upstream https://github.com/sofeikov/ezrules.gituv sync
uv run ezrules init-db --auto-delete
uv run ezrules bootstrap-org --name test_org --admin-email admin@test_org.com --admin-password 12345678When validating migrations directly (without re-initializing the full DB), apply the current head:
uv run alembic upgrade headCreate a feature branch:
git checkout -b feature/your-feature-nameFor any schema change, migrations are required.
# after editing models
uv run alembic revision --autogenerate -m "describe schema change"
# apply latest migrations
uv run alembic upgrade headRules:
- Do not use
Base.metadata.create_allfor schema management - Commit model changes and migration files together
- Review autogenerated migrations before committing
--8<-- "snippets/backend-test-command.md"
uv run poe checkuv run pytest tests/test_api_v2_rules.py -v
uv run pytest tests/test_api_v2_rules.py::test_create_rule_success -v- Keep imports at file top
- Add type hints for new code
- Use existing fixtures where possible
- Prefer real DB interactions in tests over mocking
- Ensure no failing tests before opening PR
Before submitting:
- All tests pass
uv run poe checkpasses- Documentation updated for behavior changes
README.mdupdated when user-facing workflows changedwhatsnew.mdupdated for notable changes
Suggested PR template:
## Description
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] Full test suite passed
- [ ] Added/updated tests as needed
## Checklist
- [ ] Quality checks passed
- [ ] Docs updatedReviewers focus on:
- correctness
- tests and regression risk
- readability and maintainability
- security/performance impact
- docs alignment
- performance and query optimizations
- rule-authoring usability
- dashboards and analytics UX
- documentation quality and examples
If proposing a major feature, open an issue first to align scope.
- Open a GitHub issue
- Check existing issues/PRs
- Read relevant docs pages first