Contributing to Omnivore
Omnivore is an open-source project and we welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or reporting issues, your help is valuable.
Report Issues
Found a bug? Let us know on GitHub Issues
Submit PRs
Contribute code improvements and new features
Getting Started
1. Fork and Clone
Start by forking the repository and cloning it locally:
BASH001# Fork the repository on GitHub, then:002git clone https://github.com/Pranav-Karra-3301/omnivore.git003cd omnivore004git remote add upstream https://github.com/Pranav-Karra-3301/omnivore.git
2. Set Up Development Environment
Ensure you have Rust and Cargo installed:
BASH001# Install Rust (if not already installed)002curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh003004# Verify installation005rustc --version006cargo --version007008# Build the project009cargo build010011# Run tests012cargo test
3. Create a Branch
Create a new branch for your feature or fix:
BASH001git checkout -b feature/your-feature-name002# or003git checkout -b fix/issue-description
Development Workflow
Code Style
- Follow Rust's official style guidelines
- Use
cargo fmtto format your code - Run
cargo clippyto catch common mistakes - Ensure all tests pass with
cargo test
BASH001# Format code002cargo fmt003004# Run linter005cargo clippy006007# Run tests008cargo test009010# Run specific test011cargo test test_name
Commit Guidelines
Write clear, descriptive commit messages following this format:
TEXT001type(scope): brief description002003Longer description if needed. Explain the problem this commit004solves and any important details.005006Fixes #123
Types:
feat: New featurefix: Bug fixdocs: Documentation changestest: Adding or updating testsrefactor: Code refactoringperf: Performance improvementschore: Maintenance tasks
Submitting Pull Requests
Before Submitting
- Code follows project style guidelines
- All tests pass locally
- Documentation is updated if needed
- Commit messages are clear and descriptive
- PR description explains the changes
Submit Your PR
BASH001# Push your branch002git push origin feature/your-feature-name003004# Then create a PR on GitHub
PR Description Template
MARKDOWN001## Description002Brief description of what this PR does.003004## Related Issue005Fixes #(issue number)006007## Type of Change008- [ ] Bug fix009- [ ] New feature010- [ ] Documentation update011- [ ] Performance improvement012013## Testing014- [ ] Tests pass locally015- [ ] Added new tests for changes016017## Screenshots (if applicable)018Add screenshots here if UI changes are involved.
Reporting Issues
Before Opening an Issue
- Search existing issues to avoid duplicates
- Check if the issue is already fixed in the latest version
- Gather relevant information about your environment
Issue Template
MARKDOWN001## Description002Clear description of the issue.003004## Steps to Reproduce0051. Step one0062. Step two0073. ...008009## Expected Behavior010What should happen?011012## Actual Behavior013What actually happens?014015## Environment016- OS: [e.g., macOS 14.0]017- Rust version: [e.g., 1.75.0]018- Omnivore version: [e.g., 0.1.0]019020## Additional Context021Any other relevant information.
Areas for Contribution
Core Features
Crawler improvements, performance optimizations, new parsing strategies
Knowledge Graph
Entity extraction, relationship mapping, graph algorithms
Documentation
Improve docs, add examples, translate content, fix typos
Community
Join our community to discuss ideas, ask questions, and collaborate:
- GitHub Discussions - General discussions and Q&A
- GitHub Issues - Bug reports and feature requests
Code of Conduct
We are committed to providing a welcoming and inclusive environment. Please:
- Be respectful and considerate
- Welcome newcomers and help them get started
- Focus on constructive criticism
- Respect differing viewpoints and experiences
Your contributions make Omnivore better for everyone. We appreciate your time and effort in improving this project!