Contributing Guide โ
We welcome your contributions! This guide will help you understand how to effectively contribute to the Chaterm project.
Ways to Contribute โ
- ๐ Report Bugs - Help us identify and fix issues
- ๐ฌ Discuss Code - Participate in technical discussions
- ๐ง Submit Fixes - Fix bugs and improve existing features
- โจ Propose Features - Suggest new features
- ๐ Improve Documentation - Enhance documentation and guides
- ๐งช Add Tests - Increase test coverage
We use GitHub to host code, track issues and feature requests, and accept Pull Requests.
Contributor Workflow โ
- Fork this repository to your personal account
- Create your development branch from the
mainbranch - Develop in your forked repository
- Submit a Pull Request to the
mainbranch of the original repository when done - Reference the fixed Issue in the PR description (if applicable)
- After approval from at least one maintainer, the PR will be merged
Local Development Environment Setup โ
- Clone the repository:
bash
# Fork the repository on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/Chaterm.git
cd ChatermInstall necessary development tools:
- Install Node.js (recommended to use the latest LTS version)
Install Electron:
bash
npm i electron -D- Install project dependencies:
bash
node scripts/patch-package-lock.js
npm install- Start the development server:
bash
npm run devProject Structure โ
Chaterm/
โโโ src/
โ โโโ main/ # Electron main process
โ โโโ preload/ # Preload scripts
โ โโโ renderer/ # Vue.js frontend
โโโ scripts/ # Build and development scripts
โโโ resources/ # Application resources (icons, etc.)
โโโ tests/ # Test files
โโโ docs/ # DocumentationCode Quality Standards โ
Code Style โ
- ESLint: JavaScript/TypeScript code checking
- Prettier: Code formatting
- TypeScript: Strong typing recommended
Quality Checks โ
bash
# Format code
npm run format
# Check for code issues
npm run lint
# Type checking
npm run typecheck
# Run tests
npm test
# Build verification
npm run buildPR Guidelines โ
What Makes a Great PR โ
โ Clear Purpose
- Single, focused change
- Clear title and description
- Reference related issues
โ High-Quality Code
- Follow project coding standards
- Include appropriate tests
- Well-commented code
- No breaking changes (unless intentional)
โ Documentation
- Update relevant documentation
- Include usage examples
- Document new features
โ Testing
- Write unit tests for new features
- Write integration tests for complex features
- Manual testing verification
PR Template โ
When creating a PR, please include:
markdown
## Description
Brief description of the changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] Local tests passed
- [ ] Manual testing completed
- [ ] Screenshots (for UI changes)
## Checklist
- [ ] Code follows style guide
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] No breaking changesCommit Messages โ
Use conventional commit format:
feat: add new feature
fix: fix bug in component
docs: update README
refactor: improve code structure
test: add unit testsGetting Help โ
- ๐ Documentation: Check existing documentation first
- ๐ฌ Discussions: Ask questions using GitHub Discussions
- ๐ Issues: Report bugs via issues with detailed information
- ๐ก Ideas: Propose feature suggestions via issues
Questions? โ
If you have any questions about contributing, please create an issue with the "question" label.
License โ
By contributing to Chaterm, you agree that your contributions will be licensed under the same terms as the project.