Contributing

zuzu would love contributors!

Two contribution paths

zuzu is a microkernel, so contribution paths may look vastly different.

Userspace path (default)

Kernelspace path (high bar)

Kernelspace PRs should include a short justification explaining why this cannot remain a userspace policy change.

Project principles

Prerequisites

See README for platform-specific install commands.

Build and run

Build:

Run:

Debugging

Use the debug target and connect GDB as described in README.

Branch and commit guidance

Preferred branch naming:

Commit message style:

Example:

Code style guidance

Kernel and userspace boundaries

When in doubt:

For security-sensitive service access:

Decision rule:

Testing checklist

For userspace PRs

If your userspace change touches IPC, include at least:

For kernelspace PRs

If your kernel change touches one of these, include focused evidence:

Documentation expectations

If behavior changes, update docs in the same PR:

Pull request checklist

Required extra fields for kernelspace PRs:

Good first contribution ideas

Not a good first contribution:

Naming convention

zuzu and zuzuOS will start to follow PascalCase for functions and types. Legacy code may use snake_case; when touching a subsystem, modernize its naming as part of that refactor.

Questions and design proposals

For larger changes:

A suggested template is: