# Contributing to News Aggregator API ## Commit Message Convention This project follows [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. ### Format ``` [optional scope]: [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