Thank you for your interest in contributing to this project!
- If a relevant issue already exists, discuss your approach within that issue before starting work
- If no relevant issue exists, open a new issue to start a discussion
- Please proceed with a Pull Request only after the project maintainers are okay with your approach
- Java 21 or higher
- Maven 3.8+
- Git
git clone https://github.com/karatelabs/karate.git
cd karate
mvn clean installmvn test- 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 the
mainbranch
- 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)
├── docs/ # Design principles and roadmap
└── pom.xml # Parent Maven configuration
See TODOS.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 and feature requests
- 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.
Please read our Code of Conduct. Be respectful and constructive in all interactions.