docs(architecture): apply ADR 0018 migration (Hermit → Unikraft) - #6
Merged
Conversation
Mechanical follow-up to ADR 0018 (substrate pivot to Unikraft). Updates the status notes on ADR 0017 + ADR 0001, the supply-chain text in ADR 0010, the Hermit-specific references in the chapter docs (00-overview, 02-packet-path, 03-rule-model, 06-deployment, 08-security-model, 09-limitations), the two canonical mermaid sources (packet-path.mmd, rule-compilation.mmd), and retargets versions.lock from Hermit TBDs to Unikraft TBDs. Specifically: - ADR 0017: Status changed to "Accepted (substrate clause superseded by ADR 0018; language clause + smoltcp::wire clause stay live)"; added forward-pointer; supersedes-line clarified to be language clause only of ADR 0001. - ADR 0001: Status changed from "Superseded by ADR 0017" to "Accepted (substrate clause restored by ADR 0018; language clause superseded by ADR 0017)"; banner rewritten to explain the restoration arc. - ADR 0010 supply-chain section: pinned-deps list updated from "Hermit framework revision" to "Unikraft revision plus each selected lib-* component revision". - Chapter docs: Hermit-specific descriptions softened to "the substrate" or rewritten to reference Unikraft's `lib-uknetdev`. The "Hermit framework maturity" subsection of 09-limitations becomes "`lib-rust` on Unikraft is early-adopter territory" — same risk surfaced for the new substrate. The "No bare-metal direct boot" section now cites both ADR 0017 and ADR 0018 (both keep bare-metal out of v1 scope; ADR 0017's "Hermit isn't ready" framing is replaced with the substrate-agnostic "v1 hypervisor only" framing). - versions.lock: hermit_revision/hermit_rust_target replaced with unikraft_revision/unikraft_libs/unikraft_lib_revisions. lib-* selection inlined per ADR 0018. ADRs 0003, 0008, 0009, 0013, 0014, 0016 still mention Hermit in their historical text. Those are intentionally NOT edited — they record the state at the time of writing and the supersession chain (ADR 0001 → 0017 → 0018) makes the current state findable. `cargo test` clean on the PR A rule pipeline; no source changes in this PR.
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.
Summary
Mechanical follow-up to PR #5 (ADR 0018, now merged). Implements the five steps in the ADR's "Migration" section:
lib-uknetdev.versions.lock— retargeted from Hermit TBDs to Unikraft TBDs (filled in PR B).Scope expanded slightly beyond what ADR 0018's migration list named explicitly: 00-overview, 03-rule-model, 08-security-model, and the two canonical mermaid sources (packet-path.mmd, rule-compilation.mmd) also had Hermit references. Those are part of the current chapter narrative — including them keeps the docs internally consistent. ADRs 0003, 0008, 0009, 0013, 0014, 0016 still mention Hermit; those are deliberately not edited because they're historical records.
What this PR doesn't do
cargo testfrom PR A still passes (verified locally).versions.lockvalue pins (still TBD for PR B).Test plan
grep -rE 'Hermit|x86_64-unknown-hermit' docs/architecture/*.md docs/architecture/diagrams/*.mmdreturns nothing outside historical ADRscargo test --quietclean