We welcome contributions to TurboTerm! By contributing, you help make our CLI UI toolkit even better.
Please take a moment to review this document to ensure a smooth contribution process.
First, fork the TurboTerm repository to your own GitHub account.
Clone your forked repository to your local machine:
git clone https://github.com/your-username/turboterm.git
cd turbotermCreate a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
# or
git checkout -b bugfix/your-bug-fix-nameEnsure you have Rust and Python installed. We recommend using uv for Python dependency management.
# Set up Python virtual environment
uv venv
# Add development dependencies
uv add maturin mypy pytest
# Build the Rust extension in editable mode
uv run maturin develop- Implement your feature or bug fix.
- Write comprehensive unit tests for your changes. We use Python's
unittestframework. - Ensure all existing tests pass.
- Adhere to the existing code style and structure (Rust via
rustfmt, Python viablack/ruff). - Update documentation (e.g.,
README.md,CHANGELOG.md) as appropriate.
Before submitting, ensure all tests pass:
uv run python -m unittest discover testsCommit your changes with a clear and concise commit message. Follow conventional commits if possible (e.g., feat: Add new feature, fix: Resolve bug in lexer).
git add .
git commit -m "feat: Briefly describe your feature or fix"Push your changes to your fork on GitHub:
git push origin feature/your-feature-nameGo to the original TurboTerm repository on GitHub and open a new Pull Request.
- Provide a clear title and detailed description of your changes.
- Reference any related issues.
If you find a bug, please open an issue on the GitHub Issues page.
- Provide a clear and concise description of the bug.
- Include steps to reproduce the behavior.
- Mention your operating system, Python version, and
turbotermversion (if applicable).
We're always looking for ways to improve TurboTerm! Feel free to open an issue to suggest new features or enhancements.
Thank you for contributing to TurboTerm!