Skip to content

docs(architecture): apply ADR 0018 migration (Hermit → Unikraft) - #6

Merged
LeTuR merged 1 commit into
mainfrom
docs/adr-0018-migration
May 25, 2026
Merged

docs(architecture): apply ADR 0018 migration (Hermit → Unikraft)#6
LeTuR merged 1 commit into
mainfrom
docs/adr-0018-migration

Conversation

@LeTuR

@LeTuR LeTuR commented May 25, 2026

Copy link
Copy Markdown
Owner

Summary

Mechanical follow-up to PR #5 (ADR 0018, now merged). Implements the five steps in the ADR's "Migration" section:

  1. ADR 0017 — status reflects the partial supersession (substrate clause only).
  2. ADR 0001 — substrate clause restored, banner rewritten.
  3. Chapter docs that name Hermit specifically — softened or rewritten to reference Unikraft's lib-uknetdev.
  4. ADR 0010 supply-chain section — pinned-deps list points at Unikraft + lib-* revisions.
  5. 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

  • No code changes. cargo test from PR A still passes (verified locally).
  • No new ADRs.
  • No bench changes.
  • No versions.lock value pins (still TBD for PR B).

Test plan

  • grep -rE 'Hermit|x86_64-unknown-hermit' docs/architecture/*.md docs/architecture/diagrams/*.mmd returns nothing outside historical ADRs
  • cargo test --quiet clean
  • CI green (markdown lint + link check + Rust + All Checks aggregator)

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.
@LeTuR
LeTuR merged commit ba3b017 into main May 25, 2026
6 checks passed
@LeTuR
LeTuR deleted the docs/adr-0018-migration branch May 25, 2026 21:40
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