The BPF Performance project follows a collaborative governance model focused on performance testing and benchmarking of BPF programs and maps.
Anyone can contribute to the BPF Performance project by:
- Reporting issues
- Submitting pull requests
- Providing feedback on existing issues and pull requests
- Participating in discussions
Project maintainers have write access to the repository and are responsible for:
- Reviewing and merging pull requests
- Triaging issues and assigning labels
- Ensuring code quality and test coverage
- Managing releases
Current maintainers are listed in the CODEOWNERS file.
All pull requests must be reviewed before merging. The review process includes:
-
Technical Review: Ensure the code is correct, follows coding standards, and doesn't introduce regressions.
-
Performance Impact: For changes that might affect performance, verify that:
- Existing benchmarks continue to pass
- New benchmarks are added for new functionality
- Performance characteristics are documented
-
Testing Requirements: Verify that:
- Appropriate tests are included
- All existing tests continue to pass
- Test coverage is maintained or improved
-
Documentation: Ensure that:
- User-facing changes are documented
- Code comments are clear and helpful
- Examples are provided where appropriate
- Pull requests require at least one approval from a maintainer
- Pull requests that significantly change performance characteristics require two approvals
- The author of a pull request cannot approve their own changes
We use the following labels to categorize issues:
bug: Something isn't working correctlyenhancement: New feature or improvementperformance: Performance-related issue or improvementdocumentation: Documentation improvementstesting: Test-related changeshelp wanted: Good for contributors looking to help
- High Priority: Critical bugs, security issues, or blocking problems
- Medium Priority: Important features or non-critical bugs
- Low Priority: Nice-to-have improvements or minor issues
Releases are managed by maintainers and follow semantic versioning:
- Major versions (X.0.0): Breaking changes or significant new features
- Minor versions (X.Y.0): New features that are backward compatible
- Patch versions (X.Y.Z): Bug fixes and minor improvements
- Use GitHub issues for bug reports and feature requests
- Use GitHub discussions for general questions and community discussions
- Follow the Code of Conduct in all interactions
- Most decisions are made through discussion on GitHub issues or pull requests
- For significant changes, maintainers may request broader community input
- Maintainers aim for consensus but may make decisions when needed to keep the project moving forward