Thank you for your interest in contributing to Karate v2! This document provides guidelines for contributing to the project.
- Java 21 or higher
- Maven 3.8+
- Git
git clone https://github.com/karatelabs/karate.git
cd karate
mvn clean installmvn test- Use GitHub Issues to report bugs or request features
- Search existing issues before creating a new one
- Include reproduction steps for bugs
- Be specific about expected vs actual behavior
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Make your changes
- Write or update tests as needed
- Ensure all tests pass (
mvn test) - Commit with clear, descriptive messages
- Push to your fork
- Open a Pull Request against
main
- Keep changes focused and atomic
- Update documentation if needed
- Add tests for new functionality
- Follow existing code style
- Reference related issues in the PR description
- Follow standard Java conventions
- Use meaningful variable and method names
- Keep methods focused and reasonably sized
- Add comments for complex logic (but prefer self-documenting code)
karate/
├── karate-js/ # JavaScript engine and Gherkin parser
├── karate-core/ # Core framework (HTTP, templating, matching)
├── PRINCIPLES.md # Design principles
├── ROADMAP.md # Development roadmap
└── pom.xml # Parent Maven configuration
See ROADMAP.md for current priorities and open tasks. Good areas for new contributors:
- Documentation improvements
- Test coverage expansion
- Bug fixes
- Performance optimizations
If you're using karate-js in your own project and find opportunities to improve decoupling or reusability, those contributions are especially welcome.
- Issues - For bugs, features, and technical discussions
- Pull Requests - For code contributions
- Discussions - For general questions and ideas
By contributing, you agree that your contributions will be licensed under the MIT License.
Be respectful and constructive in all interactions. We're building something together.
Thank you for contributing to Karate v2!