Thank you for your interest in contributing to ColorTerm! This document provides guidelines for contributing to the project.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/colorterm.git cd colorterm - Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install in development mode:
pip install -e ".[dev,ascii]"
-
Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
-
Make your changes following the coding standards below
-
Write tests for your changes in the
tests/directory -
Run tests to ensure everything works:
pytest tests/ -v
-
Run code quality checks:
# Format code black colorterminal/ tests/ # Check style flake8 colorterminal/ tests/ # Type checking mypy colorterminal/
- Follow PEP 8 style guidelines
- Use type hints for function parameters and return values
- Write docstrings for all public functions and classes
- Keep functions focused and small
- Use descriptive variable names
- Update the README.md if you add new features
- Add examples to the examples/ directory
- Update CHANGELOG.md following Keep a Changelog format
- Add inline comments for complex logic
- Write unit tests for all new functionality
- Ensure existing tests pass
- Aim for high test coverage (>90%)
- Test on multiple Python versions if possible (3.6+)
Follow conventional commit format:
type(scope): brief description
Detailed explanation if needed
Fixes #issue_number
Types: feat, fix, docs, style, refactor, test, chore
Examples:
feat(progress): add circular progress indicatorfix(tables): resolve alignment issue with wide charactersdocs(readme): add installation instructions
- Update documentation if needed
- Add tests for your changes
- Update CHANGELOG.md with your changes
- Ensure all tests pass
- Submit a pull request with a clear description
- Code follows project style guidelines
- Tests added and passing
- Documentation updated
- CHANGELOG.md updated
- No breaking changes (or clearly documented)
- Commit messages are clear and descriptive
We welcome contributions in the following areas:
- New shape types or drawing utilities
- Additional table styles or formatting options
- New progress bar animations
- Enhanced ASCII art capabilities
- Color palette management
- Terminal capability detection
- Fix reported issues
- Improve error handling
- Cross-platform compatibility fixes
- Improve README examples
- Add tutorials or guides
- Create API documentation
- Translate documentation
- Increase test coverage
- Add integration tests
- Add performance benchmarks
- Optimize rendering performance
- Reduce memory usage
- Improve startup time
- Be respectful and inclusive
- Welcome newcomers and help them learn
- Focus on constructive feedback
- Accept responsibility for mistakes
- Prioritize the community's best interest
- Harassment or discriminatory language
- Personal attacks or trolling
- Spam or off-topic discussions
- Publishing others' private information
If you have questions or need help:
- Check existing issues and discussions
- Create a new issue with the "question" label
- Reach out to maintainers via email
By contributing to ColorTerm, you agree that your contributions will be licensed under the MIT License.
Contributors will be acknowledged in:
- Project README
- Release notes
- CHANGELOG.md
Thank you for contributing to ColorTerm! 🎨