Contributing¶
Contributions are welcome! Please follow these guidelines.
Guidelines¶
- Code follows existing style and conventions
- Tests are included for new features
- Documentation is updated as needed
- Docker configurations are tested
Code Formatting¶
Format Python code using autopep8:
autopep8 --exclude='*/migrations/*' --in-place --recursive ./starfish/
Running Tests¶
# Router
cd router && python3 manage.py test
# Controller
cd controller && python3 manage.py test
# Via Docker
docker exec -it starfish-router poetry run python3 manage.py test
docker exec -it starfish-controller poetry run python3 manage.py test
Adding a New Task¶
See Architecture for how to add Python and R tasks.
For every new task:
- Implement the task class with
prepare_data(),training(), anddo_aggregate() - Add test coverage in
controller/starfish/controller/test_<task_name>.py - Add configuration docs to
controller/TASK_GUIDE.md - Update
controller/USER_GUIDE.mdwith result interpretation - Update the supported tasks tables in
README.mdanddocs/index.md
License¶
Apache 2.0
Support¶
For issues, questions, or contributions, open an issue in the repository.