Thank you for your interest in contributing to EdgeFlow! This document provides guidelines and instructions for contributing.
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.
- Check existing issues before creating a new one
- Provide clear description, steps to reproduce, and expected vs actual behavior
- Include relevant logs, error messages, and environment details
- Fork the repository
- Create a feature branch from
maingit checkout -b feature/your-feature-name
- Make your changes
- Run tests and linters
pytest tests/ black src/ tests/ flake8 src/ tests/ mypy src/ --ignore-missing-imports
- Commit your changes
- Use conventional commit format:
feat:,fix:,docs:,refactor:, etc. - Write clear, descriptive commit messages
- Use conventional commit format:
- Push to your fork
git push origin feature/your-feature-name
- Open a Pull Request
- Provide clear description of changes
- Reference related issues
- Ensure CI passes
- Python 3.11+
- Git
# Clone your fork
git clone https://github.com/YOUR_USERNAME/edgeFlow.git
cd edgeFlow
# Install dependencies
pip install -r requirements.txt -r requirements-dev.txt
# Install pre-commit hooks
pre-commit install# Run all tests
pytest tests/
# Run with coverage
pytest tests/ --cov=edgeflow --cov-report=term
# Run specific test file
pytest tests/test_pipeline_v2.py -vAll contributions must meet these standards:
-
Code Formatting
- Use
blackfor Python code formatting - Line length: 100 characters max
black src/ tests/
- Use
-
Linting
- Pass
flake8checks
flake8 src/ tests/ --max-line-length=100
- Pass
-
Type Checking
- Pass
mypytype checks
mypy src/ --ignore-missing-imports
- Pass
-
Test Coverage
- Maintain test coverage ≥75%
- Add tests for new features
- Update tests when modifying existing code
-
Documentation
- Add docstrings to all public APIs
- Update README.md for user-facing changes
- Include inline comments for complex logic
Follow Conventional Commits:
<type>(<scope>): <description>
[optional body]
[optional footer]
feat: New featurefix: Bug fixdocs: Documentation changesrefactor: Code refactoringtest: Adding or updating testsci: CI/CD changeschore: Maintenance tasks
feat(compiler): add support for PyTorch models
fix(parser): handle edge case in quantization config
docs: update installation instructions
refactor(ir): simplify graph transformation logic
test(pipeline): add integration tests for optimization
- src/edgeflow/: Core source code (organized by feature/module)
- tests/: Test files (mirror src/ structure)
- scripts/: Build and utility scripts
- .github/workflows/: CI/CD configurations
- Code is formatted with
black - Linting passes (
flake8) - Type checking passes (
mypy) - All tests pass
- Test coverage maintained or improved
- Documentation updated
- Commit messages follow conventional format
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
Describe testing performed
## Checklist
- [ ] Code follows project style
- [ ] Tests added/updated
- [ ] Documentation updated
- [ ] CI passes- Discuss first: Open an issue to discuss major features
- Design: Plan the implementation approach
- Implement: Write code following project standards
- Test: Add comprehensive tests
- Document: Update documentation
- Review: Submit PR for review
- Open an issue for questions
- Tag maintainers for assistance
- Join discussions in existing issues/PRs
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.