add website and GitHub Pages deployment

This commit is contained in:
Astral
2026-09-01 11:23:34 +02:00
parent cb1da62339
commit da28f784a8
48 changed files with 3392 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Kama repos — Keru OS</title>
<meta name="description" content="The kama repo split: the package manager (kama) and the recipe repository (kama-packages).">
<link rel="stylesheet" href="assets/css/style.css">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>ける</text></svg>">
</head>
<body>
<nav class="top" data-nav></nav>
<header class="pagehead">
<p class="crumbs"><a href="index.html">home</a> / <a href="kama.html">kama</a> / repos</p>
<h1>The repo split</h1>
<p>Three small pieces, each with one job.</p>
</header>
<section>
<div class="wrap">
<div class="prose">
<p>Keru splits its world into three repositories so each stays small and legible. The package side of that is:</p>
<table>
<tr><th>Repo</th><th>Holds</th><th>Keeps</th></tr>
<tr><td><strong>kama</strong></td><td>The manager — the <code>kama</code> entry point and <code>lib/kama.sh</code> core.</td><td>The code.</td></tr>
<tr><td><strong>kama-packages</strong></td><td>The recipe repository — one <code>.sh</code> per package.</td><td>The knowledge.</td></tr>
<tr><td><strong>KeruOS</strong></td><td>The OS: installer, profile, build pipeline, live init, website.</td><td>The orchestration.</td></tr>
</table>
<h3>Why separate</h3>
<ul class="features">
<li><strong>Independent cadence.</strong> The manager changes rarely; recipes change constantly. Mixing them couples an ossified core to churn.</li>
<li><strong>Clear ownership.</strong> "Which file builds busybox?" — the recipe repo. "How does kama decide to stage?" — the manager repo. No guessing where things live.</li>
<li><strong>Small repos, legible diffs.</strong> A PR adding a package touches exactly one file in one repo.</li>
<li><strong>Cross-repo defaults.</strong> Keru's scripts expect the three repos as siblings (<code>kama</code> next to <code>kama-packages</code> next to <code>KeruOS</code>), and every path is overridable via <code>KAMA_DIR</code> / <code>PKGS_DIR</code>.</li>
</ul>
<h3>How they fit together</h3>
<div class="code-block"># KeruOS build-root.sh drives kama against kama-packages
KAMA="$KAMA_DIR/kama" # the manager
PKGDIR="$PKGS_DIR" "$KAMA" make "$pkg" # a recipe, executed
# into $ROOT — a completed system, built from source.</div>
<p>The installer is the conductor: it writes your <code>make.conf</code>, then calls the build pipeline, which runs kama over recipes to produce exactly the system you chose.</p>
<div class="callout">This is Keru's answer to packaging sprawl: three tiny repos, each human-sized, instead of one monolith that swallowed everything.</div>
<p><a href="kama.html">← Kama overview</a> · <a href="build-pipeline.html">The build pipeline</a></p>
</div>
</div>
</section>
<footer data-footer></footer>
<noscript><div style="text-align:center;padding:16px">See the <a href="sitemap.html">sitemap</a> for all pages.</div></noscript>
<script src="assets/js/include.js" data-base="."></script>
</body>
</html>