Skip to content

Contributing ​

Kira is organized as a small set of focused repositories under the shinigami-os organization on GitHub. Each one has a narrow, clear job.

RepositoryContentsLicense
shinigamiThe Linux kernel fork and its patchesGPL-2.0
kira-baseThe minimal bootstrap layerGPL-2.0
fluxThe package manager itselfGPL-2.0
flux-recipeskotodama recipes for Kira's own (kira-*) packagesGPL-2.0
the-lineThe Line, Kira's own desktop shellGPL-3.0
the-line-uiThe Line's design language as a QML module, shared by the shell and the installerGPL-3.0
kira-installerThe installer and the ISO that boots into itGPL-2.0
kira-docsThis documentationMIT

Adding a package ​

Most software does not need a recipe at all: flux resolves any name without a kira- prefix directly against Alpine's package index, so if Alpine already carries what you want, there is nothing to contribute here.

A kotodama recipe in flux-recipes only makes sense for genuinely Kira-specific software - a new meta-package bundling a few Alpine dependencies with some Kira configuration, or a real from-source build for the rare thing Alpine doesn't carry. Either way the package name must start with kira-. See Writing a kotodama Recipe for the format, then open a pull request. Recipes are reviewed before merge against a short, fixed set of rules: a kira--prefixed directory name matching the package name, a real checksum, a direct source URL, and hooks that install into $DESTDIR rather than the live filesystem.

Kernel patches ​

Shinigami's patch philosophy is minimal diff from upstream, and every patch needs a documented reason. Patches are organized by category, perf/, mem/, sec/, compat/, and config/, and an upstream patch is never modified silently, if you change one, document why in the patch header.

Desktop configuration ​

The Line is its own repository, the-line; its recipe, kira-the-line, only fetches and installs it, so changes to the shell go there. The colours, motion and shared parts live in the-line-ui (recipe kira-the-line-ui), so a change to how everything looks belongs there. Sleex's default configuration is upstream's own sleex-user-config. Kira-only changes to it live as small build-time patches in the kira-sleex and kira-desktop-sleex recipes in flux-recipes, so a fix that every Sleex user would want belongs upstream in Sleex instead.

General workflow ​

  1. Fork the relevant repository.
  2. Make your change on a branch.
  3. Open a pull request describing what changed and why.
  4. Expect review, Kira favors small, focused changes over large ones that touch several concerns at once.

Reporting a problem ​

Open an issue on the repository the problem actually belongs to, the kernel, flux, a specific recipe, the desktop configuration, or the installer. Include what you were doing, what you expected, and the exact output you got. See Troubleshooting first, in case it is already covered there.

A Linux distribution you actually understand.