Ways to Contribute
- Report bugs - Found an issue? Let us know
- Request features - Have an idea? Share it
- Improve documentation - Fix typos, clarify sections, add examples
- Submit code - Bug fixes, new features, performance improvements
- Write cookbooks - Share example integrations
- Test on new platforms - Help expand platform support
Getting Started
Prerequisites
- Rust - 1.75 or later
- Linux - Ubuntu 22.04+ or similar (for development)
- Docker - For testing cookbooks
- Git - Version control
Fork and Clone
Build from Source
Development Workflow
1. Create a Branch
feature/- New featuresfix/- Bug fixesdocs/- Documentation changestest/- Test improvementsrefactor/- Code refactoring
2. Make Changes
Follow the code style and testing guidelines.3. Commit
feat- New featurefix- Bug fixdocs- Documentation changestest- Test additions/changesrefactor- Code refactoringperf- Performance improvementschore- Build/tooling changes
4. Push and Create PR
Code Style
Rust
Follow Rust API Guidelines. Format code:- Use meaningful variable names
- Add doc comments for public APIs
- Prefer
Result<T, E>over panicking - Use
tracingfor logging, notprintln!
Documentation
- Use clear, concise language
- Provide examples
- Use code blocks with syntax highlighting
- Link to related docs
Testing
Unit Tests
Integration Tests
Cookbook Validation
Manual Testing
Project Structure
Adding a New Provider
To add support for a new AI provider (e.g., Cohere, Mistral):1. Add Provider Definition
crates/oisp-decode/src/providers/mod.rs:
2. Add Detection Logic
crates/oisp-decode/src/providers/cohere.rs:
3. Register Provider
crates/oisp-decode/src/lib.rs:
4. Add Tests
crates/oisp-decode/src/providers/cohere.rs:
5. Add Cookbook Example
Createoisp-cookbook/python/05-cohere-simple/:
6. Update Documentation
Add to docs-site/src/content/docs/reference/providers.md.Adding Platform Support
macOS
Current status: Metadata capture only (preview) Roadmap: Full SSL capture via System Extension How to contribute:- System Extension development - Implement in
crates/oisp-capture-macos/ - Testing - Test on various macOS versions (12+)
- Code signing - Help with notarization process
Windows
Current status: Metadata capture only (preview) Roadmap: Full capture via ETW (Event Tracing for Windows) How to contribute:- ETW integration - Implement in
crates/oisp-capture-windows/ - Testing - Test on Windows 10/11
- Installer - MSI packaging
Documentation Contributions
Astro Docs Site
Located indocs-site/:
- Create markdown file in appropriate section
- Add frontmatter:
- Update sidebar in
astro.config.mjs - Preview with
npm run dev - Build with
npm run build
Cookbook Documentation
Each cookbook should have:- README.md - Overview, prerequisites, running instructions
- Code - Working example with comments
- docker-compose.yml - Easy reproducibility
- validate.sh - Automated validation
- expected-events.jsonl - Expected output
Pull Request Guidelines
Before Submitting
- Code builds (
cargo build --release) - Tests pass (
cargo test) - Linting passes (
cargo clippy) - Code formatted (
cargo fmt) - Documentation updated (if needed)
- Cookbook tested (if applicable)
PR Description Template
Review Process
- Automated checks - CI runs tests, linting, builds
- Code review - Maintainer reviews code
- Discussion - Address feedback
- Approval - Maintainer approves
- Merge - Squash and merge to main
Debugging
Enable Debug Logging
Debug eBPF Programs
Profile Performance
Release Process
Maintainers only:- Update version in
Cargo.toml - Update CHANGELOG.md
- Create tag:
- GitHub Actions builds binaries, packages, Docker images
- Draft release on GitHub with changelog
Community
Communication Channels
- GitHub Issues - Bug reports, feature requests
- GitHub Discussions - General questions, ideas
- Pull Requests - Code contributions
Code of Conduct
Be respectful, inclusive, and constructive. We follow the Contributor Covenant.Getting Help
- Documentation - https://sensor.oximy.com
- Discussions - https://github.com/oximyhq/sensor/discussions
- Issues - https://github.com/oximyhq/sensor/issues
License
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.Recognition
Contributors are recognized in:CONTRIBUTORS.mdfile- GitHub contributors page
- Release notes (for significant contributions)
Thank you for contributing to OISP Sensor! Your contributions help make AI observability better for everyone.