Streamforge is an open source project maintained by Rahul Jain with contributions from the community. This document describes how the project is governed and how decisions are made.
- Performance: Maintain best-in-class performance for Kafka streaming
- Reliability: Ensure production-grade stability and correctness
- Usability: Keep the tool simple, well-documented, and easy to use
- Security: Follow security best practices and respond quickly to vulnerabilities
- Community: Build an inclusive, welcoming community
Current Maintainer: Rahul Jain (@rahulbsw)
Responsibilities:
- Review and merge pull requests
- Triage and respond to issues
- Make final decisions on features and direction
- Release new versions
- Manage security vulnerabilities
- Enforce Code of Conduct
Authority:
- Accept or reject pull requests
- Grant or revoke commit access
- Appoint new maintainers
Anyone who contributes to the project through:
- Code contributions (pull requests)
- Documentation improvements
- Bug reports
- Feature requests
- Community support
Rights:
- Submit pull requests
- Open issues
- Participate in discussions
- Receive credit for contributions
Contributors who have made significant contributions may be granted commit access.
Criteria:
- Multiple high-quality merged PRs
- Understanding of codebase and project goals
- Active participation in code reviews
- Demonstrated commitment to project
Responsibilities:
- Review pull requests
- Triage issues
- Help maintain code quality
- Mentor new contributors
Day-to-day decisions (bug fixes, minor features, documentation updates) can be made by any maintainer or committer through pull requests.
Process:
- Open pull request
- Wait for review (at least 1 approval)
- Address feedback
- Merge when approved
Major changes (breaking changes, new features, architectural changes) require broader discussion.
Process:
- Open GitHub issue for discussion
- Allow at least 7 days for community input
- Consider feedback and alternatives
- Maintainer makes final decision
- Document decision in issue
Examples of major decisions:
- Breaking API changes
- New major features
- Changes to project direction
- License changes
- Governance changes
Security fixes and critical bugs can be fast-tracked.
Process:
- Create PR with fix
- Get expedited review
- Merge and release quickly
- Announce in release notes
Streamforge follows Semantic Versioning:
- Major (X.0.0): Breaking changes
- Minor (0.X.0): New features, backward compatible
- Patch (0.0.X): Bug fixes, backward compatible
- Patch releases: As needed for bug fixes (weekly if needed)
- Minor releases: Monthly or when significant features are ready
- Major releases: When breaking changes are necessary (rare)
- Update CHANGELOG.md
- Run all tests:
cargo test - Run benchmarks:
cargo bench - Update version in Cargo.toml
- Create git tag
- Build release binary
- Publish to crates.io
- Create GitHub release
- Update documentation
- Announce release
See CONTRIBUTING.md for detailed contribution guidelines.
Summary:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Run
cargo testandcargo clippy - Submit pull request
- Respond to review feedback
- Celebrate when merged! 🎉
All code must be reviewed before merging:
Required:
- ✅ Passes all tests
- ✅ Passes clippy lints
- ✅ Includes tests for new features
- ✅ Updates documentation if needed
- ✅ Follows Rust style guidelines
Encouraged:
- Clear commit messages
- Small, focused changes
- Well-documented code
- Performance considerations
- Simple changes: 1-2 days
- Medium changes: 3-7 days
- Large changes: 1-2 weeks
Reviewers will make best effort to review promptly. Contributors can ping reviewers after reasonable waiting time.
- Discuss in GitHub issue or PR
- Present technical arguments and tradeoffs
- Seek additional input from community
- Maintainer makes final decision
- Report to rahul.oracle.db@gmail.com
- Maintainer investigates
- Action taken per Code of Conduct
- Decision communicated to parties
Decisions can be appealed by:
- Opening a new GitHub issue
- Providing new information or arguments
- Maintainer reconsiders
Primary channel for:
- Bug reports
- Feature requests
- Technical discussions
For:
- General questions
- Ideas and brainstorming
- Community support
- Show and tell
For:
- Code contributions
- Documentation updates
- Code reviews
For:
- Security vulnerabilities
- Code of Conduct violations
- Private concerns
Contact: rahul.oracle.db@gmail.com
All contributors are recognized in:
- CHANGELOG.md for their contributions
- GitHub contributors page
- Release notes
Contributors with significant impact may be:
- Mentioned in README.md
- Granted committer status
- Invited to maintainer team
See ROADMAP.md for planned features and direction.
Major features are discussed in GitHub issues before implementation.
All contributions must be compatible with Apache License 2.0.
By contributing, you agree to license your contribution under the Apache License 2.0.
This governance document can be amended through:
- Pull request to this file
- Discussion period (at least 7 days)
- Maintainer approval
This governance model is inspired by:
Last Updated: 2025-03-09 Version: 1.0