🤝 Contributing Guide
Thank you for your interest in EchoMusic! Welcome to project contributions. Please read the following guidelines before submitting code.
Code of Conduct
- Be kind and respectful, embrace different perspectives and experience levels
- Provide constructive criticism and suggestions
- Focus on what's best for the community
How to Contribute
Reporting Bugs
If you find a bug, please submit an issue using the Bug Report template, including:
- Title: Concise problem description
- Environment: OS version, EchoMusic version
- Steps to Reproduce: Detailed steps to trigger the bug
- Expected Behavior: What you expected to happen
- Actual Behavior: What actually happened
- Screenshots or Logs: If applicable
Feature Suggestions
Please use the Feature Request template:
- Search Issues first to avoid duplicates
- Describe the feature in detail with use cases
- Explain why this feature is valuable to the project
Issue Automation
- New issues are auto-labeled by the
issue-ai-labelerworkflow - Long-inactive issues are auto-closed by
issue-closerafter being markedstale
Submitting Code
Fork & Local Development
# Fork the repository
# https://github.com/hoowhoami/EchoMusic/fork
# Clone your fork
git clone https://github.com/YOUR_USERNAME/EchoMusic.git
cd EchoMusic
# Create a feature branch
git checkout -b feature/my-feature
# Develop...
# Commit
git add .
git commit -m "feat: your feature description"
# Push
git push origin feature/my-featureCommit Conventions
No strict format required, but clear messages are recommended:
feat: xxx— New featurefix: xxx— Bug fixdocs: xxx— Documentation updaterefactor: xxx— Code refactoringstyle: xxx— Formattingchore: xxx— Build/tooling changes
Pull Request Process
- Ensure code passes local testing
- Ensure
pnpm devstarts without errors - PR title clearly describes the changes
- PR description explains the purpose and scope of changes
- Wait for code review
Code Standards
Tooling
The project is configured with the following tools for consistent code style:
| Tool | Config File | Description |
|---|---|---|
| ESLint | .eslintrc.json | JavaScript/TypeScript linting |
| Prettier | .prettierrc | Code formatting |
| EditorConfig | .vscode/extensions.json | Recommended VS Code extensions |
Install the corresponding editor plugins and enable format-on-save for the best experience.
Frontend (Vue 3 + TypeScript)
- Use Composition API (
<script setup>) - Follow Vue 3 official style guide
- TypeScript strict mode
- PascalCase for component names
- kebab-case for file names
Backend (Node.js)
- Use TypeScript
- async/await for asynchronous operations
- try/catch for error handling
Rust Native Modules
- Follow Rust official coding conventions
- Format code with
cargo fmt - Lint with
cargo clippy
Recommended Dev Tools
VS Code
Open the project and VS Code will prompt to install recommended extensions from .vscode/extensions.json, including:
- Vue Language Features (Volar)
- TypeScript
- Rust Analyzer
- ESLint
- Prettier
- Tailwind CSS IntelliSense
Claude Code
The project includes .claude/settings.json for optimized AI-assisted development with Claude Code.
Development Notes
- Cross-platform: Ensure changes work on macOS, Windows, and Linux
- Native modules: After modifying Rust code, verify compilation on all platforms
- Dependencies: Use pnpm — do not mix npm/yarn
- Backward compatibility: Avoid breaking changes when possible
Review Process
- Submit PR and wait for maintainer review
- Revise based on review feedback
- PR is merged after approval
Documentation Contributions
Documentation contributions are equally important:
- Fix errors or outdated information
- Fill in missing documentation
- Improve readability and structure
- Add usage examples and best practices
Contact
- GitHub Issues
- QQ Group: 1036693403
- Telegram