Skip to content

Latest commit

 

History

History
103 lines (74 loc) · 1.93 KB

File metadata and controls

103 lines (74 loc) · 1.93 KB

Contributing

Code of Conduct

Be respectful, inclusive, and professional in all interactions.

Getting Started

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/your-username/ai-project.git
  3. Create feature branch: git checkout -b feat/your-feature
  4. Follow development workflow in DEVELOPMENT.md

Development Process

Before Submitting

  1. Write tests first (TDD)
  2. Run full test suite: pytest --cov
  3. Format code: black src tests
  4. Lint: ruff check src tests --fix
  5. Type check: pyright src
  6. Update docs if needed

Commit Messages

Use Conventional Commits format:

feat: add new feature
fix: fix bug
docs: update documentation
test: add tests
refactor: refactor code
perf: improve performance
chore: update dependencies

Pull Request

  1. Push to your fork
  2. Create PR with clear description
  3. Link related issues
  4. Ensure CI passes
  5. Request review from maintainers
  6. Address feedback
  7. Merge when approved

Code Standards

Type Hints

All functions must have type hints:

def process(data: dict[str, Any]) -> tuple[bool, str]:
    """Process data."""
    pass

Docstrings

Use Google-style docstrings:

def validate(record: dict) -> bool:
    """Validate record.
    
    Args:
        record: Record to validate.
    
    Returns:
        True if valid.
    
    Raises:
        ValidationError: If invalid.
    """
    pass

Testing

  • Minimum 80% coverage
  • All public functions tested
  • Use @pytest.mark.unit and @pytest.mark.integration
  • Follow AAA pattern

Areas for Contribution

  • Bug fixes
  • New processors
  • Documentation improvements
  • Performance optimizations
  • Test coverage improvements
  • CI/CD enhancements

Questions?

Thank you for contributing!