Contributing
Thank you for your interest in contributing to CypherLite. This page provides a summary of the contribution guidelines. For the full guide, see CONTRIBUTING.md on GitHub.
Reporting Bugs
Please use GitHub Issues to report bugs. Include:
- A clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Your Rust version (
rustc --version) and OS
Submitting Changes
Fork the repository
Fork CypherLite and create a branch from main.
Name your branch
Use descriptive branch names: feat/my-feature or fix/issue-123.
Make your changes
Follow the code style and testing guidelines below.
Open a Pull Request
Open a PR against main with a clear description of the changes.
For significant changes, open an issue first to discuss the approach before investing time in implementation.
Development Setup
Requirements:
- Rust 1.84 or later (MSRV)
- The standard Rust toolchain via rustup
Setup:
git clone https://github.com/Epsilondelta-ai/CypherLite.git
cd CypherLite
cargo build --workspace
cargo test --workspace --all-featuresFeature Flags
| Flag | Description |
|---|---|
temporal-core | Temporal graph support (default) |
temporal-edge | Temporal edge attributes |
subgraph | Subgraph extraction |
hypergraph | Hypergraph support (requires subgraph) |
full-temporal | All temporal features |
plugin | Plugin system |
Code Style
- Run
cargo fmtbefore committing - Run
cargo clippy --all-featuresand fix all warnings - Write tests for all new functionality
- Maintain at least 85% test coverage per package
- Use
cargo test --workspace --all-featuresto verify
Commit Messages
Follow Conventional Commits:
feat(core): add temporal aggregation supportfix(storage): resolve WAL replay edge casedocs: update architecture diagramtest(query): add parser edge case tests
License
By contributing, you agree that your contributions will be licensed under the MIT OR Apache-2.0 dual license.