Thank you for your interest in contributing to speed-bump-native-kmod. This document provides guidelines for contributing to the project.
Before reporting a bug, please:
- Check existing issues to avoid duplicates
- Ensure you're using the latest version
- Collect relevant information (kernel version, architecture, dmesg output)
To report a bug, open an issue using the bug report template.
- Fork the repository on GitHub
- Clone your fork locally
- Create a branch for your changes:
git checkout -b feature/your-feature-name
- Make your changes following the coding style below
- Test your changes (see Testing Requirements)
- Commit with a clear message (see Commit Message Format)
- Push to your fork
- Open a Pull Request against the
mainbranch
This is a Linux kernel module. Follow the Linux kernel coding style:
- Indentation: Tabs (8 spaces wide)
- Line length: 80 columns maximum
- Braces: Opening brace on same line (except functions)
- Naming:
lowercase_with_underscoresfor functions and variables - Comments:
/* C-style */only, no//
Key resources:
- Linux kernel coding style
- Run
scripts/checkpatch.plfrom kernel source on your patches
For userspace code (sbctl, tests), follow the same conventions for consistency.
Write clear, descriptive commit messages:
component: brief summary (50 chars or less)
Longer explanation of the change if needed. Wrap at 72 characters.
Explain what and why, not how (the code shows how).
- Bullet points are fine for listing changes
- Keep each point concise
Signed-off-by: Your Name <your.email@example.com>
Examples of good prefixes:
uprobe: fix race condition in handler registrationsysfs: add pid filter attributetests: add delay accuracy testdocs: update interface specification
Before submitting a pull request:
-
Tier 1 (Required): Userspace unit tests must pass
make tests
-
Tier 2 (Required): Module must build without errors
make modules
-
Tier 3 (If applicable): Integration tests should pass
sudo ./tests/integration_test.sh
If you cannot run Tier 3 tests (requires root, specific kernel), note this in your PR. Maintainers will test on appropriate systems.
All submissions require review. Expect feedback on:
- Correctness and safety (kernel code must not crash or leak)
- Coding style compliance
- Test coverage
- Documentation updates
Be patient and responsive to feedback. Multiple review rounds are normal.
By contributing, you agree that your contributions will be licensed under the GPL-2.0 license.
All new source files must include the SPDX license identifier:
// SPDX-License-Identifier: GPL-2.0- Questions: Open a discussion or issue
- Security issues: See SECURITY.md (do not open public issues)
Contributors are valued members of our community. Significant contributors may be acknowledged in release notes.