Thank you for your interest in contributing to Kyara! This document provides guidelines and instructions for contributing.
- Node.js v22 or higher (see
.nvmrc) - npm
# Clone the repository
git clone https://github.com/bloom-perf/kyara.git
cd kyara
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm testThis project uses ESLint and Prettier to maintain consistent code quality:
# Check for linting issues
npm run lint
# Fix linting issues automatically
npm run lint:fix
# Format code with Prettier
npm run format
# Check code formatting
npm run format:checkPlease ensure your code passes linting and formatting checks before submitting a PR.
All new features and bug fixes should include tests:
# Run tests
npm test
# Run tests with coverage
npm run test:coverageWe aim to maintain high test coverage. Please ensure your changes don't decrease the overall coverage.
We use emoji prefixes for commit messages to quickly identify the type of change:
| Emoji | Description |
|---|---|
| ✨ | New feature |
| 🐛 | Bug fix |
| 📝 | Documentation |
| 🔧 | Configuration/tooling |
| ♻️ | Refactoring |
| ✅ | Tests |
| 🔄 | Dependencies/updates |
| 🙈 | Gitignore changes |
| 💥 | Breaking changes |
Example: ✨ Add support for custom browser arguments
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and linting (
npm test && npm run lint) - Commit your changes with a descriptive message
- Push to your fork (
git push origin feature/amazing-feature) - Open a Pull Request
- Keep PRs focused on a single change
- Update documentation if needed
- Add tests for new functionality
- Ensure CI passes before requesting review
kyara/
├── src/ # Source code
│ ├── __tests__/ # Test files
│ └── types/ # TypeScript declarations
├── helm/ # Kubernetes Helm chart
├── .github/ # GitHub Actions workflows
└── [config files] # Root configuration files
When reporting issues, please include:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details (Node.js version, OS, etc.)
Feel free to open an issue for any questions or discussions about contributing.
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.