Thank you for your interest in contributing to SerialTalk!
- Check if the issue already exists in GitHub Issues
- Use the issue template if provided
- Include:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Platform/device information
- Python/MicroPython version
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes
- Test your changes thoroughly
- Update documentation if needed
- Commit with clear messages:
git commit -m "Add feature: description" - Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request
See DEVELOPER.md for detailed setup instructions.
Quick start:
git clone https://github.com/antonvh/SerialTalk.git
cd SerialTalk
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"- Follow PEP 8 guidelines
- Use Black for formatting:
black serialtalk/ - Check with flake8:
flake8 serialtalk/ - Maximum line length: 100 characters
- Write tests for new features
- Ensure existing tests pass
- Test on multiple platforms if possible (MicroPython, Python 3.x)
- Run tests:
pytest
- Update README.md for user-facing changes
- Update docstrings for code changes
- Follow Google-style docstrings
- Build docs locally:
cd docs && make html
Use clear, descriptive commit messages:
Add: New feature descriptionFix: Bug fix descriptionUpdate: Documentation/dependency updatesRefactor: Code improvementsTest: Test additions/changes
SerialTalk supports multiple platforms:
- MicroPython (ESP32, ESP8266, PyBoard, OpenMV, K210)
- Python 3.7+
- Pybricks
- LEGO SPIKE Prime
When adding features, consider compatibility across platforms.
- Be respectful and constructive
- Welcome newcomers
- Focus on the best solution, not ego
- Help others learn and grow
By contributing, you agree that your contributions will be licensed under the MIT License.
Feel free to:
- Open a discussion in GitHub Discussions
- Contact the maintainers
- Ask in the pull request/issue
Thank you for contributing to SerialTalk! 🚀