Thanks for your interest in contributing to RDX. This guide applies to all repositories under the rdx-lang organization.
- Fork the repository
- Create a branch from
main - Make your changes
- Run the test suite
- Open a pull request
git clone https://github.com/rdx-lang/rdx.git
cd rdx
cargo testgit clone https://github.com/rdx-lang/tree-sitter-rdx.git
cd tree-sitter-rdx
bunx tree-sitter generate
bunx tree-sitter test- Check open issues for tasks labeled
good first issueorhelp wanted - Spec clarifications and wording improvements
- New AST transforms via the
Transformtrait - Parser bug fixes with a failing test case
- Tree-sitter grammar improvements and new corpus tests
- Bindings for other languages (Python, Node.js, Go, etc.)
- Keep PRs focused — one concern per PR
- Include tests for new behavior or bug fixes
- Reference the relevant spec section when applicable
- Ensure
cargo test(ortree-sitter test) passes before submitting
Changes to SPECIFICATION.md require discussion before implementation. Open an issue describing the motivation, proposed syntax, and AST impact. Non-trivial spec changes should include:
- A clear use case
- Example
.rdxinput and expected AST output - Consideration of backward compatibility
- Rust: follow standard
rustfmtconventions - Tree-sitter: follow existing grammar.js patterns
- Prefer clarity over cleverness
- Add comments only where the logic isn't self-evident
Use the bug report template and include:
- RDX input that reproduces the issue
- Expected vs actual AST output
- Version of the parser or grammar
By contributing, you agree that your contributions will be licensed under the same license as the project.