Thanks for your interest in contributing! This document explains the recommended workflow, coding conventions, and how to submit changes so they can be reviewed and merged quickly.
- Open an issue to discuss larger changes before starting work.
- Fork the repository and create a branch for your change.
- Follow the project's code style and run tests locally.
- Submit a pull request (PR) with a clear description and related issue (if any).
- Use the issue tracker to report bugs or request features.
- Include a minimal reproduction case, the behavior you expect, and any relevant environment details (Go version, OS).
- Include inputs, and any stack traces or test failures, if applicable.
- If you open a fix PR, reference the issue number in the PR description.
- Fork the repository.
- Create a feature branch:
git checkout -b feat/short-description
- Make small, focused commits with clear messages.
- Rebase or merge main as needed to keep your branch up to date.
- Push and open a PR against the main branch.
- Run tests locally before opening a PR:
go test ./...
- If you add new behavior, include unit tests that cover it.
- Contributors should update existing tests or add new tests as needed when introducing new features, fixing bugs that change behavior, or modifying public APIs.
- Keep tests deterministic and fast. Avoid heavy-weight operations in tests.
- This is a Go project. Please:
- run go fmt / goimports on changed files
- keep code simple and idiomatic
- Prefer small, well-scoped changes and maintain readability.
- Kong must only depend on the Go standard library. External dependencies are not permitted.
- Use concise, descriptive messages. Example:
- feat(parser): add support for ternary operator
- fix(evaluator): correct integer division semantics
- Provide a clear description of what the PR changes are and why.
- Link to any related issue(s).
- Add tests for new behavior where appropriate.
- Expect code review and iterate on requested changes.
- The maintainers will merge when CI passes and changes are approved.
- Update docs/ (or README.md) for user-visible changes.
- Keep examples and usage up to date.
- The project uses standard Go tooling and GitHub Actions for CI.
- Ensure
go test ./...passes locally; CI will run tests on PRs.
- By contributing, you agree that your contributions are licensed under this repository's license (see LICENSE).
- Be respectful and constructive in discussions and reviews.
Thanks again for helping improve Kong — contributions are much appreciated. If you have any questions about these guidelines, open an issue or discuss them in your PR.