Thank you for your interest in contributing to Termul Manager! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
Before submitting a bug report:
- Check the existing issues to avoid duplicates
- Use the latest version to see if the bug still exists
When submitting a bug report, include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Your environment (OS, Node.js version, etc.)
- Screenshots if applicable
- Error messages or logs
Feature requests are welcome! Please:
- Check existing issues for similar suggestions
- Provide a clear use case
- Explain why this feature would benefit users
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/termul.git cd termul - Install dependencies:
npm install
- Create a feature branch:
git checkout -b feature/your-feature-name
- Make your changes
- Run tests:
npm test - Run type checking:
npm run typecheck
- Run linting:
npm run lint
- Test the app manually:
npm run dev
We follow conventional commit messages:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Examples:
feat: add workspace export functionality
fix: terminal not resizing correctly on window resize
docs: update installation instructions
- Push your branch:
git push origin feature/your-feature-name
- Open a Pull Request on GitHub
- Fill in the PR template with:
- Description of changes
- Related issue (if any)
- Screenshots (for UI changes)
- Testing steps
- Use TypeScript for all new code
- Follow the existing code patterns
- Keep components focused and single-purpose
- Use meaningful variable and function names
- Add comments only when the logic isn't self-evident
src/
├── renderer/ # React frontend
│ ├── components/ # UI components
│ ├── hooks/ # Custom hooks
│ ├── pages/ # Page components
│ └── stores/ # Zustand stores
├── shared/ # Shared types
src-tauri/ # Tauri Rust code, configuration, and bundling
docs/electron-old/ # Archived Electron docs and migration history
- Write tests for new functionality
- Ensure existing tests pass before submitting
- Place test files next to the code they test (e.g.,
component.tsxandcomponent.test.tsx)
- Update README.md if you add new features
- Add JSDoc comments for public APIs
- Update type definitions as needed
- Node.js 18+
- npm or bun
- Git
Prerequisite: Before running
npm run dev, install the Rust toolchain (rustup,rustc, andcargo) plus any platform-specific Tauri dependencies listed in the README Prerequisites section.
# Install dependencies
npm install
# Start the Tauri app in development mode
npm run dev
# Run tests
npm test
# Build for production
npm run buildPrerequisite: Platform-specific Tauri builds require the Rust toolchain, the required compilation targets, and the OS dependencies documented in the README Prerequisites section.
npm run build:tauri:win # Windows (x64)
npm run build:tauri:mac-arm # macOS (Apple Silicon)
npm run build:tauri:mac-x64 # macOS (Intel)
npm run build:tauri:linux # Linux (x64)Feel free to open an issue for any questions or concerns.
Thank you for contributing!