|
| 1 | +# Contributing to Syclops |
| 2 | + |
| 3 | +Thank you for your interest in contributing to Syclops! This document provides guidelines and instructions for contributing to the project. |
| 4 | + |
| 5 | +## Table of Contents |
| 6 | +- [Code of Conduct](#code-of-conduct) |
| 7 | +- [Development Environment](#development-environment) |
| 8 | +- [Development Workflow](#development-workflow) |
| 9 | +- [Contributing Code](#contributing-code) |
| 10 | +- [Pull Request Process](#pull-request-process) |
| 11 | +- [Issue Reporting](#issue-reporting) |
| 12 | +- [Development Tools](#development-tools) |
| 13 | +- [Community](#community) |
| 14 | + |
| 15 | +## Code of Conduct |
| 16 | + |
| 17 | +By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors. Any form of harassment or discriminatory behavior will not be tolerated. |
| 18 | + |
| 19 | +## Development Environment |
| 20 | + |
| 21 | +Before starting development: |
| 22 | + |
| 23 | +1. Read the [installation instructions](README.md#⚡️getting-started) in the README. |
| 24 | +2. Fork and clone the repository |
| 25 | +3. Set up your development environment according to the README instructions |
| 26 | + |
| 27 | +For detailed development environment requirements and troubleshooting, refer to the [documentation](https://dfki-ni.github.io/syclops/). |
| 28 | + |
| 29 | +## Development Workflow |
| 30 | + |
| 31 | +1. Create a new branch for your work: |
| 32 | +```bash |
| 33 | +git checkout -b feature/your-feature-name |
| 34 | +``` |
| 35 | + |
| 36 | +Use descriptive branch prefixes: |
| 37 | +- `feature/` for new features |
| 38 | +- `fix/` for bug fixes |
| 39 | +- `docs/` for documentation changes |
| 40 | +- `refactor/` for code refactoring |
| 41 | + |
| 42 | +2. Make your changes, following our code style guidelines |
| 43 | +3. Write/update tests |
| 44 | +4. Commit your changes with clear commit messages |
| 45 | +5. Push to your fork and submit a pull request |
| 46 | + |
| 47 | +### Code Style Guidelines |
| 48 | + |
| 49 | +- Follow PEP 8 standards for Python code |
| 50 | +- Use meaningful variable and function names |
| 51 | +- Document functions and classes using docstrings |
| 52 | +- Keep functions focused and concise |
| 53 | +- Add comments for complex logic |
| 54 | + |
| 55 | +## Contributing Code |
| 56 | + |
| 57 | +### Plugin Development |
| 58 | + |
| 59 | +For adding new functionality through plugins, refer to our comprehensive documentation: |
| 60 | + |
| 61 | +- [Creating Scene Plugins](https://dfki-ni.github.io/syclops/developement/add_functionality/create_plugin/) |
| 62 | +- [Creating Sensor and Output Plugins](https://dfki-ni.github.io/syclops/developement/add_functionality/create_sensor/) |
| 63 | +- [Architecture Overview](https://dfki-ni.github.io/syclops/developement/architecture/) |
| 64 | + |
| 65 | +These guides provide detailed examples, schema file creation instructions, and best practices for plugin development. |
| 66 | + |
| 67 | +### Documentation Requirements |
| 68 | + |
| 69 | +- Add docstrings to all new functions and classes |
| 70 | +- Update relevant documentation files |
| 71 | +- Include examples for new features |
| 72 | +- Document any new configuration options |
| 73 | +- Add a schema file for new configuration options ([Schema Docs](https://dfki-ni.github.io/syclops/developement/add_functionality/create_plugin/?h=schema#schema)) |
| 74 | + |
| 75 | +## Pull Request Process |
| 76 | + |
| 77 | +1. Ensure your code passes all tests |
| 78 | +2. Update documentation for any changed functionality |
| 79 | +3. Request review from project maintainers |
| 80 | +4. Address review feedback |
| 81 | + |
| 82 | +PR template: |
| 83 | +```markdown |
| 84 | +## Description |
| 85 | +[Describe your changes] |
| 86 | + |
| 87 | +## Type of Change |
| 88 | +- [ ] Bug fix |
| 89 | +- [ ] New feature |
| 90 | +- [ ] Documentation update |
| 91 | +- [ ] Refactoring |
| 92 | + |
| 93 | +## Testing |
| 94 | +- [ ] Added/updated unit tests |
| 95 | +- [ ] Tested manually |
| 96 | + |
| 97 | +## Documentation |
| 98 | +- [ ] Updated relevant documentation |
| 99 | +``` |
| 100 | + |
| 101 | +## Issue Reporting |
| 102 | + |
| 103 | +### Bug Reports |
| 104 | + |
| 105 | +When reporting bugs, include: |
| 106 | + |
| 107 | +1. Syclops version |
| 108 | +2. Python version |
| 109 | +3. Operating system |
| 110 | +4. Steps to reproduce |
| 111 | +5. Expected vs actual behavior |
| 112 | +6. Error messages and stack traces |
| 113 | + |
| 114 | +### Feature Requests |
| 115 | + |
| 116 | +When requesting features: |
| 117 | + |
| 118 | +1. Describe the problem you're trying to solve |
| 119 | +2. Explain your proposed solution |
| 120 | +3. Discuss alternatives you've considered |
| 121 | +4. Provide example use cases |
| 122 | + |
| 123 | +## Development Tools |
| 124 | + |
| 125 | +### Testing and Debugging |
| 126 | + |
| 127 | +#### Testing |
| 128 | +Your contribution must pass all integration tests before it can be merged. We use GitHub Actions for continuous integration. Check our [integration test workflow](.github/workflows/integration_test.yaml) to understand the testing requirements. |
| 129 | + |
| 130 | +The integration tests verify: |
| 131 | +- Pipeline functionality |
| 132 | +- Output file generation |
| 133 | +- Format compliance |
| 134 | +- Documentation builds |
| 135 | + |
| 136 | +#### Debugging |
| 137 | +For detailed debugging instructions, including: |
| 138 | +- Visual debugging in Blender |
| 139 | +- IDE integration |
| 140 | +- Pipeline debugging |
| 141 | +- Breakpoint usage |
| 142 | + |
| 143 | +Refer to our [Debugging Guide](https://dfki-ni.github.io/syclops/developement/debugging/). |
| 144 | + |
| 145 | +## Community |
| 146 | + |
| 147 | +### Getting Help |
| 148 | + |
| 149 | +- Search the [documentation](https://dfki-ni.github.io/syclops/) |
| 150 | +- Check existing issues on GitHub |
| 151 | +- Join discussions in pull requests |
| 152 | + |
| 153 | +### Contact |
| 154 | + |
| 155 | +For bug reports and feature requests, please use GitHub issues. For security concerns, please email the maintainers directly. |
| 156 | + |
| 157 | +## License |
| 158 | + |
| 159 | +By contributing to Syclops, you agree that your contributions will be licensed under the project's license. |
0 commit comments