Thank you for your interest in contributing to ARES! This document provides guidelines and instructions for contributing.
-
Fork and clone the repository
git clone <your-fork-url> cd "Sentinel-Local-BI Ares"
-
Set up development environment
# Using Make (Linux/Mac) make dev-install # Or manually pip install -r requirements.txt pip install -e ".[dev]"
-
Run tests
make test # or pytest
- Use Black for code formatting (line length: 100)
- Use Ruff for linting
- Run
make formatbefore committing
- Always use type hints for function parameters and return values
- Use
Optional[T]for nullable types - Use
List[T],Dict[K, V]fromtypingmodule
- Use docstrings for all public functions and classes
- Follow Google-style docstrings
- Include type information in docstrings
def process_document(
file_path: str,
options: Optional[Dict[str, Any]] = None,
) -> Dict[str, Any]:
"""
Process a document and extract text.
Args:
file_path: Path to the document file
options: Optional processing options
Returns:
Dictionary with extracted text and metadata
"""
...- Place tests in the
tests/directory - Name test files
test_*.py - Use descriptive test function names:
test_function_name_scenario
# All tests
pytest
# Specific test file
pytest tests/test_rag_engine.py
# With coverage
pytest --cov=src --cov-report=html- Aim for >80% code coverage
- Focus on critical paths (RAG engine, PII masking, agents)
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write code following style guidelines
- Add tests for new functionality
- Update documentation if needed
-
Commit your changes
git add . git commit -m "feat: add new feature description"
-
Push and create pull request
git push origin feature/your-feature-name
Follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting)refactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
src/
├── api/ # FastAPI backend
├── core/ # Core functionality (RAG, agents)
├── security/ # Privacy & security (PII masking)
├── ui/ # Streamlit frontend
└── utils/ # Utility functions
- Performance optimizations
- Additional document format support
- Enhanced error handling
- More comprehensive tests
- UI/UX improvements
- Additional language support
- Advanced analytics
- Export functionality
- Documentation improvements
- Code refactoring
- Dependency updates
- Review existing code for patterns
- Check the README.md for architecture details
- Open an issue for discussion
Thank you for contributing to ARES! 🛡️