Contributing to Apache ECharts
First off, thanks for taking the time to contribute! The ECharts community welcomes contributions of all kinds.Code of Conduct
This project follows the Apache Code of Conduct. Please review and follow these guidelines when participating in the community.Ways to Contribute
Contributions can be made in varied ways:Help Others
- Help solve problems in GitHub issues
- Remind authors to provide demos when reporting bugs
- Try to reproduce problems described in issues
- Answer questions on Stack Overflow
Code Contributions
- Fix bugs reported in issues
- Implement new features
- Improve performance
- Write tests
Documentation
- Improve existing documentation
- Translate documentation to other languages
- Write tutorials and guides
- Add code examples
Community
- Discuss in the mailing list
- Share your ECharts projects
- Write blog posts about ECharts
Reporting Issues
Before Creating an Issue
- Search existing issues - Check if the issue has already been reported in the issues list
- Read the documentation - Review the documentation carefully
- Check Stack Overflow - Questions like “how can I use echarts to…” belong on Stack Overflow, not in the issue tracker
Creating a Bug Report
Use the bug report template when creating a new issue:- Visit the New Issue page
- Select the bug report template
- Provide a minimal reproducible demo
- Include:
- ECharts version
- Browser and version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
Feature Requests
- Use the feature request template
- Clearly describe the use case
- Explain why this feature would be useful
- Provide examples if possible
Pull Requests
Development Workflow
Follow the How to make a pull request guide on the wiki.Setting Up Development Environment
Refer to How to setup the dev environment on the wiki. Quick start:Development Commands
Pull Request Guidelines
- Fork and clone the repository
- Create a branch from
master - Make your changes with clear commit messages
- Test thoroughly - add tests for new features
- Run linting - ensure code passes all checks
- Update documentation if needed
- Submit the PR with a clear description
Code Quality
Ensure your code:- Follows the existing code style
- Passes ESLint checks (
npm run lint) - Passes TypeScript checks (
npm run checktype) - Includes appropriate tests
- Has proper license headers (
npm run checkheader)
Release Process
Release Schedule
ECharts follows a monthly release cycle:- Beginning of month - Start discussion for release two versions ahead (e.g., if current is 4.3.0, discuss 4.5.0)
- Mid-month - Begin development of next release (e.g., 4.4.0)
- ~22nd of month - Freeze development and start testing
- End of month - Vote on release in mailing list
Milestone Discussions
Release milestone discussions happen on the mailing list. Subscribe to participate in planning and give feedback.Using Code from Other Authors
Algorithms and Ideas
When using algorithms or being inspired by others’ work:- ✅ Be transparent about implementing existing ideas
- ✅ Reference sources where ideas came from
- ✅ Use clear language - “inspired by”, “learned from”, “references”
- ✅ Include licensing if copying copyrightable expression
- ⚠️ Check compatibility - ensure licenses are compatible with Apache 2.0
Third-Party Code
When adding third-party code:- Review Apache header guidelines
- Check license compatibility at Apache legal
Compatible Licenses
- ✅ BSD - Compatible with Apache License
- ✅ MIT - Compatible with Apache License
- ❌ CC BY-SA - NOT compatible (details)
Stack Overflow Code
Before copying code from Stack Overflow:- Review Stack Overflow policy
- Check LEGAL-471
Testing
Unit Tests
Visual Tests
Type Definition Tests
Commit Message Guidelines
Use clear, descriptive commit messages:feat: New featurefix: Bug fixdocs: Documentation changestest: Test additions or changesrefactor: Code refactoringchore: Build process or auxiliary tool changes
Community Resources
Communication Channels
- GitHub Issues: Bug reports and features
- Email: [email protected]
- Mailing List: Subscribe here
- Stack Overflow: Tag questions with
echarts
Documentation
Development Wikis
Getting Started
Ready to contribute? Here’s how to get started:- Find an issue - Look for good first issues
- Set up your environment - Follow the dev setup guide
- Make your changes - Write code and tests
- Submit a PR - Follow the PR guidelines above
- Respond to feedback - Work with maintainers to refine your contribution
Questions?
If you have questions about contributing:- Check the GitHub wiki
- Ask on the mailing list
- Email [email protected]
Remember to be patient and respectful. All contributors are volunteers, and responses may take time.