docs: add README, Sphinx docs site, and Pages + docs-branch publish#91
Merged
Conversation
lacraig2
force-pushed
the
workspace/driverdocs
branch
from
July 16, 2026 21:36
754a7a1 to
55f472b
Compare
igloo_driver had no documentation. This adds: - README.md: what igloo_driver is (an in-guest programmable kernel debugger for IGLOO/Penguin rehosting), build quickstart via build.sh, repo layout, and links into the deeper docs. - docs/: a Sphinx + MyST site (furo theme) covering the architecture, the Portal operation catalog, the per-arch hypercall ABI, runtime hooks, hyperfs, pseudo-file/device synthesis, and building. The C API reference is auto-extracted from src/ by Doxygen and rendered through Breathe (conf.py runs Doxygen, so a bare 'sphinx-build docs/ _build/' is self-contained). Builds warning-clean under -W. - .github/workflows/docs.yaml: builds the HTML and dual-publishes it to GitHub Pages and a generated-only 'docs' branch, adapting Penguin's deploy_static job. Triggered on pushes to main touching docs/src plus workflow_dispatch (decoupled from the module release build).
lacraig2
force-pushed
the
workspace/driverdocs
branch
from
July 16, 2026 21:37
55f472b to
101b991
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
igloo_driver had no documentation — no README, no docs site. This adds all three, mirroring how Penguin publishes its docs.
1.
README.mdWhat igloo_driver is — an in-guest programmable kernel debugger for IGLOO/Penguin rehosting (read/write kernel & user memory, OS introspection, kprobe/uprobe/syscall/signal hooks, kernel-function FFI, and synthesized
/proc·/sys·/dev·sysctl·MTD pseudo-files, all over the Portal shared-memory protocol on a per-arch hypercall). Includes thebuild.shquickstart, repo layout, and links into the deeper docs and into Penguin's host-side API docs.2.
docs/— Sphinx + MyST site (furo)Hand-authored conceptual pages:
Plus a C API reference auto-extracted from
src/by Doxygen and rendered through Breathe.conf.pyruns Doxygen itself, so a baresphinx-build docs/ _build/htmlis fully self-contained. The build is warning-clean under-W.3.
.github/workflows/docs.yaml— build + dual publishBuilds the HTML (plain
sphinx-build; Doxygen via apt) and publishes it to both:configure-pages→upload-pages-artifact→deploy-pages@v4)docsbranch (peaceiris/actions-gh-pages@v4,force_orphan,.nojekyll) — thegit clone --branch docsserved-directly pathThe
deploy_staticjob is lifted near-verbatim from Penguin'sdocs.yaml, including the stale-artifact cleanup.Key design choices
sphinx-build, not a containerized build. Penguin builds docs from its live runtime image to introspect Python plugins; a C kernel module has no such path, so a static build is correct and simpler.docs/**,src/**,README.md, workflow) +workflow_dispatch— notworkflow_run-after-release. Docs depend only ondocs/+src/, not on the heavy multi-arch module build, so they stay decoupled (Penguin's intent, adapted).conf.pyfor localmake latexpdf.Verification
sphinx-build -b html -W --keep-going docs docs/_build/html→ exit 0, zero warnings (the exact CI command). Breathe-extracted symbols confirmed rendering (igloo_in_scope,get_target_task_mm,HYPER_OP,igloo_hypercall4, OSI structs).One-time repo setup needed for the deploy to work
deploy-pages).docsbranch is auto-created by peaceiris on first run — do not hand-edit/push it.The workflow is exercisable via workflow_dispatch once merged.