Thank you for your interest in contributing to Term! This guide will help you get started with the contribution process.
-
Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/term.git cd term -
Set up the development environment:
# Install Node.js dependencies npm install # Install Rust (if not already installed) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.cargo/env # Install Tauri CLI cargo install tauri-cli
-
Create a new branch for your feature:
git checkout -b feat/your-feature-name
- Frontend: TypeScript best practices, functional components + hooks
- Backend: Rust conventions, run
cargo fmtbefore commits - Commits: Follow Conventional Commits
- DCO: All commits must be signed off (details below)
- Run:
npm test - Add tests for new features
- Ensure cross-platform compatibility
- Update README.md for major changes
- Add JSDoc for new functions
- Maintain inline comments
The DCO is a lightweight way for contributors to certify they have the right to submit code under the project's license.
All commits must be signed off. This is enforced by CI/CD.
git commit -s -m "feat: add new feature"# Last commit
git commit --amend -s
# Multiple commits
git rebase --signoff HEAD~3
# Entire branch
git rebase --signoff mainSigned-off-by: Your Name <your.email@example.com>
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global alias.cs 'commit -s'- Check existing issues
- Bugs: include steps, environment, logs
- Features: describe use case + solution
git remote add upstream https://github.com/zoxilsi/term.git
git fetch upstream
git checkout main
git merge upstream/main
# Feature branch
git checkout -b feat/amazing-feature
# Signed commit
git add .
git commit -s -m "feat: amazing feature"
npm test
npm run lint
npm run build
git push origin feat/amazing-feature- Open PR on GitHub
- Fill PR template
- Ensure CI passes
- Address review feedback
npm test
npm run test:watch
npm run test:coveragecd src-tauri
cargo test
cargo test -- --nocapturenpm run tauri dev<type>[scope]: description
[optional body]
[optional footer]
Signed-off-by: Your Name <your.email@example.com>
Types:
feat|fix|docs|style|refactor|test|chore|ci|perf|build
Examples:
git commit -s -m "feat: add AI autocompletion"
git commit -s -m "fix: resolve output formatting"Include:
- Steps to reproduce
- Expected vs actual
- Environment details
- Screenshots/logs
Include:
- Use case
- Proposed solution
- Alternatives
- Extra context
- Issues: Bug reports & feature requests
- Discussions: Q&A & ideas
- Reviews: Feedback on PRs
- Bug fixes
- Features
- Documentation
- Testing
- UI/UX
- Performance improvements
- PRs without DCO will be rejected
- All code changes need review
- Breaking changes require discussion
- Maintain backwards compatibility
- Test on multiple OS where possible
Your contributions make Term better for everyone!
For more DCO details, see .github/DCO.md.