-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Thanks for your interest in Kernel Borderlands. This page covers the practical mechanics of contributing; see Team for who owns what, and Getting Started to get a dev environment running first.
- Read Getting Started and confirm your environment meets the minimums.
- Read Architecture to understand where your change fits in the four-layer model.
- Check Team for the relevant subsystem's Primary Maintainer — cross-subsystem changes should loop in both maintainers.
- If touching the eBPF ↔ Go boundary, read Wire Protocol and Event Contract first — these are locked contracts; changes need coordination across
kb-coreandkb-control-plane, and a version bump (KB_WIRE_VERSION).
docs/README.md- Getting Started (installation + requirements)
- Architecture
- Kernel Hook Points
- Team
-
docs/project/KB.pdf(full whitepaper) -
docs/project/KB_Synopsis-1.pdf(condensed overview)
Use the repository's issue templates:
- Bug report — steps to reproduce, expected vs. actual behavior, environment details (OS/kernel version matters a lot here — see Cross Kernel Portability).
- Feature request — the problem being solved, the proposed solution, and alternatives considered.
| Subsystem | Test command | Notes |
|---|---|---|
| kb-core | ./scripts/test.sh | eBPF changes must stay CO-RE compatible — see Cross Kernel Portability guidelines |
| kb-control-plane | go test ./... | Wire protocol changes need a corresponding wire_test.go update pinning the new byte layout |
| kb-aads | pytest tests/ | Activate the venv first |
| kb-dashboard | (project's lint/test scripts) | |
| kb-tui | go test ./... | |
| kb-checker | cargo test | New integrity checks should ship with a matching threat model scenario |
If you change ProcessStateMsg, ZoneTransitionMsg, or any Event Contract value:
- Bump
KB_WIRE_VERSIONon both the C side (kb_bridge.c) and Go side (wire.go). - Update the struct layout comment with the verified
sizeof()byte count — never hand-count. - Update
wire_test.go's frame-builder helpers and add a round-trip test for any new field. - Cross-post the change to both
kb-coreandkb-control-planemaintainers (see Team) — this is exactly the kind of change that has drifted silently before (see the history note in Wire Protocol).
This project follows the Contributor Covenant v2.0 — see CODE_OF_CONDUCT.md in the repository root. Report concerns to teamkbdevelopers@gmail.com.
Kernel Borderlands is licensed under the GNU Affero General Public License v3.0 (AGPLv3) — see LICENSE in the repository root. Notably, AGPLv3's network-use clause requires that modified versions running on a publicly accessible server make their source available to users of that server.
See also: Team, Architecture, .github/ISSUE_TEMPLATE/.
Thanks for your interest in Kernel Borderlands. This page covers the practical mechanics of contributing; see Team for who owns what, and Getting Started to get a dev environment running first.
- Read Getting Started and confirm your environment meets the minimums.
- Read Architecture to understand where your change fits in the four-layer model.
- Check Team for the relevant subsystem's Primary Maintainer — cross-subsystem changes should loop in both maintainers.
- If touching the eBPF ↔ Go boundary, read Wire Protocol and Event Contract first — these are locked contracts; changes need coordination across
kb-coreandkb-control-plane, and a version bump (KB_WIRE_VERSION).
docs/README.md- Getting Started (installation + requirements)
- Architecture
- Kernel Hook Points
- Team
-
docs/project/KB.pdf(full whitepaper) -
docs/project/KB_Synopsis-1.pdf(condensed overview)
Use the repository's issue templates:
- Bug report — steps to reproduce, expected vs. actual behavior, environment details (OS/kernel version matters a lot here — see Cross Kernel Portability).
- Feature request — the problem being solved, the proposed solution, and alternatives considered.
| Subsystem | Test command | Notes |
|---|---|---|
kb-core |
./scripts/test.sh |
eBPF changes must stay CO-RE compatible — see Cross Kernel Portability guidelines |
kb-control-plane |
go test ./... |
Wire protocol changes need a corresponding wire_test.go update pinning the new byte layout |
kb-aads |
pytest tests/ |
Activate the venv first |
kb-dashboard |
(project's lint/test scripts) | |
kb-tui |
go test ./... |
|
kb-checker |
cargo test |
New integrity checks should ship with a matching threat model scenario |
If you change ProcessStateMsg, ZoneTransitionMsg, or any Event Contract value:
- Bump
KB_WIRE_VERSIONon both the C side (kb_bridge.c) and Go side (wire.go). - Update the struct layout comment with the verified
sizeof()byte count — never hand-count. - Update
wire_test.go's frame-builder helpers and add a round-trip test for any new field. - Cross-post the change to both
kb-coreandkb-control-planemaintainers (see Team) — this is exactly the kind of change that has drifted silently before (see the history note in Wire Protocol).
This project follows the [Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html) v2.0 — see CODE_OF_CONDUCT.md in the repository root. Report concerns to teamkbdevelopers@gmail.com.
Kernel Borderlands is licensed under the GNU Affero General Public License v3.0 (AGPLv3) — see LICENSE in the repository root. Notably, AGPLv3's network-use clause requires that modified versions running on a publicly accessible server make their source available to users of that server.
See also: Team, Architecture, .github/ISSUE_TEMPLATE/.
~ Team Kernel Borderlands
Kernel Borderlands
Overview
- Architecture
- Zone Model And Scoring
- Event Contract
- Wire Protocol
- Kernel Hook Points
- Cross Kernel Portability
Getting Started
Subsystems
Project