Thank you for considering contributing to Vectorless!
- Code of Conduct
- How to Contribute
- Development Setup
- Code Standards
- Commit Guidelines
- Pull Request Process
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.
If you find a bug, please create an issue including:
- A clear description of the problem
- Steps to reproduce
- Expected behavior
- Actual behavior
- Rust version and operating system
Feature suggestions are welcome! Please create an issue describing:
- The feature you'd like to see
- Use cases
- Possible implementation approach (optional)
See Pull Request Process below.
- Rust 1.85+
- cargo
# Clone the repository
git clone https://github.com/vectorlessflow/vectorless.git
cd vectorless
# Build
cargo build
# Run tests
cargo test
# Run examples
cargo run --example basicvectorless/
├── src/
│ ├── client/ # High-level API (Engine, EngineBuilder)
│ ├── domain/ # Core types (DocumentTree, TreeNode)
│ ├── parser/ # Document parsers (Markdown, PDF, DOCX)
│ ├── index/ # Index Pipeline
│ ├── retrieval/ # Retrieval Pipeline
│ ├── llm/ # LLM client
│ ├── storage/ # Persistence
│ └── config/ # Configuration
├── examples/ # Example code
├── tests/ # Integration tests
└── docs/ # Documentation
cargo fmtcargo clippy -- -D warningsAll code must pass clippy with no warnings.
Public APIs must have documentation comments:
/// Brief description.
///
/// # Examples
///
/// ```
/// use vectorless::Engine;
/// ```
pub fn my_function() {}- New features must include unit tests
- Bug fixes must include regression tests
# Run all tests
cargo test
# Run specific test
cargo test test_nameUse Conventional Commits format:
<type>(<scope>): <description>
[optional body]
[optional footer]
| Type | Description |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation changes |
style |
Code style (formatting, no code change) |
refactor |
Code refactoring |
perf |
Performance improvement |
test |
Adding/updating tests |
chore |
Build/tooling changes |
feat(parser): add HTML document support
fix(retrieval): fix backtracking logic in judge stage
docs(readme): update installation instructions
- Fork the repository
- Create a branch:
git checkout -b feat/my-feature - Make changes: Follow code standards
- Run checks:
cargo fmt -- --check cargo clippy -- -D warnings cargo test - Push:
git push origin feat/my-feature - Create Pull Request
- Code passes
cargo fmt -- --check - Code passes
cargo clippy -- -D warnings - All tests pass
cargo test - New features have documentation
- New features have tests
- Commit messages follow guidelines
- Automated CI checks must pass
- At least one maintainer review
- Merge after all issues resolved
If you have questions, please create an issue or email beautifularea@gmail.com.
Thank you for contributing!