Thank you for your interest in contributing to Lambda. This document provides guidelines for contributing to the project.
- Fork the repository and clone it locally.
- Run
scripts/setup.shto install git hooks and git-lfs. - Build the workspace:
cargo build --workspace - Run tests:
cargo test --workspace
Before submitting changes:
# Format code (requires nightly toolchain)
cargo +nightly fmt --all
# Run clippy
cargo clippy --workspace --all-targets -- -D warnings
# Run tests
cargo test --workspaceFollow the [scope] message convention:
[add]— New feature or file[fix]— Bug fix[refactor]— Code restructuring without behavior change[docs]— Documentation changes[test]— Test additions or modifications[build]— Build system or CI changes
Examples:
[add] input action mapping system to lambda-rs.
[fix] mouse press events missing cursor coordinates.
[docs] add uniform buffer tutorial.
[refactor] extract render command encoding to separate module.
- Create a branch from
mainwith a descriptive name. - Make focused, narrowly scoped commits.
- Ensure all commits build independently.
- Fill out the PR template completely.
- Link related issues using "Closes #123" or "Relates to #456".
- Include screenshots or recordings for visual changes.
- List manual verification steps if automated testing is insufficient.
Use the appropriate issue template:
- Feature Request: Propose new functionality or enhancements.
- Bug Report: Report incorrect behavior or defects.
- Documentation: Report missing or unclear documentation.
Provide sufficient detail for maintainers to evaluate and reproduce issues.
When adding or modifying features:
- Update rustdoc comments for public APIs.
- Add or update examples in
crates/lambda-rs/examples/. - Create or update specifications in
docs/specs/for significant changes.- Add new specs to
docs/specs/README.mdand group them by feature area. - Place new specs under a matching subdirectory (for example,
docs/specs/rendering/).
- Add new specs to
- Follow the documentation tone and style guidelines in
AGENTS.md.
For general questions or ideas, use GitHub Discussions.
By contributing, you agree that your contributions will be licensed under the
same license as the project (see LICENSE).