- Add FastAPI application with complete router structure - Implement search, articles, ask, feedback, and health endpoints - Add comprehensive Pydantic schemas for API requests/responses - Include stub service implementations for all business logic - Add full test suite with pytest-asyncio integration - Configure conventional commits enforcement via git hooks - Add project documentation and contribution guidelines - Support both OpenAI and Gemini LLM integration options
67 lines
1.6 KiB
Markdown
67 lines
1.6 KiB
Markdown
# Contributing to News Aggregator API
|
|
|
|
## Commit Message Convention
|
|
|
|
This project follows [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
|
|
|
|
### Format
|
|
|
|
```
|
|
<type>[optional scope]: <description>
|
|
|
|
[optional body]
|
|
|
|
[optional footer(s)]
|
|
```
|
|
|
|
### Types
|
|
|
|
- `feat`: New feature
|
|
- `fix`: Bug fix
|
|
- `docs`: Documentation changes
|
|
- `style`: Code style changes (formatting, missing semicolons, etc.)
|
|
- `refactor`: Code refactoring
|
|
- `perf`: Performance improvements
|
|
- `test`: Adding or updating tests
|
|
- `build`: Build system or dependency changes
|
|
- `ci`: CI configuration changes
|
|
- `chore`: Maintenance tasks
|
|
- `revert`: Reverting previous changes
|
|
|
|
### Examples
|
|
|
|
```bash
|
|
feat: add hybrid search endpoint
|
|
fix(api): resolve authentication bug
|
|
docs: update API documentation
|
|
style: fix code formatting
|
|
refactor: simplify search service logic
|
|
perf: optimize database queries
|
|
test: add integration tests for feedback endpoint
|
|
build: upgrade fastapi to v0.111
|
|
ci: add github actions for testing
|
|
chore: update dependencies
|
|
revert: remove experimental feature
|
|
```
|
|
|
|
### Rules
|
|
|
|
- Use lowercase types
|
|
- Keep first line under 72 characters
|
|
- Use imperative mood ("add" not "added" or "adds")
|
|
- Include scope when relevant (e.g., `fix(api):`, `feat(db):`)
|
|
- Provide detailed body for complex changes
|
|
|
|
## Development Workflow
|
|
|
|
1. Create feature branch from main
|
|
2. Make changes with conventional commits
|
|
3. Run tests: `uv run pytest`
|
|
4. Submit pull request
|
|
|
|
## Code Quality
|
|
|
|
- All Python files must compile without syntax errors
|
|
- No trailing whitespace
|
|
- Files under 5MB
|
|
- Follow existing code style and patterns |