Contributing
We welcome contributions to TTS Wrapper! This guide will help you get started.
Getting Started
-
Fork the Repository
- Visit TTS Wrapper on GitHub
- Click the "Fork" button
- Clone your fork locally
-
Set Up Development Environment
# Clone your fork
git clone https://github.com/YOUR_USERNAME/tts-wrapper.git
cd tts-wrapper
# Install dependencies with UV
pip install uv
uv sync
Development Workflow
-
Create a Branch
git checkout -b feature/my-new-feature
# or
git checkout -b fix/issue-description -
Make Changes
- Write code
- Add tests
- Update documentation
-
Run Tests
pytest tests/
-
Check Code Style
# Format code
black .
# Check types
mypy . -
Commit Changes
git add .
git commit -m "Description of changes" -
Push and Create Pull Request
git push origin feature/my-new-feature
Then create a Pull Request on GitHub.
Pull Request Guidelines
-
Description
- Clear description of changes
- Reference any related issues
- List breaking changes
- Include screenshots for UI changes
-
Code Quality
- Follow PEP 8 style guide
- Include type hints
- Add docstrings
- Write clear commit messages
-
Testing
- Add tests for new features
- Ensure all tests pass
- Include both unit and integration tests
-
Documentation
- Update relevant documentation
- Add docstrings to new code
- Include examples if applicable
Documentation Contributions
-
Website Updates
- Located in
website/
directory - Built with Docusaurus
- Preview changes locally:
cd website
yarn install
yarn start
- Located in
-
API Documentation
- Update docstrings in code
- Follow Google style format
- Include type hints
- Add examples
Issue Guidelines
When creating issues:
-
Bug Reports
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- System information
- Code examples
-
Feature Requests
- Clear use case
- Expected behavior
- Example implementation if possible
- Related issues/PRs
Code Review Process
-
Initial Review
- Code style and quality
- Test coverage
- Documentation
- Performance implications
-
Secondary Review
- Architecture considerations
- Security implications
- Breaking changes
- Backward compatibility
-
Final Review
- Documentation completeness
- Test coverage
- Merge conflicts
- Version numbers
Community Guidelines
- Be respectful and inclusive
- Follow the code of conduct
- Help others learn and grow
- Provide constructive feedback
- Acknowledge contributions
Getting Help
- Create an issue for questions
- Join discussions on GitHub
- Check existing documentation
- Review closed issues/PRs
Next Steps
- Review adding new engines
- Learn about the release process
- Check out the developer overview