Thank you for your interest in contributing!
This is a curated fork of ExcelJS maintained by Protobi. We selectively adopt features from the upstream repository that we need for our production systems.
Important: This is NOT a general-purpose community fork attempting to replace the upstream project. We maintain this fork to serve our specific needs.
- Bug fixes for features already in this fork
- Improvements to fork-specific features (e.g., pivot tables)
- Well-tested, self-contained features that:
- Have clear use cases
- Don't add significant maintenance burden
- Come with tests and documentation
- Are things we might actually use
- Cherry-picked PRs from upstream - Must be:
- Well-reviewed and high quality
- Thoroughly tested
- Not rejected upstream for good reasons
- Something we'll actually maintain
- Large refactors - We're not rewriting the library
- Features we don't use - We can't maintain what we don't use
- Breaking changes - Stability matters for production
- Incomplete features - Must be fully working, tested, and documented
- Check existing issues - Is this already being discussed?
- Open an issue first - Discuss the change before writing code
- Keep it small - Smaller PRs are easier to review and merge
- Test thoroughly - Include tests and examples
- Document clearly - Update README if adding features
- Fork the repository
- Create a branch:
git checkout -b fix/description - Make your changes with tests
- Submit a PR with:
- Clear description of the bug
- How you fixed it
- Test coverage
- Open an issue FIRST - Discuss before coding
- Wait for feedback - We may decline features we won't maintain
- If approved, follow the same process as bug fixes
If you want us to adopt a PR from upstream:
- Open an issue linking to the upstream PR
- Explain why we should adopt it
- Confirm it's been tested
- Be prepared to help with integration if needed
- Follow existing code style (enforced by ESLint/Prettier)
- Add tests for all changes
- Update documentation
- Keep commits clean and descriptive
npm test
npm run test:coverageOpen an issue! But remember:
- This fork serves our production needs first
- We can't provide general Excel library support
- Response times may vary based on our workload
By contributing, you agree that your contributions will be licensed under the MIT License.
Huge thanks to the original ExcelJS maintainers and contributors who built this excellent library.