Skip to content

docs(nixos): Migration context + developer NixOS page#497

Open
brickbots wants to merge 1 commit into
mainfrom
docs/nixos-migration
Open

docs(nixos): Migration context + developer NixOS page#497
brickbots wants to merge 1 commit into
mainfrom
docs/nixos-migration

Conversation

@brickbots

Copy link
Copy Markdown
Owner

Summary

Net-new documentation on main for the forthcoming Raspberry Pi OS → NixOS migration. Scoped to fill the gaps the unmerged NixOS PR (#379) leaves on main, and built to merge cleanly when #379 lands (it cross-links to, rather than duplicates, the NixOS docs that arrive with that PR).

Three dev-focused areas:

  • In-place migration — the one-time, on-device RPi OS → NixOS reflash. Code is already merged (via feat: NixOS migration infrastructure #433) but was undocumented; this is the bulk of the new material.
  • Image build — overview + pointer to the release runbook (nixos/RELEASE.md, arrives with NixOS support #379).
  • System update — overview of the channel/binary-cache model + pointer to the NixOS context docs (arrive with NixOS support #379).

Changes

  • docs/ax/migration/CONTEXT.md — glossary for a new Migration context: in-place migration, post-update actions, migration gate, migration enable, pre-flight checks, migration tarball, migration initramfs, preserved data, migration progress display — with flagged ambiguities and an example dialogue.
  • docs/ax/migration.md — architecture deep-dive: trigger paths (gate vs. enable), the all-or-nothing pre-flight, the RAM-staged initramfs reflash sequence, the point of no return, and gotchas.
  • docs/source/nixos.rst — developer guide page covering all three flows; wired into the For developers toctree.
  • CONTEXT-MAP.md — new "platform lifecycle" grouping (Migration live, NixOS forward-referenced to NixOS support #379) and their relationships.
  • docs/source/index.rst — toctree entry.

Terminology

Resolves the overloaded word "migration":

  • Migration now means only the OS-level RPi OS → NixOS event.
  • The per-version Raspberry Pi OS data fixups (migration_source/v*.sh) are renamed post-update actions.
  • Sibling terms image build (the .img.zst) and system update (the NixOS closure swap) are kept distinct.

Notes

  • Cross-links to docs/ax/nixos/ and nixos/RELEASE.md are intentional forward references that resolve when NixOS support #379 merges — not broken links.
  • Heads-up for NixOS support #379: its nixos/RELEASE.md / brickbots-attic-setup.md cite "ADR 0001/0004" for the Attic cache while the file is nixos/adr/0001 — a stale reference to fix there, untouched here.

Testing

  • Sphinx strict build (sphinx-build -b html -W --keep-going) passes with zero warnings; the new page, toctree entry, and :ref: to the dev guide all resolve.

🤖 Generated with Claude Code

Net-new docs on main for the Raspberry Pi OS -> NixOS migration, filling the
gap the unmerged NixOS PR (#379) leaves on main and built to merge cleanly
when it lands.

- docs/ax/migration/CONTEXT.md: glossary for the new Migration context
  (in-place migration, migration gate, migration enable, pre-flight checks,
  migration tarball, migration initramfs, preserved data, migration progress
  display). Reserves "migration" for the OS-level event and renames the
  per-version data fixups to "post-update actions".
- docs/ax/migration.md: architecture deep-dive of the RAM-staged initramfs
  reflash, end to end.
- docs/source/nixos.rst: dev-focused guide page covering in-place migration,
  image build, and system update; wired into the "For developers" toctree.
- CONTEXT-MAP.md: platform-lifecycle grouping; Migration (live) + NixOS
  (forward-referenced to #379) and their relationships.

Cross-links to docs/ax/nixos/ and nixos/RELEASE.md are intentional forward
references that resolve when #379 lands. Sphinx strict build (-W) passes clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant